Complete Housekeeping migration and /ase cutover #52

Merged
Simo merged 74 commits from codex/housekeeping-complete into main 2026-08-30 21:27:33 +02:00
Collaborator

English

Summary

This draft completes the Housekeeping Command Deck migration and performs the atomic administration UI cutover to /ase.

  • The canonical Housekeeping workspace now lives under /ase.
  • The legacy /admin, /mod, and /ase-next UI trees are removed with no redirects.
  • Internal /api/admin/* endpoints remain intentionally available behind their permission gates.
  • The historical migration matrix retains all 137 routes as an audit record while the physical scanner reports zero legacy UI pages.
  • Obsolete preview infrastructure, UI modules, dead files, and unused dependencies were removed.

Final security review fixes

  • Logo changes require admin.settings.edit.
  • Generic media deletion rejects nested paths and cannot reach favicon/logo namespaces.
  • Hierarchy bypasses use the explicit isSuperAdmin capability instead of assuming numeric rank 7.
  • Bulk ban/unban require admin.users.ban at both command and service boundaries.
  • All bulk user operations load and authorize every target before any mutation.
  • Rank IDs are dynamic, must exist in permission_ranks, and are no longer capped at 7.

An independent re-review found no Critical or Important findings and assessed the change as ready to merge. Its two Minor test recommendations were implemented.

Verification

  • Node.js toolchain: 26.8.1 aligned
  • Migration matrix: 137/137 valid; 0 legacy UI pages
  • Runtime parity: 137 discovered / 137 mapped / 137 verified
  • Housekeeping suite: 109 files, 843 tests passed
  • Full suite: 262 files passed + 3 skipped; 1,649 tests passed + 5 skipped
  • TypeScript: passed
  • Knip: clean
  • Changed-file Biome and git diff --check: passed
  • Next.js 16.3.3 production build: compiled, typechecked, 129/129 pages generated
  • Forgejo CI check: passed in 35s on cdfae0b9 (run #1140)
  • Post-cutover probes: /admin, /admin-next, /ase-next, and /mod return 404; anonymous /ase redirects to /login; /api/health returns 200

Detailed evidence: docs/superpowers/evidence/2026-08-30-housekeeping-final.md.

Known non-blocking environment notes

  • Production must provide REDIS_URL; the local build warns about the in-process fallback.
  • Turbopack warns about broad filesystem tracing for dynamic translation-file access.
  • Repository-wide lint still contains the existing Windows CRLF baseline; all changed files and patch hygiene pass.

This remains a draft PR. Merge and deployment are separate operator decisions.


Nederlands

Samenvatting

Deze draft rondt de migratie naar de Housekeeping Command Deck af en voert de atomische omschakeling van de beheerinterface naar /ase uit.

  • De canonieke Housekeeping-workspace staat nu onder /ase.
  • De oude UI-bomen /admin, /mod en /ase-next zijn verwijderd zonder redirects.
  • Interne /api/admin/*-endpoints blijven bewust beschikbaar achter hun permissiecontroles.
  • De historische migratiematrix bewaart alle 137 routes als auditregistratie, terwijl de fysieke scanner nul oude UI-pagina's meldt.
  • Verouderde preview-infrastructuur, UI-modules, dode bestanden en ongebruikte dependencies zijn verwijderd.

Opgeloste punten uit de laatste securityreview

  • Logowijzigingen vereisen admin.settings.edit.
  • Generieke mediaverwijdering weigert geneste paden en kan de favicon-/logo-namespaces niet bereiken.
  • Hiërarchische uitzonderingen gebruiken de expliciete capability isSuperAdmin in plaats van numerieke rank 7 te veronderstellen.
  • Bulk ban/unban vereist admin.users.ban aan zowel de command- als servicegrens.
  • Alle bulkgebruikersacties laden en autoriseren elk doel vóór iedere mutatie.
  • Rank-ID's zijn dynamisch, moeten bestaan in permission_ranks en zijn niet langer begrensd op 7.

Een onafhankelijke herbeoordeling vond geen Critical- of Important-bevindingen en beoordeelde de wijziging als klaar om te mergen. De twee Minor-testsuggesties zijn uitgevoerd.

Verificatie

  • Node.js-toolchain: 26.8.1 uitgelijnd
  • Migratiematrix: 137/137 geldig; 0 oude UI-pagina's
  • Runtimepariteit: 137 gevonden / 137 gemapt / 137 geverifieerd
  • Housekeeping-suite: 109 bestanden, 843 tests geslaagd
  • Volledige suite: 262 bestanden geslaagd + 3 overgeslagen; 1.649 tests geslaagd + 5 overgeslagen
  • TypeScript: geslaagd
  • Knip: schoon
  • Biome voor gewijzigde bestanden en git diff --check: geslaagd
  • Next.js 16.3.3-productiebuild: gecompileerd, typechecked en 129/129 pagina's gegenereerd
  • Forgejo CI-check: geslaagd in 35 seconden op cdfae0b9 (run #1140)
  • Probes na de omschakeling: /admin, /admin-next, /ase-next en /mod geven 404; anonieme toegang tot /ase verwijst naar /login; /api/health geeft 200

Gedetailleerd bewijs: docs/superpowers/evidence/2026-08-30-housekeeping-final.md.

Bekende niet-blokkerende omgevingsnotities

  • Productie moet REDIS_URL leveren; de lokale build waarschuwt voor de fallback in het procesgeheugen.
  • Turbopack waarschuwt voor brede filesystem tracing bij dynamische toegang tot vertaalbestanden.
  • De repository-brede lint bevat nog de bestaande Windows CRLF-baseline; alle gewijzigde bestanden en patchcontroles slagen.

Dit blijft een draft-PR. Mergen en deployen zijn afzonderlijke beslissingen van de beheerder.

## English ### Summary This draft completes the Housekeeping Command Deck migration and performs the atomic administration UI cutover to `/ase`. - The canonical Housekeeping workspace now lives under `/ase`. - The legacy `/admin`, `/mod`, and `/ase-next` UI trees are removed with no redirects. - Internal `/api/admin/*` endpoints remain intentionally available behind their permission gates. - The historical migration matrix retains all 137 routes as an audit record while the physical scanner reports zero legacy UI pages. - Obsolete preview infrastructure, UI modules, dead files, and unused dependencies were removed. ### Final security review fixes - Logo changes require `admin.settings.edit`. - Generic media deletion rejects nested paths and cannot reach favicon/logo namespaces. - Hierarchy bypasses use the explicit `isSuperAdmin` capability instead of assuming numeric rank 7. - Bulk ban/unban require `admin.users.ban` at both command and service boundaries. - All bulk user operations load and authorize every target before any mutation. - Rank IDs are dynamic, must exist in `permission_ranks`, and are no longer capped at 7. An independent re-review found no Critical or Important findings and assessed the change as ready to merge. Its two Minor test recommendations were implemented. ### Verification - Node.js toolchain: 26.8.1 aligned - Migration matrix: 137/137 valid; 0 legacy UI pages - Runtime parity: 137 discovered / 137 mapped / 137 verified - Housekeeping suite: 109 files, 843 tests passed - Full suite: 262 files passed + 3 skipped; 1,649 tests passed + 5 skipped - TypeScript: passed - Knip: clean - Changed-file Biome and `git diff --check`: passed - Next.js 16.3.3 production build: compiled, typechecked, 129/129 pages generated - Forgejo CI check: passed in 35s on cdfae0b9 (run #1140) - Post-cutover probes: `/admin`, `/admin-next`, `/ase-next`, and `/mod` return 404; anonymous `/ase` redirects to `/login`; `/api/health` returns 200 Detailed evidence: `docs/superpowers/evidence/2026-08-30-housekeeping-final.md`. ### Known non-blocking environment notes - Production must provide `REDIS_URL`; the local build warns about the in-process fallback. - Turbopack warns about broad filesystem tracing for dynamic translation-file access. - Repository-wide lint still contains the existing Windows CRLF baseline; all changed files and patch hygiene pass. This remains a draft PR. Merge and deployment are separate operator decisions. --- ## Nederlands ### Samenvatting Deze draft rondt de migratie naar de Housekeeping Command Deck af en voert de atomische omschakeling van de beheerinterface naar `/ase` uit. - De canonieke Housekeeping-workspace staat nu onder `/ase`. - De oude UI-bomen `/admin`, `/mod` en `/ase-next` zijn verwijderd zonder redirects. - Interne `/api/admin/*`-endpoints blijven bewust beschikbaar achter hun permissiecontroles. - De historische migratiematrix bewaart alle 137 routes als auditregistratie, terwijl de fysieke scanner nul oude UI-pagina's meldt. - Verouderde preview-infrastructuur, UI-modules, dode bestanden en ongebruikte dependencies zijn verwijderd. ### Opgeloste punten uit de laatste securityreview - Logowijzigingen vereisen `admin.settings.edit`. - Generieke mediaverwijdering weigert geneste paden en kan de favicon-/logo-namespaces niet bereiken. - Hiërarchische uitzonderingen gebruiken de expliciete capability `isSuperAdmin` in plaats van numerieke rank 7 te veronderstellen. - Bulk ban/unban vereist `admin.users.ban` aan zowel de command- als servicegrens. - Alle bulkgebruikersacties laden en autoriseren elk doel vóór iedere mutatie. - Rank-ID's zijn dynamisch, moeten bestaan in `permission_ranks` en zijn niet langer begrensd op 7. Een onafhankelijke herbeoordeling vond geen Critical- of Important-bevindingen en beoordeelde de wijziging als klaar om te mergen. De twee Minor-testsuggesties zijn uitgevoerd. ### Verificatie - Node.js-toolchain: 26.8.1 uitgelijnd - Migratiematrix: 137/137 geldig; 0 oude UI-pagina's - Runtimepariteit: 137 gevonden / 137 gemapt / 137 geverifieerd - Housekeeping-suite: 109 bestanden, 843 tests geslaagd - Volledige suite: 262 bestanden geslaagd + 3 overgeslagen; 1.649 tests geslaagd + 5 overgeslagen - TypeScript: geslaagd - Knip: schoon - Biome voor gewijzigde bestanden en `git diff --check`: geslaagd - Next.js 16.3.3-productiebuild: gecompileerd, typechecked en 129/129 pagina's gegenereerd - Forgejo CI-check: geslaagd in 35 seconden op cdfae0b9 (run #1140) - Probes na de omschakeling: `/admin`, `/admin-next`, `/ase-next` en `/mod` geven 404; anonieme toegang tot `/ase` verwijst naar `/login`; `/api/health` geeft 200 Gedetailleerd bewijs: `docs/superpowers/evidence/2026-08-30-housekeeping-final.md`. ### Bekende niet-blokkerende omgevingsnotities - Productie moet `REDIS_URL` leveren; de lokale build waarschuwt voor de fallback in het procesgeheugen. - Turbopack waarschuwt voor brede filesystem tracing bij dynamische toegang tot vertaalbestanden. - De repository-brede lint bevat nog de bestaande Windows CRLF-baseline; alle gewijzigde bestanden en patchcontroles slagen. Dit blijft een draft-PR. Mergen en deployen zijn afzonderlijke beslissingen van de beheerder.
Simo added 26 commits 2026-08-27 20:35:54 +02:00
fix(housekeeping): close schema reflection escapes
CI / check (pull_request) Successful in 30s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
01dceac073
Simo changed title from Complete Housekeeping Command Deck migration to Draft: Complete Housekeeping Command Deck migration 2026-08-27 20:36:23 +02:00
Simo changed title from Draft: Complete Housekeeping Command Deck migration to WIP: Complete Housekeeping Command Deck migration 2026-08-27 20:36:45 +02:00
Simo added 2 commits 2026-08-28 21:11:40 +02:00
Simo added 2 commits 2026-08-28 22:02:06 +02:00
fix(housekeeping): make route matching deterministic
CI / check (pull_request) Successful in 29s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
0117b45d74
Simo added 2 commits 2026-08-29 00:33:36 +02:00
fix(housekeeping): harden system workflow boundaries
CI / check (pull_request) Successful in 33s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
c325c53774
Simo added 3 commits 2026-08-29 10:42:34 +02:00
Simo added 5 commits 2026-08-29 21:15:24 +02:00
Simo added 3 commits 2026-08-30 00:16:44 +02:00
Simo added 7 commits 2026-08-30 12:20:19 +02:00
Simo added 1 commit 2026-08-30 12:28:06 +02:00
test: make media route fixture cross-platform
CI / check (pull_request) Successful in 34s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
1ec05cda39
Simo added 1 commit 2026-08-30 13:48:25 +02:00
feat(housekeeping): deliver economy vertical
CI / check (pull_request) Successful in 40s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
9c4b973faf
Simo added 2 commits 2026-08-30 14:35:51 +02:00
feat(housekeeping): deliver hotel operations
CI / check (pull_request) Failing after 36s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
abc707cfb2
Simo added 1 commit 2026-08-30 14:45:06 +02:00
fix(housekeeping): connect hotel asset ownership
CI / check (pull_request) Successful in 36s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
020c06f172
Simo added 1 commit 2026-08-30 15:31:00 +02:00
feat(housekeeping): integrate studio operations
CI / check (pull_request) Successful in 38s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
2e95a106e0
Simo added 1 commit 2026-08-30 16:01:00 +02:00
feat(housekeeping): add global command deck search
CI / check (pull_request) Successful in 38s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
bcb0ca977f
Simo added 1 commit 2026-08-30 16:27:32 +02:00
feat(housekeeping): compose operational inbox
CI / check (pull_request) Successful in 37s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
300ac0ef95
Simo added 1 commit 2026-08-30 16:56:50 +02:00
feat(housekeeping): personalize command deck
CI / check (pull_request) Successful in 36s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
5574e601bb
Simo added 1 commit 2026-08-30 17:25:23 +02:00
feat(housekeeping): compose operations workspace
CI / check (pull_request) Successful in 37s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
85ad0452d3
Simo added 2 commits 2026-08-30 18:53:33 +02:00
Merge remote-tracking branch 'origin/main' into codex/housekeeping-complete
CI / check (pull_request) Successful in 1m2s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
b235ce08ff
Simo added 1 commit 2026-08-30 19:13:48 +02:00
test(housekeeping): prove 137 route parity
CI / check (pull_request) Successful in 1m9s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
8a31556d51
Simo added 5 commits 2026-08-30 19:53:31 +02:00
Simo added 5 commits 2026-08-30 21:08:10 +02:00
Simo changed title from WIP: Complete Housekeeping Command Deck migration to WIP: Complete Housekeeping migration and /ase cutover 2026-08-30 21:08:51 +02:00
Simo added 1 commit 2026-08-30 21:13:55 +02:00
fix(ci): stabilize post-cutover checks
CI / check (pull_request) Successful in 35s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
cdfae0b967
Simo marked the pull request as ready for review 2026-08-30 21:27:22 +02:00
Simo merged commit 488b6e57c4 into main 2026-08-30 21:27:33 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: remco/EpicNext-Cms#52