Review (round 2): Revert pal-e-docs-app rename — unblock CI + ship #105/#109
Verdict: APPROVED
Round 2 re-review of board item #1015 (Forgejo issue forgejo_admin/pal-e-app#110). All 8 [BODY] recommendations from
review-1015-2026-04-16 have been applied to the issue body and verified against ground truth (Forgejo API, repo state, current main HEAD). The 2 [SCOPE] items (missing story:app-definition entry on project-pal-e-docs, missing arch-pal-e-app note) are correctly captured in the issue's "Out of Scope" section as follow-ups and do not block this revert. Ticket is ready to advance from backlog to todo.Round 2 Fix Verification
Each [BODY] item from round 1 verified against the live issue body fetched from the Forgejo API and against ground truth.
Fix 1: Explicit 13-file list from PR #90
- [x] Issue body section
### Scope — Files to Revert (verbatim from PR #90)contains a numbered list of exactly 13 files. - [x] Cross-checked against Forgejo API
/repos/forgejo_admin/pal-e-app/pulls/90/files: PR #90 touched exactly 13 files. All 13 PR file paths match the issue list verbatim: - [x] Each entry includes which token(s) to flip (e.g.,
.woodpecker.yamlcalls out clone remote URL, Kaniko repo, OVERLAY, PLAYWRIGHT_BASE_URL).
Fix 2: Forgejo no-rename callout
- [x] Issue body
### Reposection contains a bolded callout: "Important — no Forgejo repo rename: PR #90's body states 'repo was renamed from pal-e-app to pal-e-docs-app' but this is false. The Forgejo repo is stillforgejo_admin/pal-e-app(verified via API). Do not rename anything in Forgejo as part of this revert." - [x] Verified via API call to
/repos/forgejo_admin/pal-e-app:full_namereturnsforgejo_admin/pal-e-app(no rename ever happened).
Fix 3: Pin AC5 SHA
- [x] AC for ArgoCD roll references
4454c8d10bb4e3f12044e3ba65646115c61a79abwith provenance: "PR #109 merge SHA at ticket creation; refresh viagit -C ~/pal-e-app rev-parse origin/mainbefore final verification if more PRs merge." - [x] Verified live via Forgejo API
/repos/forgejo_admin/pal-e-app/branches/main: current main HEAD is4454c8d10bb4e3f12044e3ba65646115c61a79ab, commit messagefeat: My Notes view + identity-aware dashboard + attribution (#109). SHA is real, current, and traceably documented.
Fix 4: Verification recipe in AC6
- [x] AC for manual verification spells out the recipe: open
https://pal-e-app.tail5b443a.ts.net/notesin a logged-in browser session, confirm My Notes view renders (PR #109), confirm admin role lands on/dashboardand non-admin lands on/notespost-login (PR #105). Pre-step:kubectl rollout status deployment/pal-e-app -n pal-e-app. - [x] Recipe is concrete enough that a dev agent can execute without asking how.
Fix 5: Keycloak orphan callout
- [x]
### Environmentsection: "Keycloak:src/lib/keycloak.tsdefaultclientIdreverts topal-e-app. Any orphan Keycloak client created underpal-e-docs-appis out of scope; flag as a follow-up." - [x] Mirrored in
### Out of Scope: "Cleanup of any orphan Keycloak client namedpal-e-docs-app(if one was created)."
Fix 6: Harbor orphan callout
- [x]
### Environmentsection: "Harbor push target:harbor.tail5b443a.ts.net/pal-e-app/app— do not create a new Harbor project; reuse the existing one. Any orphanpal-e-docs-appHarbor project (if one was created) is out of scope; flag as a follow-up." - [x] Mirrored in
### Out of Scope: "Cleanup of any orphan Harbor project namedpal-e-docs-app(if one was created)." - [x] Lines up with the
feedback_harbor_project_naming.md36-hour-outage lesson — defensive on Harbor.
Fix 7: New AC — rg in pal-e-deployments
- [x] AC present: "Cross-repo defensive check:
rg pal-e-docs-appin~/pal-e-deploymentsreturns zero matches (currently passes — confirm no cross-contamination introduced)." - [x] Verified live: Grep for
pal-e-docs-appin/home/ldraney/pal-e-deploymentsreturns 0 matches (0 files). The defensive AC will pass cleanly today; it is here to catch any regression introduced by the revert agent.
Fix 8: Issue #87 guidance
- [x] AC present: "Issue #87 (the rename request that PR #90 closed): post a comment noting the rename was reverted and why; leave issue closed unless requestor reopens."
- [x] Related section also references #87: "original rename request (verify whether it requested the rename; comment with revert rationale)."
- [x] Guidance is unambiguous — dev agent will not accidentally reopen.
[SCOPE] Items Tracked, Not Blocking
- [x] Out of Scope: "Adding a
story:app-definitionrow to theproject-pal-e-docsuser-stories table (label is in use but not yet documented on the project page)." - [x] Out of Scope: "Creating a missing
arch-pal-e-apparchitecture note (referenced byarch:pal-e-applabel, note does not yet exist)." - Both are correctly framed as documentation follow-ups. They do not block a regression revert. Ava can spawn separate backlog tickets for these.
Template Completeness
- [x] Type — Bug
- [x] Lineage — standalone, regression from PR #90, references closed #87
- [x] Repo —
forgejo_admin/pal-e-app+ Forgejo no-rename callout - [x] What Broke — clear, with cascade diagram and SHA evidence
- [x] Repro Steps — pipelines #114-#123 named, command sequence concrete
- [x] Expected Behavior — present
- [x] Environment — cluster/namespace, deployed SHA, main SHA, ingress, Harbor target, Keycloak callout
- [x] Scope (13 files, verbatim from PR #90)
- [x] Acceptance Criteria — 7 items now (added cross-repo grep AC), all testable, with verification recipes
- [x] Out of Scope — orphans + missing notes + PR #275 anti-pattern
- [x] Related — full link set
Traceability
- [x] story:app-definition label — present on board item #1015 (story note still missing — flagged as Out of Scope follow-up)
- [x] arch:pal-e-app label — present on board item #1015 (arch note still missing — flagged as Out of Scope follow-up)
- [x] Forgejo issue — #110 open and well-formed
- Story/arch notes are correctly tracked as separate follow-ups; do not block this revert (regression fix, not new architecture).
File Targets
13 files listed verbatim from PR #90, matched 1-to-1 against Forgejo API
/pulls/90/files response. All paths exist in /home/ldraney/pal-e-app. Token-level scope (which strings to flip per file) is documented in the issue.Repo Placement
Correct repo (
forgejo_admin/pal-e-app). Forgejo no-rename callout prevents the dev agent from attempting a repo rename. Cross-repo defensive AC on pal-e-deployments guards against config drift.Dependencies
- Blocks: PR #105 + PR #109 deploys (both merged, stuck on stale image
76f316b) - Blocks: every future pal-e-app PR (10 consecutive failed pipelines #114-#123)
- Anti-pattern explicitly called out: do not apply pal-e-platform PR #275's decoupling pattern here
- No competing in-flight work on the board (no other pal-e-app revert items in
in_progress/next_up)
Acceptance Criteria
7 ACs, all testable, all with concrete verification commands or recipes. AC5 SHA verified live as current main HEAD. AC6 verification recipe is concrete (kubectl rollout + browser visit + role-based redirect check). AC7 (Issue #87 comment guidance) is unambiguous.
Blast Radius
Round 1's blast-radius callouts (Keycloak orphan client, Harbor orphan project, defensive grep on pal-e-deployments, Issue #87 guidance) all incorporated. Cross-repo grep on pal-e-deployments verified clean today.
Decomposition Assessment
13 files in 1 repo, mechanical sed-style revert, 7 ACs. Estimated agent time: ~10-15 min revert + commit + push, ~5 min CI wait. Tightly scoped, mechanical work — no decomposition needed. Single agent pass is correct sizing.
Recommendation
APPROVED. All 8 round-1 [BODY] fixes verified present and correct against ground truth (Forgejo API for PR #90 files + main HEAD SHA, repo grep for pal-e-deployments cleanliness, repo grep for token scope per file). The 2 [SCOPE] items are tracked as Out of Scope follow-ups and do not block this revert. Ticket is ready to advance from backlog → todo. Ava: feel free to flip the column.
Side note for Ava: when this revert lands, also queue:
- A small backlog item: "Add story:app-definition row to project-pal-e-docs user-stories"
- A small backlog item: "Create arch-pal-e-app note"
- A small follow-up: "Sweep Keycloak realm + Harbor catalog for orphan pal-e-docs-app entities; clean if present"