Files
EpicNext-Cms/docs/superpowers/evidence/2026-09-05-housekeeping-parity-gaps.md
T
Simo 9b91880e33
CI / check (pull_request) Successful in 1m40s
CI / deploy (pull_request) Skipped
CI / e2e (pull_request) Skipped
docs(housekeeping): track functional parity gaps and execution
2026-09-05 10:50:41 +02:00

4.7 KiB

Housekeeping functional parity audit

Baseline: 8e54cdbc. CI aggregate success verified remotely. This is an open-work inventory, not a completion report.

Hotel / Studio / Operations

Priority Confirmed gap Evidence Execution
P1 Legacy radio editor can write unrelated site setting keys src/actions/admin-radio-extra.ts saveRadioSetting Functional parity Task 2
P1 Legacy room items allow arbitrary fields and wrong-room update/delete src/actions/rooms.ts Task 1
P1 Studio final persistence/readback failure reclassifies successful runner as failed hotel/commands/studio-commands.ts createStudioOperationService Task 3
P1 Hotel radio writes omit runtime cache invalidation hotel/services/mutations-production.ts Task 2
P1 Studio furniture import omits selected source and finalization studio-commands.ts furni branch vs src/app/api/admin/import/furni/route.ts Open orchestration task
P2 Studio command reason is discarded studio-commands.ts / hotel/queries/studio.ts Task 3
P2 Production Studio get/list only reads process memory hotel/queries/studio.ts Open durable repository task
P2 Clone ignores false catalog/items refresh delivery studio-commands.ts consolidate Task 3
P2 Repair ignores nested Nitro failure and error events studio-commands.ts repair-icons branch Task 3
P2 Hotel HAVING filters only final UNION branch hotel/queries/hotel-production.ts Open query task

Also requiring explicit parity review: one-time radio API-key delivery; catalog audit/repair bridge versus a history-only screen; radio CRUD legacy convergence.

Controller confirmed shared site-settings freshness defect: an expired memory cache is returned before attempting a database refresh whenever Redis has no value. Cache invalidation also resets inFlight without protecting against stale in-flight work repopulating the cache. Include regression coverage in the settings task.

Operations replacing legacy dashboard metrics is intentional in migration/operations.ts, not itself missing parity.

Audit coverage: Hotel mutations, Studio service/runner/repository, Hotel query/search/inbox/widgets, legacy room/radio actions, furniture import API; Operations composition and migration contract. Auditors performed read-only code comparison, not service-backed acceptance.

Other domains

Domain Gap Execution
People Ban/moderation/CFH bypass target hierarchy or existence; CFH accepts unrelated user Task 4
People Alert/trade-lock bypass established target guard Task 4
People Commands lose audit reason Task 5
People Missing IP/word-filter delete reports success Task 5
People Missing canonical user creation and individual badge grant/removal Task 7
People User detail omits legacy account/relations/investigation fields Task 12
System Privileged configuration/external operations lack canonical audit Task 6
System Multi-key settings/maintenance writes are non-atomic Task 6
System Unknown permission slugs silently revoke grants; audit outside transaction Task 6
System Rank update accepts missing target and empty/unknown fields Task 6
System Logs fixed to flattened latest 50, no investigation filters/details Task 12
Content Theme Builder operations absent despite verified migration row Task 9
Content CRUD synthetic snapshots/false success for absent records Task 8
Content Prefix settings silently skip invalid keys Task 8
Content Edit query payloads incomplete across banners/prefixes/help/writeables/email Task 8
Economy Missing file-upload soundtrack responsibility Task 11
Economy Catalog bulk-create catches row failures and audits success Task 10
Economy Badge grant race and inconsistent code bounds Task 7
Economy Voucher update omits editable code Task 10
Economy Marketplace/transactions filtering and user identity projections incomplete Task 12
Economy Expired active subscriptions included Task 12
Economy Calendar/rare-values editable/grouped projections incomplete Task 12

Read-only audit coverage included all declared commands and production query routing for Content/Economy, and People/System commands, services, query models and affected legacy entrypoints. Findings are mapped to implementation work; each needs focused regression evidence. Proposed badge slot uniqueness is NOT accepted without model verification: slot semantics may allow multiple unequipped badges.

No domain is declared complete by this document. UI-only omissions remain separately open even when their backend operation already exists.