Review: Dedicated Tailscale funnel for svelte-playground
Verdict: NEEDS_REFINEMENT
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. Well-written context with SOP reference.
File Targets
pal-e-deployments (files to modify):
- [x]
overlays/playground/prod/deployment.yaml— verified: svelte-playground volume 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 yet — confirmed creation target is valid
svelte-playground (files to modify):
- [x]
vite.config.js— verified:base: '/svelte/'at line 5 - [x]
index.html— verified: 3 occurrences of/svelte/prefix (nav brand href, two card hrefs) - [ ]
westside/staff.html— MISSING from File Targets: 16 occurrences of/svelte/(nav links, image srcs, og:image meta tags) - [ ]
westside/success.html— MISSING from File Targets: 12 occurrences of/svelte/ - [ ]
westside/sponsors.html— MISSING from File Targets: 13 occurrences of/svelte/ - [ ]
westside/index.html— MISSING from File Targets: 5 occurrences of/svelte/ - [ ]
westside/App.svelte— MISSING from File Targets: 1 occurrence of/svelte/ - [ ]
westside/Nav.svelte— MISSING from File Targets: 7 occurrences of/svelte/
Total undocumented scope: 54 additional
/svelte/ path references across 6 files not listed in the ticket. An agent following only the listed File Targets would leave broken links in every westside page.Repo Placement
OK. Two repos correctly identified:
forgejo_admin/pal-e-deployments (k8s manifests) and forgejo_admin/svelte-playground (base path revert). Issue is filed on svelte-playground which is appropriate as the primary code change repo. Checklist correctly notes PRs needed on both repos.Dependencies
- Board item #321 ("Deploy with Tailscale funnel") is in
done— this is the shared deploy being replaced. No conflict. - No items in
in_progressthat would conflict. - The pal-e-deployments PR must be applied before the svelte-playground base path revert, or the build will break on the shared playground. Order-of-operations not documented in ticket.
Acceptance Criteria
Mostly testable. Two issues:
- Criterion "Westside prototype accessible at
{hostname}.tail5b443a.ts.net/westside/" is correct —dist/westside/exists and would be served at/westside/from root. However, an agent needs to know this refers to the NEW hostname, not the shared playground. - Missing criterion: all
/svelte/-prefixed internal links in westside HTML pages resolve correctly after rewrite. This is the most likely regression vector.
Blast Radius
- Other playgrounds (westside-playground, mcd-tracker-playground) do NOT use Vite base paths — no similar bug exists elsewhere.
- Removing the svelte-playground volume and location block from the shared playground nginx config is clean — no other location blocks reference
/srv/svelte-playground. - The shared playground's other routes (
/,/westside/,/mcd-tracker/,/mcp-cover-letter/,/guide/,/upload/) are unaffected by removing only the/svelte/block and volume. - No downstream consumers beyond browser access.
Recommendation
Before moving to
next_up, update the File Targets section:- Add 6 missing files to the "Files to modify (svelte-playground)" list:
westside/staff.html,westside/success.html,westside/sponsors.html,westside/index.html,westside/App.svelte,westside/Nav.svelte. Each needs all/svelte/prefixes removed (54 occurrences total). - Add deployment ordering note to Constraints: the pal-e-deployments PR (new namespace + shared playground cleanup) must be applied before the svelte-playground base path revert PR.
- Add acceptance criterion: "All internal links in westside HTML pages (staff, sponsors, success) resolve correctly without
/svelte/prefix."