fix(#110,#112): revert pal-e-docs-app rename + switch Playwright to preview webServer #111
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
No milestone
No project
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/pal-e-app!111
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "110-revert-rename"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
PR #90 renamed
pal-e-app→pal-e-docs-appacross 13 files, but the hostnamepal-e-docs-app.tail5b443a.ts.netdoes not exist. Every Woodpecker pipeline since has failed at the Playwrightteststep withERR_NAME_NOT_RESOLVED, blockingbuild-and-pushandupdate-kustomize-tag. As a result PRs #105 (role extraction + routing) and #109 (My Notes + identity dashboard) merged tomainbut never reached the cluster — deployed pod is still on PR #95 (76f316b).This PR reverts every
pal-e-docs-apptoken back topal-e-app. The Forgejo repo was never actually renamed (verified via API); no repo rename is being performed here. The namepal-e-appis the canonical identifier perdefinition-app(parallelswestside-app,mcd-tracker-app);pal-e-docs-appis not a valid identifier underconvention-dictionary-authority.Scope extension (#112): Reverting the hostname alone does not fully fix CI — tests would still run against a stale prod deployment, deadlocking PR code behind its own deploy. An additional commit switches Playwright to use its
webServerblock so tests build and serve the PR's own frontend onhttp://localhost:4173. See "Changes" below.Changes
For #110 (rename revert): 12 of the 13 files enumerated in issue #110 were modified (the 13th,
src/lib/keycloak.ts, was already correct):.env.example—VITE_KEYCLOAK_CLIENT_IDdefault back topal-e-app.woodpecker.yaml—PLAYWRIGHT_BASE_URL, Kanikorepo,OVERLAYenv varCLAUDE.md— title, remote URLREADME.md— titlee2e/auth.spec.ts,e2e/home.spec.ts,e2e/public-readiness.spec.ts— doc commentsk8s/deployment.yaml— deployment name, labels, container name, image repok8s/service.yaml— service name, labels, selectorpackage.json,package-lock.json—namefieldplaywright.config.ts— defaultbaseURL, commentFor #112 (Playwright preview webServer):
playwright.config.ts— uncomment thewebServerblock (command:npm run build && npm run preview, url:http://localhost:4173, timeout bumped to 180s for CI). DefaultbaseURLflipped tohttp://localhost:4173so tests target the locally-served PR build, not stale prod..woodpecker.yaml—PLAYWRIGHT_BASE_URLset tohttp://localhost:4173in theteststep so the Playwright container matches the config. Comment added pointing to issue #112.Out of scope per issue body (separate follow-ups): orphan Keycloak client cleanup, orphan Harbor project cleanup, missing
story:app-definitionrow, missingarch-pal-e-appnote. PR #275's decouple-update-from-test pattern is explicitly NOT applied — tests must gate deploys.Test Plan
Verifies AC list from issue #110:
pal-e-docs-apptoken →pal-e-app(file #13src/lib/keycloak.tswas already correct, 12 files modified)grep -rn 'pal-e-docs-app' --exclude-dir=.git --exclude-dir=node_modules .returns zero matchesgrep -rn 'pal-e-docs-app'in~/pal-e-deploymentsreturns zero matches (no cross-contamination)npm run checkpasses (0 errors)npm run lintpasses (clean)npm run buildpasses (SvelteKit adapter-static build successful)npm run test:unitpasses (71/71 tests)update-kustomize-tag(no skipped step) — to be verified post-pushpal-e-deploymentsreceives[skip ci] pal-e-app: update image tag to <sha>commit on merge to mainpal-e-appdeployment to a commit ≥4454c8d(PR #109 merge SHA)https://pal-e-app.tail5b443a.ts.net/notesrenders My Notes for logged-in user (PR #109); admin role lands on/dashboard, non-admin on/notespost-login (PR #105). Gate onkubectl rollout status deployment/pal-e-app -n pal-e-app.Additional AC from issue #112 (Playwright preview webServer):
playwright.config.tswebServerblock is active (uncommented)baseURLdefault ishttp://localhost:4173.woodpecker.yamltest step env var matcheshttp://localhost:4173npm run build/npm run check/npm run lintstill clean with config changeteststep bootsnpm run previewand runs Playwright against it — to be verified post-pushReview Checklist
playwright.config.tswebServer +.woodpecker.yamlenv vararch-pal-e-appnote creationpal-e-docs-app→pal-e-appsubstitution; no other editscheck/lint/build/test:unitall clean{issue-number}-{kebab-case-purpose}convention:110-revert-renamepal-e-deploymentsNOT modified in this PRRelated Notes
definition-app— canonical naming:pal-e-appis correct,pal-e-docs-appis notconvention-dictionary-authority— dictionary precedencefeedback_naming_convention.md— pal-e-docs = project, pal-e-api = backend, pal-e-app = frontendfeedback_landing_vs_app.md— app = authenticated experiencereview-1015-2026-04-16-r2— ticket review (APPROVED, round 2)pal-e-platform— separate fix; intentionally NOT applied hereCloses #110
Closes #112
PR #111 Review
DOMAIN REVIEW
Tech stack: SvelteKit + TypeScript frontend, k8s manifests, Woodpecker CI YAML. This is a pure revert/rename PR — no behavioral code changes, only string substitutions.
Diff scope verification (12 files modified, 23/23 +/-):
.env.example— KeycloakVITE_KEYCLOAK_CLIENT_IDreverted topal-e-app.woodpecker.yaml—PLAYWRIGHT_BASE_URL, Kanikorepo,OVERLAYall revertedCLAUDE.md,README.md— titles + remote URL revertede2e/auth.spec.ts,e2e/home.spec.ts,e2e/public-readiness.spec.ts— doc comments onlyk8s/deployment.yaml— name, labels, container name, image repo all reverted (critical — matches service selector)k8s/service.yaml— name, labels, selector all revertedpackage.json,package-lock.json— name field revertedplaywright.config.ts— defaultbaseURL+ comment reverted13th file claim verification: Fetched
src/lib/keycloak.tsfrom bothmainand110-revert-renamebranches via Forgejo raw endpoint — both containpal-e-app(notpal-e-docs-app). The dev agent's claim is CORRECT. (Local stale worktree at/home/ldraney/pal-e-appstill shows the old tokens, but the actual Forgejomainbranch does not. PR #95 (76f316b) appears to have contained the already-correct version of this file, and PR #90 missed it during the rename.)Repo rename verification:
GET /repos/forgejo_admin/pal-e-appreturnsfull_name: "forgejo_admin/pal-e-app"— no rename was ever performed. This is consistent with the PR body and issue #110.Repo-wide scan (PR branch): Forgejo code search
pal-e-docs-appreturns hits only on themainbranch (the 12 files this PR modifies). PR branch110-revert-renamereturns zero matches for the enumerated files. Clean.k8s manifest correctness: Deployment
name,selector.matchLabels.app,template.metadata.labels.app, containername, and serviceselector.app+metadata.labels.appall consistently reverted topal-e-app— label selector continuity preserved. Image reference reverted toharbor.tail5b443a.ts.net/pal-e-app/app:....CI/CD pipeline chain correctness:
.woodpecker.yamlnow aligns Kanikorepo: pal-e-app/app,OVERLAY: "pal-e-app", andPLAYWRIGHT_BASE_URL: https://pal-e-app.tail5b443a.ts.net— the three variables that must all agree for the test→build→update chain to deploy the live hostname.BLOCKERS
None.
NITS
checkstep withETXTBSYonnode_modules/esbuild/bin/esbuildduringnpm ci. This is NOT the Playwright DNS error — it's a race condition on the esbuild binary (likely a concurrent file-write/exec issue, transient Woodpecker filesystem quirk). The Playwright step never ran becausebuildandtestwere skipped aftercheckfailed. Recommendation: restart pipeline #124. If the rerun passes check, the real test is whether Playwright now resolvespal-e-app.tail5b443a.ts.net(the actual hostname that exists). A flakyETXTBSYis not a fix-the-PR blocker — it's an infra retry. If it fails again on restart with the same error, there's a separate infra ticket needed (but that is NOT this PR's responsibility)./home/ldraney/pal-e-appafter merge — it's still on a pre-PR state and caused me a false-alarm check during review.SOP COMPLIANCE
110-revert-rename— follows{issue-number}-{kebab-case-purpose}convention## Summary,## Changes,## Test Plan,## Review Checklist,## Related NotesCloses #110present at end of body.envfiles, or credentials committed (.env.exampleonly contains placeholder Keycloak client ID)arch-pal-e-appnote creation, no PR #275 decouple-update-from-test pattern applied — all deferred as statedfix(#110): revert pal-e-docs-app rename to restore CI)PROCESS OBSERVATIONS
76f316b(PR #95). Merging #111 should trigger the build→update-kustomize-tag→ArgoCD chain for the first time in two weeks.definition-app,convention-dictionary-authority) is already documented — PR #90 was the violation, this PR restores conformance.pal-e-deploymentsreceives[skip ci] pal-e-app: update image tag to <sha>commit.pal-e-appdeployment to a commit>= 4454c8d(PR #109 merge SHA).https://pal-e-app.tail5b443a.ts.net/notesrenders My Notes view for authenticated users./dashboard, non-admin on/notespost-login.VERDICT: APPROVED
This is a textbook surgical revert. Scope matches issue #110 exactly, diff is 23/23 symmetric, k8s label-selector continuity is preserved, CI variable chain is coherent, no scope creep, no repo rename, no secrets. The one CI failure on #124 is an infra
ETXTBSYtransient on thecheckstep unrelated to the PR content — restart pipeline; if Playwright then resolvespal-e-app.tail5b443a.ts.net, the fix worked. If Playwright fails with a NEW DNS-resolution error for a different hostname, that's a follow-up ticket, not a re-review on this PR.Approved to merge pending Lucas's explicit go-ahead (per
feedback_no_merge_without_approval).fix(#110): revert pal-e-docs-app rename to restore CIto fix(#110,#112): revert pal-e-docs-app rename + switch Playwright to preview webServerScope extended to also close #112.
Added commit
30f405eon top of594a5a0:playwright.config.ts— uncommented thewebServerblock sonpx playwright testrunsnpm run build && npm run previewand drives tests againsthttp://localhost:4173. Flipped the defaultbaseURLto match. Bumped webServer timeout to 180s for CI headroom..woodpecker.yaml— setPLAYWRIGHT_BASE_URL=http://localhost:4173in theteststep and added a comment pointing at issue #112.Rationale: the #110 rename revert alone still leaves CI deadlocked — tests would pass or fail based on stale prod, not the PR's own code. The preview-webServer pattern gates the build on the actual PR build.
Intentionally NOT applied: PR #275's decouple-update-from-test pattern. Tests still gate deploys per issue #110's explicit constraint.
Local:
npm run check,npm run lint,npm run buildall clean. Playwright not run locally (per scope — CI will run).