This PR provides the unified six-domain Housekeeping preview at /ase-next, retaining /admin and /mod during validation. It consolidates the earlier branches into one implementation and review path.
Resulting behavior
Shared routing, capabilities, commands, search, inbox, widgets, preferences, recent work, audit contracts, and production adapters across the six domains.
Dedicated Articles, Events, and Polls workflows with bounded queries, typed forms, protected destructive actions, UTC scheduling, and transactional integrity.
ASE integration of Catalog Studio, including inventory diagnostics, filters, pagination, clone/retry/translation controls, and audited progress events; durable cross-process history remains open.
Localization across the supported dictionaries, semantic colors, and the Theme Builder route.
The latest integrated upstream is origin/main at bfbf2441, including Next.js 16.3.4, the self-hosted CI workflow, and Studio/import resilience changes.
Rank consistency and recovery
An old recovery reference previously could replay an obsolete rank. Recovery now reads the current committed database rank under a user-row lock. Rank assignment commits database state and an audit intent before delivery; the delivery transaction holds the user lock until the transport settles. Assignments and deletion acquire the configured-rank lock first.
The coordinated paths include System, People, the legacy command centre and user editor, the user-actions API, legacy rank deletion, administrative user creation, and shop rank upgrades. Shop purchases compare the locked current rank so a newer staff promotion cannot be overwritten. Failed synchronization preserves the committed purchase and a recovery reference.
Missing ranks and SQL dependency failures are distinguished. Deletion of the target after commit produces an audited superseded result. Partial results expose recovery references; an audit-only failure retains the successful delivery status.
The scoped independent review reports no remaining Important or Critical findings. The previous I-6 CMS consistency blocker is addressed.
Verification
Remote CI check passed on 866f3881 (run 1244); deploy and E2E jobs are intentionally skipped for this PR.
Project-source lint without formatting passed with one existing Studio warning. The full local Windows checkout also includes untracked brainstorm HTML and CRLF/LF differences; those local artifacts are not included in this PR.
Review boundary
The PR remains draft. No deployment or production cutover is requested. TCP RCON success confirms socket dispatch, not emulator processing; end-to-end acknowledgment requires emulator support. Tests cover locking SQL and controlled transaction ordering, not a live two-connection MariaDB race or production emulator acceptance. Production should provide the existing REDIS_URL configuration for shared rate limits and session/cache invalidation.
Deze PR levert de gecombineerde Housekeeping-preview met zes domeinen op /ase-next. Tijdens de validatie blijven /admin en /mod beschikbaar. De eerdere branches zijn samengevoegd tot één implementatie en één reviewtraject.
Gedrag na deze wijziging
Gedeelde routing, rechten, opdrachten, zoeken, inbox, widgets, voorkeuren, recent werk, auditcontracten en productie-adapters voor de zes domeinen.
Aparte workflows voor Artikelen, Evenementen en Polls met begrensde queries, getypeerde formulieren, beschermde verwijderacties, UTC-planning en transactionele consistentie.
Catalog Studio binnen ASE, met inventarisdiagnose, filters, paginering, klonen, opnieuw proberen, vertaalopties en geauditeerde voortgang; duurzame procesoverschrijdende historie staat nog open.
Lokalisatie in de ondersteunde woordenboeken, semantische kleuren en de Theme Builder-route.
De laatst geïntegreerde upstream is origin/main op bfbf2441, inclusief Next.js 16.3.4, de self-hosted CI-workflow en verbeterde Studio-/importfoutafhandeling.
Rankconsistentie en herstel
Een oude herstelreferentie kon voorheen een verouderde rank opnieuw toepassen. Herstel leest nu de actuele gecommitte rank onder een lock op de gebruikersrij. Ranktoewijzing commit eerst de databasewijziging en een auditintentie; tijdens verzending blijft de gebruikersrij gelockt totdat het transport is afgerond. Toewijzing en verwijdering locken eerst de geconfigureerde rank.
Dit geldt voor System, People, het oude commandocentrum en de gebruikerseditor, de gebruikersacties-API, oude rankverwijdering, administratieve gebruikersaanmaak en rankupgrades in de shop. Shopaankopen vergelijken de actuele gelockte rank, zodat een nieuwere stafpromotie niet wordt overschreven. Een mislukte synchronisatie behoudt de gecommitte aankoop en een herstelreferentie.
Een ontbrekende rank wordt onderscheiden van SQL-afhankelijkheidsfouten. Verwijdering van de gebruiker na de commit levert een geaudit achterhaald resultaat op. Gedeeltelijke resultaten tonen herstelreferenties; een fout in alleen de voltooiingsaudit behoudt de geslaagde verzendstatus.
De onafhankelijke gerichte review meldt geen resterende Important- of Critical-bevindingen. De eerdere I-6-blokkade voor CMS-consistentie is opgelost.
Verificatie
CI-controle geslaagd op 866f3881 (run 1244); deployment en E2E worden voor deze PR bewust overgeslagen.
Lint op de projectbronnen zonder formattering geslaagd, met één bestaande Studio-waarschuwing. De volledige lokale Windows-checkout bevat ook niet-geversioneerde brainstorm-HTML en CRLF/LF-verschillen; deze lokale bestanden maken geen deel uit van de PR.
Reviewgrens
De PR blijft draft. Er wordt geen deployment of productiecutover gevraagd. TCP RCON bevestigt socketverzending, niet verwerking door de emulator; end-to-end-bevestiging vereist emulatorondersteuning. Tests dekken locking-SQL en gecontroleerde transactievolgorde, geen echte MariaDB-racetest met twee verbindingen of acceptatietest op de productie-emulator. Productie hoort de bestaande REDIS_URL-configuratie te gebruiken voor gedeelde rate limits en sessie-/cache-invalidatie.
Upstream origin/main is already integrated; origin/dev does not exist. Read-only local probes returned ECONNREFUSED for both MariaDB and RCON; Redis is not configured and the preview flag is off. Installed the Chromium revision required by the existing Playwright dependency. The smoke run has 1 pass (HTTP health reachability) and 1 failure (homepage navigation timeout, with database connection failures in the server logs, including theme_scopes). This is not an authenticated ASE acceptance result. Integration validation is blocked pending an available test database/emulator and an authorized test account. No database writes, preview activation, or deployment were performed.
Lokale integratiecontrole — 2026-09-05
Upstream origin/main is al geïntegreerd; origin/dev bestaat niet. Alleen-lezen controles geven ECONNREFUSED voor MariaDB en RCON; Redis is niet ingesteld en de preview staat uit. De door Playwright vereiste Chromium-versie is geïnstalleerd. De smoke-run heeft 1 geslaagde test (HTTP-health bereikbaar) en 1 mislukte test (timeout bij homepage-navigatie, met databaseverbindingsfouten in de serverlogs, waaronder theme_scopes). Dit is geen aangemelde ASE-acceptatietest. Integratievalidatie wacht op een beschikbare testdatabase/emulator en een bevoegd testaccount. Geen databasewijzigingen, preview-activering of deployment uitgevoerd.
Preserves normalized operator reasons in Content, Economy and Hotel production audit records. Hotel now reports successful external execution with failed completion auditing as partial (external completed, audit unavailable), without falsely recording RCON failure. Includes service-to-adapter and Hotel-command regressions. Local verification: 1,877 tests passed, 5 skipped; TypeScript passed; changed-file Biome passed; scoped independent review found no Critical/Important issues. The complete backend audit remains open, including commerce concurrency and operation-by-operation parity. This is not deployment or live acceptance evidence.
Nederlands
Behoudt genormaliseerde operatorredenen in de productie-audit van Content, Economy en Hotel. Hotel meldt geslaagde externe uitvoering met mislukte voltooiingsaudit als gedeeltelijk (extern voltooid, audit niet beschikbaar), zonder onterecht RCON-falen te registreren. Regressies testen de service-adapterketen en Hotel-opdrachten. Lokale verificatie: 1.877 tests geslaagd, 5 overgeslagen; TypeScript en Biome op gewijzigde bestanden geslaagd; onafhankelijke gerichte review zonder Critical/Important-bevindingen. De volledige backendcontrole blijft open, inclusief gelijktijdige commercebewerkingen en functiepariteit per operatie. Dit is geen deployment of live-acceptatiebewijs.
ASE and legacy marketplace cancellation now lock the listing inside a transaction before checking state. Legacy staff activity is written in the same transaction. ASE and legacy voucher updates lock current usage and reject a lower cap; missing legacy voucher edits no longer report success. Added 14 regressions using real Drizzle SQL generation and controlled database responses. Full pre-push suite: 1,891 passed, 5 skipped; TypeScript, Knip, changed-file Biome and route matrix checks passed. Scoped review found no Critical/Important regressions. Open findings and verification boundaries: docs/superpowers/evidence/2026-09-05-housekeeping-backend-review.md. Public voucher redemption/award atomicity and complete operation-level backend parity remain open. Draft retained; no deployment.
Nederlands
ASE en oude marketplace-annulering locken de aanbieding binnen een transactie voordat de status wordt gecontroleerd. Oude stafactiviteit wordt in dezelfde transactie geschreven. ASE en oude voucherwijzigingen locken het actuele gebruik en weigeren een lager maximum; ontbrekende vouchers worden niet langer als geslaagde wijziging gemeld. Er zijn 14 regressies toegevoegd met echte Drizzle-SQL-generatie en gecontroleerde database-antwoorden. Volledige pre-push-suite: 1.891 geslaagd, 5 overgeslagen; TypeScript, Knip, Biome op gewijzigde bestanden en routematrix geslaagd. Gerichte review zonder Critical/Important-regressies. Open bevindingen en verificatiegrenzen: docs/superpowers/evidence/2026-09-05-housekeeping-backend-review.md. Atomiciteit van publieke voucherinwisseling/beloning en volledige backendpariteit per operatie blijven open. PR blijft draft; geen deployment.
Public voucher redemption now atomically locks eligibility and duplicate claims, records usage, updates the cap counter/expiration and persists an audit intent before reward dispatch. Reservation or commit-acknowledgment errors prevent dispatch. False/thrown delivery retains the claim and returns a correlated staff reference; completion-audit failure does not falsely report failed delivery. This supersedes the earlier open finding about non-atomic voucher reservation. Existing currency transport is unchanged: there is no exactly-once emulator guarantee or automatic replay/refund for uncertain awards. Evidence: docs/superpowers/evidence/2026-09-05-voucher-reservation.md. Verification: 22 focused voucher tests; 1,913 full-suite tests passed, 5 skipped; TypeScript, Knip and changed-file Biome passed. Scoped read-only review found no Critical/Important implementation defects. Full backend parity review remains open. Draft retained; no deployment or live MariaDB race claim.
Nederlands
Publieke voucherinwisseling lockt nu geldigheid en eerdere claims atomair, registreert gebruik, werkt teller/vervaldatum bij en bewaart een auditintentie vóór verzending van de beloning. Reserveringsfouten of een onzekere commitbevestiging blokkeren verzending. Een mislukte/onbevestigde verzending behoudt de claim en geeft een gecorreleerde stafreferentie; een mislukte voltooiingsaudit meldt niet onterecht dat de verzending mislukte. Dit vervangt de eerdere open bevinding over niet-atomaire voucherreservering. Het valutatransport is ongewijzigd: geen exactly-once-emulatorgarantie of automatische herhaling/terugbetaling van onzekere beloningen. Onderbouwing: docs/superpowers/evidence/2026-09-05-voucher-reservation.md. Verificatie: 22 gerichte vouchertests; 1.913 tests geslaagd, 5 overgeslagen; TypeScript, Knip en Biome op gewijzigde bestanden geslaagd. Gerichte read-only review zonder Critical/Important-implementatiefouten. Volledige backendpariteitscontrole blijft open. PR blijft draft; geen deployment of claim van een live MariaDB-racetest.
Functional completion status — 2026-09-05
The six-domain code comparison found unresolved backend and workflow gaps. Route registration and the 138-row matrix are structural checks, not functional completion. Theme Builder scope/value operations, soundtrack file upload, complete investigative/edit projections, durable Studio history and full import finalization remain open. Confirmed integrity defects include legacy room/radio validation bypasses, moderation target authority, configuration transaction/audit gaps and false-success outcomes.
Implementation continues on this single branch. Room action convergence and concurrency regressions are in progress, followed by moderation/access integrity and remaining parity tasks. Existing /admin and /mod remain available; no cutover or deployment. CI aggregate success was verified for 8e54cdbc; service-backed acceptance and full UI completion are not claimed.
Functionele voltooiingsstatus — 2026-09-05
De codevergelijking van de zes domeinen toont nog open backend- en workflowtekorten. Routeregistratie en de matrix met 138 regels zijn structurele controles, geen functionele voltooiing. Theme Builder-acties voor scopes/waarden, soundtrack-upload, volledige onderzoeks-/bewerkmodellen, duurzame Studio-historie en volledige importafronding staan nog open. Bevestigde integriteitsproblemen omvatten ontbrekende validatie in oude kamer-/radioacties, autorisatie van moderatiedoelen, transacties/audits bij configuratie en onterecht gemeld succes.
De implementatie gaat door op deze ene branch. Kameracties en regressietests voor gelijktijdigheid zijn in uitvoering, gevolgd door moderatie/toegangsbeveiliging en overige pariteitstaken. Bestaande /admin en /mod blijven beschikbaar; geen omschakeling of deployment. De gecombineerde CI-status van 8e54cdbc is succesvol gecontroleerd; acceptatie met echte diensten en volledige UI-voltooiing worden niet geclaimd.
Legacy room/item actions now use the canonical Hotel service: strict fields, room-scoped targets, deterministic row locks, atomic bulk deletion and transactional audits. Failed post-commit cache revalidation preserves success with refresh-needed metadata; displaying that warning in the UI is still open. Incorrect automatic room-reload copy was removed. Independent review and one scoped fix review passed. Push hooks: 285 files passed/3 skipped, 1,941 tests passed/5 skipped; typecheck, scoped Biome and Knip passed. Live MariaDB/RCON acceptance is not claimed. Next implementation: moderation target authority.
Oude kamer-/meubelacties gebruiken nu de canonieke Hotel-service: strikte velden, kamergebonden doelen, deterministische rijlocks, atomische bulkverwijdering en transactionele audits. Een mislukte cacheverversing na commit blijft een geslaagde mutatie met metadata voor handmatig vernieuwen; zichtbare UI-waarschuwing staat nog open. Onjuiste tekst over automatisch herladen is verwijderd. Onafhankelijke review en gerichte hercontrole geslaagd. Pushcontroles: 285 bestanden geslaagd/3 overgeslagen, 1.941 tests geslaagd/5 overgeslagen; typecheck, gerichte Biome en Knip geslaagd. Geen claim over live MariaDB/RCON-acceptatie. Volgende implementatie: autorisatie van moderatiedoelen.
Unified canonical and legacy user-targeted moderation guards: missing/protected targets are rejected, CFH sanctions are bound to the ticket's reported user and actionable state, and IP/machine/super bans validate real target identifiers. User locks cover bounded transport dispatch. Known completed delivery remains a partial result if finalization fails; staff activity writes run only after releasing the authority transaction to avoid pool starvation. Independent task review and scoped fix review are clean.
Verification: focused fix suite 112/112, typecheck and scoped Biome passed. Full pre-push verification passed: 286 test files and 1,975 tests, with 3 files/5 tests skipped; coverage thresholds passed. Remote CI check passed for 845666cf (run 1249/job 2540); deploy and E2E were skipped. No live DB/RCON contention test, emulator acknowledgment, deployment or cutover is claimed. Next: radio settings validation, complete legacy form support and cache freshness/invalidation. The expanded plan also tracks remaining radio CRUD/credential delivery and support-state/legacy-action gaps.
Nederlands
De doelwitcontrole voor canonieke en bestaande moderatieacties is samengebracht: ontbrekende of beschermde gebruikers worden geweigerd, CFH-sancties zijn gekoppeld aan de gemelde gebruiker en een behandelbare ticketstatus, en IP-/machine-/superbans gebruiken gevalideerde doelgegevens. De gebruikerslock blijft actief tijdens de begrensde transportaanroep. Bekende voltooide verzending blijft een gedeeltelijk resultaat als de afronding mislukt; personeelsactiviteiten worden pas na het vrijgeven van de transactie opgeslagen om uitputting van de verbindingspool te voorkomen. De onafhankelijke taakreview en gerichte herbeoordeling zijn afgerond zonder open bevindingen.
Verificatie: 112/112 gerichte tests, typecheck en gerichte Biome-controle geslaagd. De volledige pre-push-controle is geslaagd: 286 testbestanden en 1.975 tests, met 3 bestanden/5 tests overgeslagen; de dekkingsdrempels zijn gehaald. Externe CI-check geslaagd voor 845666cf (run 1249/job 2540); deployment en E2E zijn overgeslagen. Geen claim van live DB/RCON-concurrentietests, emulatorbevestiging, deployment of omschakeling. Volgende stap: radio-instellingen, volledige ondersteuning van bestaande formulieren en cacheverversing. Het uitgebreide plan omvat ook de resterende radio-CRUD/sleuteluitgifte en supportstatus/bestaande acties.
origin/main synchronization and radio-cache checkpoint — 874cb2be
English
Merged origin/main through 775d14f8 into the dedicated HK branch. The integration preserves upstream Catalog Studio Git export, inspection/review, advisory source preflight, streamed errors, asset validation, furniture ID reservation/remapping, revision preservation and conversion recovery together with HK cancellation/completion/reset contracts. Five conflicts were resolved semantically. Independent review found cancellation could still write after waiting for the ID reservation queue; e7549bbb rechecks immediately before INSERT and propagates AbortError. Scoped re-review is clean.
Radio settings/cache Task 2 is complete and reviewed: legacy Promise forms delegate to transactional Hotel operations; all 102 curated settings fit the bounded 500-entry batch; duplicate/invalid entries fail before writes; values are redacted; invalidation happens after commit; stale in-flight reads cannot repopulate cache; sanitized success/partial/error notices are displayed. Exact case-sensitive radio_/auto_dj_ prefixes retain custom suffixes and reject uppercase variants.
Verification: production build generated 249 pages with a temporary process-only AUTH_SECRET; pre-push typecheck and coverage suite passed (304 files/2,076 tests; 3 files/5 tests skipped). No live DB, Redis, RCON, browser workflow, external import, deployment or cutover is claimed. Task 14 end-to-end Studio orchestration/finalization remains open.
Nederlands
Origin/main tot en met 775d14f8 is samengevoegd in de speciale HK-branch. De integratie behoudt upstream Catalog Studio Git-export, inspectie/review, adviserende broncontrole, gestreamde fouten, assetvalidatie, reservering/hernummering van furniture-ID's, revisiebehoud en conversieherstel samen met HK-contracten voor annulering, voltooiing en reset. Vijf conflicten zijn inhoudelijk opgelost. De onafhankelijke review vond dat annulering na wachten in de ID-reserveringswachtrij nog kon schrijven; e7549bbb controleert direct vóór INSERT en geeft AbortError door. De gerichte herbeoordeling is schoon.
Radio-instellingen/cache Task 2 is voltooid en beoordeeld: bestaande Promise-formulieren gebruiken transactionele Hotel-operaties; alle 102 instellingen passen in de begrensde batch van 500; dubbele/ongeldige waarden stoppen vóór writes; waarden worden geredigeerd; invalidatie gebeurt na commit; verouderde lopende reads vullen de cache niet opnieuw; opgeschoonde succes-/gedeeltelijke-/foutmeldingen worden getoond. Exact hoofdlettergevoelige radio_/auto_dj_-prefixen behouden aangepaste suffixen en weigeren hoofdlettervarianten.
Verificatie: de productiebuild genereerde 249 pagina's met een tijdelijk procesgebonden AUTH_SECRET; pre-push typecheck en dekkingssuite zijn geslaagd (304 bestanden/2.076 tests; 3 bestanden/5 tests overgeslagen). Geen claim van live DB, Redis, RCON, browserworkflow, externe import, deployment of omschakeling. Task 14 end-to-end Studio-orkestratie/finalisatie blijft open.
Remote CI update: check passed for 874cb2be (run 1268/job 2597); deploy and E2E were skipped.
Externe CI-update: check geslaagd voor 874cb2be (run 1268/job 2597); deployment en E2E zijn overgeslagen.
## English
This PR provides the unified six-domain Housekeeping preview at `/ase-next`, retaining `/admin` and `/mod` during validation. It consolidates the earlier branches into one implementation and review path.
### Resulting behavior
- Shared routing, capabilities, commands, search, inbox, widgets, preferences, recent work, audit contracts, and production adapters across the six domains.
- Dedicated Articles, Events, and Polls workflows with bounded queries, typed forms, protected destructive actions, UTC scheduling, and transactional integrity.
- ASE integration of Catalog Studio, including inventory diagnostics, filters, pagination, clone/retry/translation controls, and audited progress events; durable cross-process history remains open.
- Localization across the supported dictionaries, semantic colors, and the Theme Builder route.
- The latest integrated upstream is `origin/main` at `bfbf2441`, including Next.js 16.3.4, the self-hosted CI workflow, and Studio/import resilience changes.
### Rank consistency and recovery
An old recovery reference previously could replay an obsolete rank. Recovery now reads the current committed database rank under a user-row lock. Rank assignment commits database state and an audit intent before delivery; the delivery transaction holds the user lock until the transport settles. Assignments and deletion acquire the configured-rank lock first.
The coordinated paths include System, People, the legacy command centre and user editor, the user-actions API, legacy rank deletion, administrative user creation, and shop rank upgrades. Shop purchases compare the locked current rank so a newer staff promotion cannot be overwritten. Failed synchronization preserves the committed purchase and a recovery reference.
Missing ranks and SQL dependency failures are distinguished. Deletion of the target after commit produces an audited superseded result. Partial results expose recovery references; an audit-only failure retains the successful delivery status.
The scoped independent review reports no remaining Important or Critical findings. The previous I-6 CMS consistency blocker is addressed.
### Verification
- Remote CI check passed on `866f3881` ([run 1244](https://gitlab.epicnabbo.nl/remco/EpicNext-Cms/actions/runs/1244)); deploy and E2E jobs are intentionally skipped for this PR.
- Full suite: **280 files passed, 3 skipped; 1,861 tests passed, 5 skipped**; coverage thresholds passed.
- Focused rank/legacy/shop/System/People regressions: **94 passed**.
- TypeScript, canonical Knip, and Biome on all 13 changed source/test files passed.
- Migration matrix: **138/138** historical rows valid; runtime discovered/mapped/verified **138/138/138**, with 2 intentional removals.
- Production build: **245 pages generated**.
- Project-source lint without formatting passed with one existing Studio warning. The full local Windows checkout also includes untracked brainstorm HTML and CRLF/LF differences; those local artifacts are not included in this PR.
### Review boundary
The PR remains **draft**. No deployment or production cutover is requested. TCP RCON success confirms socket dispatch, not emulator processing; end-to-end acknowledgment requires emulator support. Tests cover locking SQL and controlled transaction ordering, not a live two-connection MariaDB race or production emulator acceptance. Production should provide the existing `REDIS_URL` configuration for shared rate limits and session/cache invalidation.
Technical evidence: `docs/superpowers/evidence/2026-09-05-housekeeping-rank-convergence.md`.
---
## Nederlands
Deze PR levert de gecombineerde Housekeeping-preview met zes domeinen op `/ase-next`. Tijdens de validatie blijven `/admin` en `/mod` beschikbaar. De eerdere branches zijn samengevoegd tot één implementatie en één reviewtraject.
### Gedrag na deze wijziging
- Gedeelde routing, rechten, opdrachten, zoeken, inbox, widgets, voorkeuren, recent werk, auditcontracten en productie-adapters voor de zes domeinen.
- Aparte workflows voor Artikelen, Evenementen en Polls met begrensde queries, getypeerde formulieren, beschermde verwijderacties, UTC-planning en transactionele consistentie.
- Catalog Studio binnen ASE, met inventarisdiagnose, filters, paginering, klonen, opnieuw proberen, vertaalopties en geauditeerde voortgang; duurzame procesoverschrijdende historie staat nog open.
- Lokalisatie in de ondersteunde woordenboeken, semantische kleuren en de Theme Builder-route.
- De laatst geïntegreerde upstream is `origin/main` op `bfbf2441`, inclusief Next.js 16.3.4, de self-hosted CI-workflow en verbeterde Studio-/importfoutafhandeling.
### Rankconsistentie en herstel
Een oude herstelreferentie kon voorheen een verouderde rank opnieuw toepassen. Herstel leest nu de actuele gecommitte rank onder een lock op de gebruikersrij. Ranktoewijzing commit eerst de databasewijziging en een auditintentie; tijdens verzending blijft de gebruikersrij gelockt totdat het transport is afgerond. Toewijzing en verwijdering locken eerst de geconfigureerde rank.
Dit geldt voor System, People, het oude commandocentrum en de gebruikerseditor, de gebruikersacties-API, oude rankverwijdering, administratieve gebruikersaanmaak en rankupgrades in de shop. Shopaankopen vergelijken de actuele gelockte rank, zodat een nieuwere stafpromotie niet wordt overschreven. Een mislukte synchronisatie behoudt de gecommitte aankoop en een herstelreferentie.
Een ontbrekende rank wordt onderscheiden van SQL-afhankelijkheidsfouten. Verwijdering van de gebruiker na de commit levert een geaudit achterhaald resultaat op. Gedeeltelijke resultaten tonen herstelreferenties; een fout in alleen de voltooiingsaudit behoudt de geslaagde verzendstatus.
De onafhankelijke gerichte review meldt geen resterende Important- of Critical-bevindingen. De eerdere I-6-blokkade voor CMS-consistentie is opgelost.
### Verificatie
- CI-controle geslaagd op `866f3881` ([run 1244](https://gitlab.epicnabbo.nl/remco/EpicNext-Cms/actions/runs/1244)); deployment en E2E worden voor deze PR bewust overgeslagen.
- Volledige suite: **280 bestanden geslaagd, 3 overgeslagen; 1.861 tests geslaagd, 5 overgeslagen**; dekkingsdrempels gehaald.
- Gerichte rank-/legacy-/shop-/System-/People-regressies: **94 geslaagd**.
- TypeScript, canonieke Knip en Biome voor alle 13 gewijzigde bron-/testbestanden geslaagd.
- Migratiematrix: **138/138** historische regels geldig; runtime ontdekt/gemapt/geverifieerd **138/138/138**, met 2 bewuste verwijderingen.
- Productiebuild: **245 pagina's gegenereerd**.
- Lint op de projectbronnen zonder formattering geslaagd, met één bestaande Studio-waarschuwing. De volledige lokale Windows-checkout bevat ook niet-geversioneerde brainstorm-HTML en CRLF/LF-verschillen; deze lokale bestanden maken geen deel uit van de PR.
### Reviewgrens
De PR blijft **draft**. Er wordt geen deployment of productiecutover gevraagd. TCP RCON bevestigt socketverzending, niet verwerking door de emulator; end-to-end-bevestiging vereist emulatorondersteuning. Tests dekken locking-SQL en gecontroleerde transactievolgorde, geen echte MariaDB-racetest met twee verbindingen of acceptatietest op de productie-emulator. Productie hoort de bestaande `REDIS_URL`-configuratie te gebruiken voor gedeelde rate limits en sessie-/cache-invalidatie.
Technische onderbouwing: `docs/superpowers/evidence/2026-09-05-housekeeping-rank-convergence.md`.
### Local integration checkpoint — 2026-09-05
Upstream `origin/main` is already integrated; `origin/dev` does not exist. Read-only local probes returned `ECONNREFUSED` for both MariaDB and RCON; Redis is not configured and the preview flag is off. Installed the Chromium revision required by the existing Playwright dependency. The smoke run has 1 pass (HTTP health reachability) and 1 failure (homepage navigation timeout, with database connection failures in the server logs, including `theme_scopes`). This is not an authenticated ASE acceptance result. Integration validation is blocked pending an available test database/emulator and an authorized test account. No database writes, preview activation, or deployment were performed.
### Lokale integratiecontrole — 2026-09-05
Upstream `origin/main` is al geïntegreerd; `origin/dev` bestaat niet. Alleen-lezen controles geven `ECONNREFUSED` voor MariaDB en RCON; Redis is niet ingesteld en de preview staat uit. De door Playwright vereiste Chromium-versie is geïnstalleerd. De smoke-run heeft 1 geslaagde test (HTTP-health bereikbaar) en 1 mislukte test (timeout bij homepage-navigatie, met databaseverbindingsfouten in de serverlogs, waaronder `theme_scopes`). Dit is geen aangemelde ASE-acceptatietest. Integratievalidatie wacht op een beschikbare testdatabase/emulator en een bevoegd testaccount. Geen databasewijzigingen, preview-activering of deployment uitgevoerd.
## Backend integrity — 555bc75f
### English
Preserves normalized operator reasons in Content, Economy and Hotel production audit records. Hotel now reports successful external execution with failed completion auditing as partial (external completed, audit unavailable), without falsely recording RCON failure. Includes service-to-adapter and Hotel-command regressions. Local verification: 1,877 tests passed, 5 skipped; TypeScript passed; changed-file Biome passed; scoped independent review found no Critical/Important issues. The complete backend audit remains open, including commerce concurrency and operation-by-operation parity. This is not deployment or live acceptance evidence.
### Nederlands
Behoudt genormaliseerde operatorredenen in de productie-audit van Content, Economy en Hotel. Hotel meldt geslaagde externe uitvoering met mislukte voltooiingsaudit als gedeeltelijk (extern voltooid, audit niet beschikbaar), zonder onterecht RCON-falen te registreren. Regressies testen de service-adapterketen en Hotel-opdrachten. Lokale verificatie: 1.877 tests geslaagd, 5 overgeslagen; TypeScript en Biome op gewijzigde bestanden geslaagd; onafhankelijke gerichte review zonder Critical/Important-bevindingen. De volledige backendcontrole blijft open, inclusief gelijktijdige commercebewerkingen en functiepariteit per operatie. Dit is geen deployment of live-acceptatiebewijs.
## Commerce state editing — 4b88c695
### English
ASE and legacy marketplace cancellation now lock the listing inside a transaction before checking state. Legacy staff activity is written in the same transaction. ASE and legacy voucher updates lock current usage and reject a lower cap; missing legacy voucher edits no longer report success. Added 14 regressions using real Drizzle SQL generation and controlled database responses. Full pre-push suite: 1,891 passed, 5 skipped; TypeScript, Knip, changed-file Biome and route matrix checks passed. Scoped review found no Critical/Important regressions. Open findings and verification boundaries: `docs/superpowers/evidence/2026-09-05-housekeeping-backend-review.md`. Public voucher redemption/award atomicity and complete operation-level backend parity remain open. Draft retained; no deployment.
### Nederlands
ASE en oude marketplace-annulering locken de aanbieding binnen een transactie voordat de status wordt gecontroleerd. Oude stafactiviteit wordt in dezelfde transactie geschreven. ASE en oude voucherwijzigingen locken het actuele gebruik en weigeren een lager maximum; ontbrekende vouchers worden niet langer als geslaagde wijziging gemeld. Er zijn 14 regressies toegevoegd met echte Drizzle-SQL-generatie en gecontroleerde database-antwoorden. Volledige pre-push-suite: 1.891 geslaagd, 5 overgeslagen; TypeScript, Knip, Biome op gewijzigde bestanden en routematrix geslaagd. Gerichte review zonder Critical/Important-regressies. Open bevindingen en verificatiegrenzen: `docs/superpowers/evidence/2026-09-05-housekeeping-backend-review.md`. Atomiciteit van publieke voucherinwisseling/beloning en volledige backendpariteit per operatie blijven open. PR blijft draft; geen deployment.
## Voucher reservation — 8e54cdbc
### English
Public voucher redemption now atomically locks eligibility and duplicate claims, records usage, updates the cap counter/expiration and persists an audit intent before reward dispatch. Reservation or commit-acknowledgment errors prevent dispatch. False/thrown delivery retains the claim and returns a correlated staff reference; completion-audit failure does not falsely report failed delivery. This supersedes the earlier open finding about non-atomic voucher reservation. Existing currency transport is unchanged: there is no exactly-once emulator guarantee or automatic replay/refund for uncertain awards. Evidence: `docs/superpowers/evidence/2026-09-05-voucher-reservation.md`. Verification: 22 focused voucher tests; 1,913 full-suite tests passed, 5 skipped; TypeScript, Knip and changed-file Biome passed. Scoped read-only review found no Critical/Important implementation defects. Full backend parity review remains open. Draft retained; no deployment or live MariaDB race claim.
### Nederlands
Publieke voucherinwisseling lockt nu geldigheid en eerdere claims atomair, registreert gebruik, werkt teller/vervaldatum bij en bewaart een auditintentie vóór verzending van de beloning. Reserveringsfouten of een onzekere commitbevestiging blokkeren verzending. Een mislukte/onbevestigde verzending behoudt de claim en geeft een gecorreleerde stafreferentie; een mislukte voltooiingsaudit meldt niet onterecht dat de verzending mislukte. Dit vervangt de eerdere open bevinding over niet-atomaire voucherreservering. Het valutatransport is ongewijzigd: geen exactly-once-emulatorgarantie of automatische herhaling/terugbetaling van onzekere beloningen. Onderbouwing: `docs/superpowers/evidence/2026-09-05-voucher-reservation.md`. Verificatie: 22 gerichte vouchertests; 1.913 tests geslaagd, 5 overgeslagen; TypeScript, Knip en Biome op gewijzigde bestanden geslaagd. Gerichte read-only review zonder Critical/Important-implementatiefouten. Volledige backendpariteitscontrole blijft open. PR blijft draft; geen deployment of claim van een live MariaDB-racetest.
### Functional completion status — 2026-09-05
The six-domain code comparison found unresolved backend and workflow gaps. Route registration and the 138-row matrix are structural checks, not functional completion. Theme Builder scope/value operations, soundtrack file upload, complete investigative/edit projections, durable Studio history and full import finalization remain open. Confirmed integrity defects include legacy room/radio validation bypasses, moderation target authority, configuration transaction/audit gaps and false-success outcomes.
Implementation continues on this single branch. Room action convergence and concurrency regressions are in progress, followed by moderation/access integrity and remaining parity tasks. Existing /admin and /mod remain available; no cutover or deployment. CI aggregate success was verified for 8e54cdbc; service-backed acceptance and full UI completion are not claimed.
### Functionele voltooiingsstatus — 2026-09-05
De codevergelijking van de zes domeinen toont nog open backend- en workflowtekorten. Routeregistratie en de matrix met 138 regels zijn structurele controles, geen functionele voltooiing. Theme Builder-acties voor scopes/waarden, soundtrack-upload, volledige onderzoeks-/bewerkmodellen, duurzame Studio-historie en volledige importafronding staan nog open. Bevestigde integriteitsproblemen omvatten ontbrekende validatie in oude kamer-/radioacties, autorisatie van moderatiedoelen, transacties/audits bij configuratie en onterecht gemeld succes.
De implementatie gaat door op deze ene branch. Kameracties en regressietests voor gelijktijdigheid zijn in uitvoering, gevolgd door moderatie/toegangsbeveiliging en overige pariteitstaken. Bestaande /admin en /mod blijven beschikbaar; geen omschakeling of deployment. De gecombineerde CI-status van 8e54cdbc is succesvol gecontroleerd; acceptatie met echte diensten en volledige UI-voltooiing worden niet geclaimd.
### Room mutation checkpoint — 9b91880e
Legacy room/item actions now use the canonical Hotel service: strict fields, room-scoped targets, deterministic row locks, atomic bulk deletion and transactional audits. Failed post-commit cache revalidation preserves success with refresh-needed metadata; displaying that warning in the UI is still open. Incorrect automatic room-reload copy was removed. Independent review and one scoped fix review passed. Push hooks: 285 files passed/3 skipped, 1,941 tests passed/5 skipped; typecheck, scoped Biome and Knip passed. Live MariaDB/RCON acceptance is not claimed. Next implementation: moderation target authority.
### Controlepunt kamermutaties — 9b91880e
Oude kamer-/meubelacties gebruiken nu de canonieke Hotel-service: strikte velden, kamergebonden doelen, deterministische rijlocks, atomische bulkverwijdering en transactionele audits. Een mislukte cacheverversing na commit blijft een geslaagde mutatie met metadata voor handmatig vernieuwen; zichtbare UI-waarschuwing staat nog open. Onjuiste tekst over automatisch herladen is verwijderd. Onafhankelijke review en gerichte hercontrole geslaagd. Pushcontroles: 285 bestanden geslaagd/3 overgeslagen, 1.941 tests geslaagd/5 overgeslagen; typecheck, gerichte Biome en Knip geslaagd. Geen claim over live MariaDB/RCON-acceptatie. Volgende implementatie: autorisatie van moderatiedoelen.
## Moderation authority checkpoint — 845666cf
### English
Unified canonical and legacy user-targeted moderation guards: missing/protected targets are rejected, CFH sanctions are bound to the ticket's reported user and actionable state, and IP/machine/super bans validate real target identifiers. User locks cover bounded transport dispatch. Known completed delivery remains a partial result if finalization fails; staff activity writes run only after releasing the authority transaction to avoid pool starvation. Independent task review and scoped fix review are clean.
Verification: focused fix suite 112/112, typecheck and scoped Biome passed. Full pre-push verification passed: 286 test files and 1,975 tests, with 3 files/5 tests skipped; coverage thresholds passed. Remote CI check passed for 845666cf (run 1249/job 2540); deploy and E2E were skipped. No live DB/RCON contention test, emulator acknowledgment, deployment or cutover is claimed. Next: radio settings validation, complete legacy form support and cache freshness/invalidation. The expanded plan also tracks remaining radio CRUD/credential delivery and support-state/legacy-action gaps.
### Nederlands
De doelwitcontrole voor canonieke en bestaande moderatieacties is samengebracht: ontbrekende of beschermde gebruikers worden geweigerd, CFH-sancties zijn gekoppeld aan de gemelde gebruiker en een behandelbare ticketstatus, en IP-/machine-/superbans gebruiken gevalideerde doelgegevens. De gebruikerslock blijft actief tijdens de begrensde transportaanroep. Bekende voltooide verzending blijft een gedeeltelijk resultaat als de afronding mislukt; personeelsactiviteiten worden pas na het vrijgeven van de transactie opgeslagen om uitputting van de verbindingspool te voorkomen. De onafhankelijke taakreview en gerichte herbeoordeling zijn afgerond zonder open bevindingen.
Verificatie: 112/112 gerichte tests, typecheck en gerichte Biome-controle geslaagd. De volledige pre-push-controle is geslaagd: 286 testbestanden en 1.975 tests, met 3 bestanden/5 tests overgeslagen; de dekkingsdrempels zijn gehaald. Externe CI-check geslaagd voor 845666cf (run 1249/job 2540); deployment en E2E zijn overgeslagen. Geen claim van live DB/RCON-concurrentietests, emulatorbevestiging, deployment of omschakeling. Volgende stap: radio-instellingen, volledige ondersteuning van bestaande formulieren en cacheverversing. Het uitgebreide plan omvat ook de resterende radio-CRUD/sleuteluitgifte en supportstatus/bestaande acties.
## origin/main synchronization and radio-cache checkpoint — 874cb2be
### English
Merged origin/main through 775d14f8 into the dedicated HK branch. The integration preserves upstream Catalog Studio Git export, inspection/review, advisory source preflight, streamed errors, asset validation, furniture ID reservation/remapping, revision preservation and conversion recovery together with HK cancellation/completion/reset contracts. Five conflicts were resolved semantically. Independent review found cancellation could still write after waiting for the ID reservation queue; e7549bbb rechecks immediately before INSERT and propagates AbortError. Scoped re-review is clean.
Radio settings/cache Task 2 is complete and reviewed: legacy Promise<void> forms delegate to transactional Hotel operations; all 102 curated settings fit the bounded 500-entry batch; duplicate/invalid entries fail before writes; values are redacted; invalidation happens after commit; stale in-flight reads cannot repopulate cache; sanitized success/partial/error notices are displayed. Exact case-sensitive radio_/auto_dj_ prefixes retain custom suffixes and reject uppercase variants.
Verification: production build generated 249 pages with a temporary process-only AUTH_SECRET; pre-push typecheck and coverage suite passed (304 files/2,076 tests; 3 files/5 tests skipped). No live DB, Redis, RCON, browser workflow, external import, deployment or cutover is claimed. Task 14 end-to-end Studio orchestration/finalization remains open.
### Nederlands
Origin/main tot en met 775d14f8 is samengevoegd in de speciale HK-branch. De integratie behoudt upstream Catalog Studio Git-export, inspectie/review, adviserende broncontrole, gestreamde fouten, assetvalidatie, reservering/hernummering van furniture-ID's, revisiebehoud en conversieherstel samen met HK-contracten voor annulering, voltooiing en reset. Vijf conflicten zijn inhoudelijk opgelost. De onafhankelijke review vond dat annulering na wachten in de ID-reserveringswachtrij nog kon schrijven; e7549bbb controleert direct vóór INSERT en geeft AbortError door. De gerichte herbeoordeling is schoon.
Radio-instellingen/cache Task 2 is voltooid en beoordeeld: bestaande Promise<void>-formulieren gebruiken transactionele Hotel-operaties; alle 102 instellingen passen in de begrensde batch van 500; dubbele/ongeldige waarden stoppen vóór writes; waarden worden geredigeerd; invalidatie gebeurt na commit; verouderde lopende reads vullen de cache niet opnieuw; opgeschoonde succes-/gedeeltelijke-/foutmeldingen worden getoond. Exact hoofdlettergevoelige radio_/auto_dj_-prefixen behouden aangepaste suffixen en weigeren hoofdlettervarianten.
Verificatie: de productiebuild genereerde 249 pagina's met een tijdelijk procesgebonden AUTH_SECRET; pre-push typecheck en dekkingssuite zijn geslaagd (304 bestanden/2.076 tests; 3 bestanden/5 tests overgeslagen). Geen claim van live DB, Redis, RCON, browserworkflow, externe import, deployment of omschakeling. Task 14 end-to-end Studio-orkestratie/finalisatie blijft open.
Remote CI update: check passed for 874cb2be (run 1268/job 2597); deploy and E2E were skipped.
Externe CI-update: check geslaagd voor 874cb2be (run 1268/job 2597); deployment en E2E zijn overgeslagen.
Simo
changed title from WIP: Rebuild housekeeping routing foundation to WIP: Unified Housekeeping rebuild / Gecombineerde Housekeeping-herbouw2026-08-31 20:40:15 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
English
This PR provides the unified six-domain Housekeeping preview at
/ase-next, retaining/adminand/modduring validation. It consolidates the earlier branches into one implementation and review path.Resulting behavior
origin/mainatbfbf2441, including Next.js 16.3.4, the self-hosted CI workflow, and Studio/import resilience changes.Rank consistency and recovery
An old recovery reference previously could replay an obsolete rank. Recovery now reads the current committed database rank under a user-row lock. Rank assignment commits database state and an audit intent before delivery; the delivery transaction holds the user lock until the transport settles. Assignments and deletion acquire the configured-rank lock first.
The coordinated paths include System, People, the legacy command centre and user editor, the user-actions API, legacy rank deletion, administrative user creation, and shop rank upgrades. Shop purchases compare the locked current rank so a newer staff promotion cannot be overwritten. Failed synchronization preserves the committed purchase and a recovery reference.
Missing ranks and SQL dependency failures are distinguished. Deletion of the target after commit produces an audited superseded result. Partial results expose recovery references; an audit-only failure retains the successful delivery status.
The scoped independent review reports no remaining Important or Critical findings. The previous I-6 CMS consistency blocker is addressed.
Verification
Remote CI check passed on
866f3881(run 1244); deploy and E2E jobs are intentionally skipped for this PR.Full suite: 280 files passed, 3 skipped; 1,861 tests passed, 5 skipped; coverage thresholds passed.
Focused rank/legacy/shop/System/People regressions: 94 passed.
TypeScript, canonical Knip, and Biome on all 13 changed source/test files passed.
Migration matrix: 138/138 historical rows valid; runtime discovered/mapped/verified 138/138/138, with 2 intentional removals.
Production build: 245 pages generated.
Project-source lint without formatting passed with one existing Studio warning. The full local Windows checkout also includes untracked brainstorm HTML and CRLF/LF differences; those local artifacts are not included in this PR.
Review boundary
The PR remains draft. No deployment or production cutover is requested. TCP RCON success confirms socket dispatch, not emulator processing; end-to-end acknowledgment requires emulator support. Tests cover locking SQL and controlled transaction ordering, not a live two-connection MariaDB race or production emulator acceptance. Production should provide the existing
REDIS_URLconfiguration for shared rate limits and session/cache invalidation.Technical evidence:
docs/superpowers/evidence/2026-09-05-housekeeping-rank-convergence.md.Nederlands
Deze PR levert de gecombineerde Housekeeping-preview met zes domeinen op
/ase-next. Tijdens de validatie blijven/adminen/modbeschikbaar. De eerdere branches zijn samengevoegd tot één implementatie en één reviewtraject.Gedrag na deze wijziging
origin/mainopbfbf2441, inclusief Next.js 16.3.4, de self-hosted CI-workflow en verbeterde Studio-/importfoutafhandeling.Rankconsistentie en herstel
Een oude herstelreferentie kon voorheen een verouderde rank opnieuw toepassen. Herstel leest nu de actuele gecommitte rank onder een lock op de gebruikersrij. Ranktoewijzing commit eerst de databasewijziging en een auditintentie; tijdens verzending blijft de gebruikersrij gelockt totdat het transport is afgerond. Toewijzing en verwijdering locken eerst de geconfigureerde rank.
Dit geldt voor System, People, het oude commandocentrum en de gebruikerseditor, de gebruikersacties-API, oude rankverwijdering, administratieve gebruikersaanmaak en rankupgrades in de shop. Shopaankopen vergelijken de actuele gelockte rank, zodat een nieuwere stafpromotie niet wordt overschreven. Een mislukte synchronisatie behoudt de gecommitte aankoop en een herstelreferentie.
Een ontbrekende rank wordt onderscheiden van SQL-afhankelijkheidsfouten. Verwijdering van de gebruiker na de commit levert een geaudit achterhaald resultaat op. Gedeeltelijke resultaten tonen herstelreferenties; een fout in alleen de voltooiingsaudit behoudt de geslaagde verzendstatus.
De onafhankelijke gerichte review meldt geen resterende Important- of Critical-bevindingen. De eerdere I-6-blokkade voor CMS-consistentie is opgelost.
Verificatie
CI-controle geslaagd op
866f3881(run 1244); deployment en E2E worden voor deze PR bewust overgeslagen.Volledige suite: 280 bestanden geslaagd, 3 overgeslagen; 1.861 tests geslaagd, 5 overgeslagen; dekkingsdrempels gehaald.
Gerichte rank-/legacy-/shop-/System-/People-regressies: 94 geslaagd.
TypeScript, canonieke Knip en Biome voor alle 13 gewijzigde bron-/testbestanden geslaagd.
Migratiematrix: 138/138 historische regels geldig; runtime ontdekt/gemapt/geverifieerd 138/138/138, met 2 bewuste verwijderingen.
Productiebuild: 245 pagina's gegenereerd.
Lint op de projectbronnen zonder formattering geslaagd, met één bestaande Studio-waarschuwing. De volledige lokale Windows-checkout bevat ook niet-geversioneerde brainstorm-HTML en CRLF/LF-verschillen; deze lokale bestanden maken geen deel uit van de PR.
Reviewgrens
De PR blijft draft. Er wordt geen deployment of productiecutover gevraagd. TCP RCON bevestigt socketverzending, niet verwerking door de emulator; end-to-end-bevestiging vereist emulatorondersteuning. Tests dekken locking-SQL en gecontroleerde transactievolgorde, geen echte MariaDB-racetest met twee verbindingen of acceptatietest op de productie-emulator. Productie hoort de bestaande
REDIS_URL-configuratie te gebruiken voor gedeelde rate limits en sessie-/cache-invalidatie.Technische onderbouwing:
docs/superpowers/evidence/2026-09-05-housekeeping-rank-convergence.md.Local integration checkpoint — 2026-09-05
Upstream
origin/mainis already integrated;origin/devdoes not exist. Read-only local probes returnedECONNREFUSEDfor both MariaDB and RCON; Redis is not configured and the preview flag is off. Installed the Chromium revision required by the existing Playwright dependency. The smoke run has 1 pass (HTTP health reachability) and 1 failure (homepage navigation timeout, with database connection failures in the server logs, includingtheme_scopes). This is not an authenticated ASE acceptance result. Integration validation is blocked pending an available test database/emulator and an authorized test account. No database writes, preview activation, or deployment were performed.Lokale integratiecontrole — 2026-09-05
Upstream
origin/mainis al geïntegreerd;origin/devbestaat niet. Alleen-lezen controles gevenECONNREFUSEDvoor MariaDB en RCON; Redis is niet ingesteld en de preview staat uit. De door Playwright vereiste Chromium-versie is geïnstalleerd. De smoke-run heeft 1 geslaagde test (HTTP-health bereikbaar) en 1 mislukte test (timeout bij homepage-navigatie, met databaseverbindingsfouten in de serverlogs, waarondertheme_scopes). Dit is geen aangemelde ASE-acceptatietest. Integratievalidatie wacht op een beschikbare testdatabase/emulator en een bevoegd testaccount. Geen databasewijzigingen, preview-activering of deployment uitgevoerd.Backend integrity —
555bc75fEnglish
Preserves normalized operator reasons in Content, Economy and Hotel production audit records. Hotel now reports successful external execution with failed completion auditing as partial (external completed, audit unavailable), without falsely recording RCON failure. Includes service-to-adapter and Hotel-command regressions. Local verification: 1,877 tests passed, 5 skipped; TypeScript passed; changed-file Biome passed; scoped independent review found no Critical/Important issues. The complete backend audit remains open, including commerce concurrency and operation-by-operation parity. This is not deployment or live acceptance evidence.
Nederlands
Behoudt genormaliseerde operatorredenen in de productie-audit van Content, Economy en Hotel. Hotel meldt geslaagde externe uitvoering met mislukte voltooiingsaudit als gedeeltelijk (extern voltooid, audit niet beschikbaar), zonder onterecht RCON-falen te registreren. Regressies testen de service-adapterketen en Hotel-opdrachten. Lokale verificatie: 1.877 tests geslaagd, 5 overgeslagen; TypeScript en Biome op gewijzigde bestanden geslaagd; onafhankelijke gerichte review zonder Critical/Important-bevindingen. De volledige backendcontrole blijft open, inclusief gelijktijdige commercebewerkingen en functiepariteit per operatie. Dit is geen deployment of live-acceptatiebewijs.
Commerce state editing —
4b88c695English
ASE and legacy marketplace cancellation now lock the listing inside a transaction before checking state. Legacy staff activity is written in the same transaction. ASE and legacy voucher updates lock current usage and reject a lower cap; missing legacy voucher edits no longer report success. Added 14 regressions using real Drizzle SQL generation and controlled database responses. Full pre-push suite: 1,891 passed, 5 skipped; TypeScript, Knip, changed-file Biome and route matrix checks passed. Scoped review found no Critical/Important regressions. Open findings and verification boundaries:
docs/superpowers/evidence/2026-09-05-housekeeping-backend-review.md. Public voucher redemption/award atomicity and complete operation-level backend parity remain open. Draft retained; no deployment.Nederlands
ASE en oude marketplace-annulering locken de aanbieding binnen een transactie voordat de status wordt gecontroleerd. Oude stafactiviteit wordt in dezelfde transactie geschreven. ASE en oude voucherwijzigingen locken het actuele gebruik en weigeren een lager maximum; ontbrekende vouchers worden niet langer als geslaagde wijziging gemeld. Er zijn 14 regressies toegevoegd met echte Drizzle-SQL-generatie en gecontroleerde database-antwoorden. Volledige pre-push-suite: 1.891 geslaagd, 5 overgeslagen; TypeScript, Knip, Biome op gewijzigde bestanden en routematrix geslaagd. Gerichte review zonder Critical/Important-regressies. Open bevindingen en verificatiegrenzen:
docs/superpowers/evidence/2026-09-05-housekeeping-backend-review.md. Atomiciteit van publieke voucherinwisseling/beloning en volledige backendpariteit per operatie blijven open. PR blijft draft; geen deployment.Voucher reservation —
8e54cdbcEnglish
Public voucher redemption now atomically locks eligibility and duplicate claims, records usage, updates the cap counter/expiration and persists an audit intent before reward dispatch. Reservation or commit-acknowledgment errors prevent dispatch. False/thrown delivery retains the claim and returns a correlated staff reference; completion-audit failure does not falsely report failed delivery. This supersedes the earlier open finding about non-atomic voucher reservation. Existing currency transport is unchanged: there is no exactly-once emulator guarantee or automatic replay/refund for uncertain awards. Evidence:
docs/superpowers/evidence/2026-09-05-voucher-reservation.md. Verification: 22 focused voucher tests; 1,913 full-suite tests passed, 5 skipped; TypeScript, Knip and changed-file Biome passed. Scoped read-only review found no Critical/Important implementation defects. Full backend parity review remains open. Draft retained; no deployment or live MariaDB race claim.Nederlands
Publieke voucherinwisseling lockt nu geldigheid en eerdere claims atomair, registreert gebruik, werkt teller/vervaldatum bij en bewaart een auditintentie vóór verzending van de beloning. Reserveringsfouten of een onzekere commitbevestiging blokkeren verzending. Een mislukte/onbevestigde verzending behoudt de claim en geeft een gecorreleerde stafreferentie; een mislukte voltooiingsaudit meldt niet onterecht dat de verzending mislukte. Dit vervangt de eerdere open bevinding over niet-atomaire voucherreservering. Het valutatransport is ongewijzigd: geen exactly-once-emulatorgarantie of automatische herhaling/terugbetaling van onzekere beloningen. Onderbouwing:
docs/superpowers/evidence/2026-09-05-voucher-reservation.md. Verificatie: 22 gerichte vouchertests; 1.913 tests geslaagd, 5 overgeslagen; TypeScript, Knip en Biome op gewijzigde bestanden geslaagd. Gerichte read-only review zonder Critical/Important-implementatiefouten. Volledige backendpariteitscontrole blijft open. PR blijft draft; geen deployment of claim van een live MariaDB-racetest.Functional completion status — 2026-09-05
The six-domain code comparison found unresolved backend and workflow gaps. Route registration and the 138-row matrix are structural checks, not functional completion. Theme Builder scope/value operations, soundtrack file upload, complete investigative/edit projections, durable Studio history and full import finalization remain open. Confirmed integrity defects include legacy room/radio validation bypasses, moderation target authority, configuration transaction/audit gaps and false-success outcomes.
Implementation continues on this single branch. Room action convergence and concurrency regressions are in progress, followed by moderation/access integrity and remaining parity tasks. Existing /admin and /mod remain available; no cutover or deployment. CI aggregate success was verified for 8e54cdbc; service-backed acceptance and full UI completion are not claimed.
Functionele voltooiingsstatus — 2026-09-05
De codevergelijking van de zes domeinen toont nog open backend- en workflowtekorten. Routeregistratie en de matrix met 138 regels zijn structurele controles, geen functionele voltooiing. Theme Builder-acties voor scopes/waarden, soundtrack-upload, volledige onderzoeks-/bewerkmodellen, duurzame Studio-historie en volledige importafronding staan nog open. Bevestigde integriteitsproblemen omvatten ontbrekende validatie in oude kamer-/radioacties, autorisatie van moderatiedoelen, transacties/audits bij configuratie en onterecht gemeld succes.
De implementatie gaat door op deze ene branch. Kameracties en regressietests voor gelijktijdigheid zijn in uitvoering, gevolgd door moderatie/toegangsbeveiliging en overige pariteitstaken. Bestaande /admin en /mod blijven beschikbaar; geen omschakeling of deployment. De gecombineerde CI-status van
8e54cdbcis succesvol gecontroleerd; acceptatie met echte diensten en volledige UI-voltooiing worden niet geclaimd.Room mutation checkpoint —
9b91880eLegacy room/item actions now use the canonical Hotel service: strict fields, room-scoped targets, deterministic row locks, atomic bulk deletion and transactional audits. Failed post-commit cache revalidation preserves success with refresh-needed metadata; displaying that warning in the UI is still open. Incorrect automatic room-reload copy was removed. Independent review and one scoped fix review passed. Push hooks: 285 files passed/3 skipped, 1,941 tests passed/5 skipped; typecheck, scoped Biome and Knip passed. Live MariaDB/RCON acceptance is not claimed. Next implementation: moderation target authority.
Controlepunt kamermutaties —
9b91880eOude kamer-/meubelacties gebruiken nu de canonieke Hotel-service: strikte velden, kamergebonden doelen, deterministische rijlocks, atomische bulkverwijdering en transactionele audits. Een mislukte cacheverversing na commit blijft een geslaagde mutatie met metadata voor handmatig vernieuwen; zichtbare UI-waarschuwing staat nog open. Onjuiste tekst over automatisch herladen is verwijderd. Onafhankelijke review en gerichte hercontrole geslaagd. Pushcontroles: 285 bestanden geslaagd/3 overgeslagen, 1.941 tests geslaagd/5 overgeslagen; typecheck, gerichte Biome en Knip geslaagd. Geen claim over live MariaDB/RCON-acceptatie. Volgende implementatie: autorisatie van moderatiedoelen.
Moderation authority checkpoint —
845666cfEnglish
Unified canonical and legacy user-targeted moderation guards: missing/protected targets are rejected, CFH sanctions are bound to the ticket's reported user and actionable state, and IP/machine/super bans validate real target identifiers. User locks cover bounded transport dispatch. Known completed delivery remains a partial result if finalization fails; staff activity writes run only after releasing the authority transaction to avoid pool starvation. Independent task review and scoped fix review are clean.
Verification: focused fix suite 112/112, typecheck and scoped Biome passed. Full pre-push verification passed: 286 test files and 1,975 tests, with 3 files/5 tests skipped; coverage thresholds passed. Remote CI check passed for
845666cf(run 1249/job 2540); deploy and E2E were skipped. No live DB/RCON contention test, emulator acknowledgment, deployment or cutover is claimed. Next: radio settings validation, complete legacy form support and cache freshness/invalidation. The expanded plan also tracks remaining radio CRUD/credential delivery and support-state/legacy-action gaps.Nederlands
De doelwitcontrole voor canonieke en bestaande moderatieacties is samengebracht: ontbrekende of beschermde gebruikers worden geweigerd, CFH-sancties zijn gekoppeld aan de gemelde gebruiker en een behandelbare ticketstatus, en IP-/machine-/superbans gebruiken gevalideerde doelgegevens. De gebruikerslock blijft actief tijdens de begrensde transportaanroep. Bekende voltooide verzending blijft een gedeeltelijk resultaat als de afronding mislukt; personeelsactiviteiten worden pas na het vrijgeven van de transactie opgeslagen om uitputting van de verbindingspool te voorkomen. De onafhankelijke taakreview en gerichte herbeoordeling zijn afgerond zonder open bevindingen.
Verificatie: 112/112 gerichte tests, typecheck en gerichte Biome-controle geslaagd. De volledige pre-push-controle is geslaagd: 286 testbestanden en 1.975 tests, met 3 bestanden/5 tests overgeslagen; de dekkingsdrempels zijn gehaald. Externe CI-check geslaagd voor
845666cf(run 1249/job 2540); deployment en E2E zijn overgeslagen. Geen claim van live DB/RCON-concurrentietests, emulatorbevestiging, deployment of omschakeling. Volgende stap: radio-instellingen, volledige ondersteuning van bestaande formulieren en cacheverversing. Het uitgebreide plan omvat ook de resterende radio-CRUD/sleuteluitgifte en supportstatus/bestaande acties.origin/main synchronization and radio-cache checkpoint —
874cb2beEnglish
Merged origin/main through
775d14f8into the dedicated HK branch. The integration preserves upstream Catalog Studio Git export, inspection/review, advisory source preflight, streamed errors, asset validation, furniture ID reservation/remapping, revision preservation and conversion recovery together with HK cancellation/completion/reset contracts. Five conflicts were resolved semantically. Independent review found cancellation could still write after waiting for the ID reservation queue;e7549bbbrechecks immediately before INSERT and propagates AbortError. Scoped re-review is clean.Radio settings/cache Task 2 is complete and reviewed: legacy Promise forms delegate to transactional Hotel operations; all 102 curated settings fit the bounded 500-entry batch; duplicate/invalid entries fail before writes; values are redacted; invalidation happens after commit; stale in-flight reads cannot repopulate cache; sanitized success/partial/error notices are displayed. Exact case-sensitive radio_/auto_dj_ prefixes retain custom suffixes and reject uppercase variants.
Verification: production build generated 249 pages with a temporary process-only AUTH_SECRET; pre-push typecheck and coverage suite passed (304 files/2,076 tests; 3 files/5 tests skipped). No live DB, Redis, RCON, browser workflow, external import, deployment or cutover is claimed. Task 14 end-to-end Studio orchestration/finalization remains open.
Nederlands
Origin/main tot en met
775d14f8is samengevoegd in de speciale HK-branch. De integratie behoudt upstream Catalog Studio Git-export, inspectie/review, adviserende broncontrole, gestreamde fouten, assetvalidatie, reservering/hernummering van furniture-ID's, revisiebehoud en conversieherstel samen met HK-contracten voor annulering, voltooiing en reset. Vijf conflicten zijn inhoudelijk opgelost. De onafhankelijke review vond dat annulering na wachten in de ID-reserveringswachtrij nog kon schrijven;e7549bbbcontroleert direct vóór INSERT en geeft AbortError door. De gerichte herbeoordeling is schoon.Radio-instellingen/cache Task 2 is voltooid en beoordeeld: bestaande Promise-formulieren gebruiken transactionele Hotel-operaties; alle 102 instellingen passen in de begrensde batch van 500; dubbele/ongeldige waarden stoppen vóór writes; waarden worden geredigeerd; invalidatie gebeurt na commit; verouderde lopende reads vullen de cache niet opnieuw; opgeschoonde succes-/gedeeltelijke-/foutmeldingen worden getoond. Exact hoofdlettergevoelige radio_/auto_dj_-prefixen behouden aangepaste suffixen en weigeren hoofdlettervarianten.
Verificatie: de productiebuild genereerde 249 pagina's met een tijdelijk procesgebonden AUTH_SECRET; pre-push typecheck en dekkingssuite zijn geslaagd (304 bestanden/2.076 tests; 3 bestanden/5 tests overgeslagen). Geen claim van live DB, Redis, RCON, browserworkflow, externe import, deployment of omschakeling. Task 14 end-to-end Studio-orkestratie/finalisatie blijft open.
Remote CI update: check passed for
874cb2be(run 1268/job 2597); deploy and E2E were skipped.Externe CI-update: check geslaagd voor
874cb2be(run 1268/job 2597); deployment en E2E zijn overgeslagen.Draft: Rebuild housekeeping routing foundationto WIP: Rebuild housekeeping routing foundationWIP: Rebuild housekeeping routing foundationto WIP: Unified Housekeeping rebuild / Gecombineerde Housekeeping-herbouwPull request closed