Re-review: Dedicated Tailscale funnel for svelte-playground
Verdict: READY
Re-review after refinement. Previous review:
review-376-2026-03-25 (NEEDS_REFINEMENT, 3 findings).Template Completeness
- [x] Lineage
- [x] Repo
- [x] User Story
- [x] Context
- [x] File Targets
- [x] Acceptance Criteria
- [x] Test Expectations
- [x] Constraints
- [x] Checklist
- [x] Related
All required template sections present. Issue body + refinement comment together form the complete spec.
File Targets
pal-e-deployments (files to modify):
- [x]
overlays/playground/prod/deployment.yaml— verified: svelte-playground volumeMount at lines 35-37, hostPath volume at lines 95-98 - [x]
overlays/playground/prod/configmap.yaml— verified:/svelte/location block at lines 47-52
pal-e-deployments (files to create):
- [x]
overlays/svelte-playground/prod/directory does not exist — creation target valid - [x] Ingress pattern reference (
overlays/playground/prod/ingress.yaml) verified — simple Tailscale funnel with ingressClassName + TLS host
svelte-playground (files to modify) — all 8 files verified:
- [x]
vite.config.js—base: '/svelte/'at line 5 (1 occurrence) - [x]
index.html— 3 occurrences of/svelte/(nav brand href, two card hrefs) - [x]
westside/staff.html— 16 occurrences (nav links, image srcs, og:image meta tags) - [x]
westside/sponsors.html— 13 occurrences - [x]
westside/success.html— 12 occurrences - [x]
westside/index.html— 5 occurrences - [x]
westside/Nav.svelte— 7 occurrences - [x]
westside/App.svelte— 1 occurrence
Total: 58 path references across 8 source files. (Refinement comment says "54 across 8" — minor arithmetic discrepancy since 54 refers to the 6 newly-added files only, not all 8. File list itself is complete and per-file counts are accurate.)
pal-e-app/ subdirectory confirmed zero /svelte/ references. package-lock.json has 1 match but it is an npm registry URL, not a path reference.Repo Placement
OK. Two repos correctly identified:
forgejo_admin/pal-e-deployments (k8s manifests) and forgejo_admin/svelte-playground (base path revert). Issue filed on svelte-playground as primary code change repo. Checklist notes PRs needed on both repos.Dependencies
- Board item #321 ("Deploy with Tailscale funnel") is in
done— the shared deploy being replaced. No conflict. - No items in
in_progresson the svelte-playground board. - Deployment ordering: Refinement adds explicit 3-step ordering (pal-e-deployments first, then svelte-playground, then rebuild+verify). Adequate.
Acceptance Criteria
All criteria are agent-verifiable:
- Original 7 criteria cover hostname access, base path removal, link resolution, old path removal, existing routes preserved, build correctness, and westside subpath access.
- Refinement adds 2 strong criteria: (a) westside HTML internal links resolve correctly, (b)
grep -r '/svelte/' dist/returns zero matches. The grep criterion is particularly good — it is machine-verifiable and catches any missed references in the build output.
Blast Radius
- Other playgrounds (westside-playground, mcd-tracker-playground) do NOT use Vite base paths — no similar pattern elsewhere.
- Removing svelte-playground volume and
/svelte/location block from shared playground is clean — no other location blocks reference/srv/svelte-playground. - Shared playground's other routes (
/,/westside/,/mcd-tracker/,/mcp-cover-letter/,/guide/,/upload/) unaffected. - No downstream consumers beyond browser access.
Refinement Assessment
All 3 findings from
review-376-2026-03-25 addressed:| # | Finding | Refinement | Status |
|---|---|---|---|
| 1 | 6 missing files in File Targets (54 occurrences) | All 6 files listed with accurate per-file counts | Resolved |
| 2 | Missing deployment ordering constraint | Explicit 3-step ordering added | Resolved |
| 3 | Missing acceptance criterion for westside links | Two criteria added: link resolution + grep verification | Resolved |
Minor note: refinement total says "54 path references across 8 files" but actual total is 58. This is cosmetic — the complete file list and per-file counts are correct.
Recommendation
No action needed. Ticket is ready for
next_up. The issue body plus refinement comment together form a complete, agent-executable spec. Agent should read both the issue body and comment #7350 when executing.