docs(housekeeping): record main integration checkpoint
This commit is contained in:
1 parent
e7549bbbd2
commit
874cb2beb2
2 files changed
+17
No files matched your search
@@ -6,6 +6,8 @@ Baseline: 8e54cdbc. CI aggregate success verified remotely. This is an open-work
|
||||
|
||||
- Task 1 room/room-furniture legacy convergence: implemented in 184052fb and d0190bc1, independently reviewed, pushed; CI passed. Post-commit refresh warnings are truthful response metadata, but shared UI display remains open.
|
||||
- Task 4 moderation authority and guarded legacy entrypoints: implemented in 8a894617; pool-starvation review finding fixed in 54f0345a with 112 focused tests passing. Independent scoped re-review clean. No live DB/RCON contention or emulator acknowledgment evidence.
|
||||
- Task 2 radio settings/cache: implemented in f24adfcf and compatibility fix 36ac116d. Legacy Promise<void> forms delegate to transactional Hotel operations, support all 102 curated keys within a 500-entry bound, redact values, display sanitized success/partial/error notices, and invalidate the shared cache only after commit. Independent fix re-review clean; cross-process instant freshness is not claimed.
|
||||
- origin/main through 775d14f8 integrated by merge 9b83cdc3. Upstream Catalog Studio Git export, inspection/review, advisory source preflight, streamed errors, asset validation, ID reservation/remapping and conversion recovery were preserved alongside HK cancellation/completion/reset behavior. The cancellation-during-ID-queue defect found in integration review was fixed in e7549bbb and re-reviewed clean. No live import, browser or database acceptance was performed.
|
||||
- All other findings below remain open until their implementation, tests and review are recorded. A baseline finding is retained here for traceability even after its corresponding checkpoint is delivered.
|
||||
|
||||
## Hotel / Studio / Operations
|
||||
@@ -69,3 +71,12 @@ No domain is declared complete by this document. UI-only omissions remain separa
|
||||
Support follow-up confirmed in people/services/support-mutations.ts: ticket, Help Center, template and CFH reads lack FOR UPDATE; ticket-template delete audits success for a missing row; ticket.assign writes a supplied assignee without a user/eligibility lookup. Legacy CFH assign/state/close still write directly in actions/moderation.ts. Functional parity Task17 covers state integrity and active staff-action convergence, preserving separately scoped public ticket flows.
|
||||
|
||||
Acceptance infrastructure check: current e2e/smoke.spec.ts only checks health and homepage rendering; it does not exercise authenticated administration workflows. The supplied docker-compose.yml assumes existing host MariaDB/Redis/emulator services rather than provisioning an isolated test stack. No Docker/MySQL/MariaDB executable was found on the current PATH. These are live-acceptance limitations, not reasons to defer locally testable implementation or to use production data as fixtures.
|
||||
|
||||
## Confirmed presentation gaps for the post-backend pass
|
||||
|
||||
- Content Brand currently exposes theme values as raw JSON and requires manually entered theme IDs (content/pages/brand.tsx). The approved operator product requires the retained visual Theme Builder/preset workflow, not JSON fields as its replacement.
|
||||
- Content, Economy and Hotel generic page frames render raw error message keys and simple title/status lists without visible pagination/filter controls, although query parsing accepts pagination/search. Typed read models alone will not repair these workflows.
|
||||
- Shared Content command parsing silently clamps numbers and truncates text/JSON before submission. Workflow forms must preserve entered values and present validation instead of silently saving a changed input.
|
||||
- Backend-delivered partial outcomes must be presented in the relevant operator forms, including the deferred room refresh warning. The current source checks are not visual or browser acceptance evidence.
|
||||
|
||||
The detailed UI task sequence must use the completed backend contracts and compare each active legacy workflow. This section deliberately does not mark UI parity complete.
|
||||
@@ -72,6 +72,8 @@ Tags, prefixes, help, writeables and email mutations must read/lock actual recor
|
||||
|
||||
Compare migration/content.ts Theme Builder responsibilities with active legacy source. Implement all retained scope/value create/update/delete, duplicate and reset operations plus typed scope/tree/value queries. Reuse existing Theme Builder persistence and validation; transactionally audit real snapshots. Test complete lifecycle, inheritance/duplicate/reset semantics, invalid scope/value, permission denial and rollback. This task does not declare the Theme Builder UI complete.
|
||||
|
||||
Include retained theme update/preset/custom application cache outcomes in this pass: mutation-runtime-external.ts currently calls siteSettings.reload() without awaiting or inspecting it. Consume Task2 invalidation status after committed writes and return truthful partial completion on failure. Preserve existing color contrast/readability behavior and custom store persistence; do not turn a cache failure into an invitation to replay committed theme edits.
|
||||
|
||||
## Task 10: Complete Economy commerce and bulk outcomes
|
||||
|
||||
Restore editable voucher code with duplicate conflict handling and preserved locked use counters; correct migration responsibilities for voucher and rare category/value updates. Catalog bulk-create must validate nonempty bounded input and report per-row committed/failed outcomes honestly, with partial canonical audit whenever only part succeeds. Preserve successful IDs and actionable failure indexes; do not blind-retry successful rows. Fully failed input must not claim success. Test mixed/all failed/all passed batches, refresh failure, audit failure and voucher code conflicts.
|
||||
@@ -94,6 +96,10 @@ Replace production process-memory-only reads with a bounded shared database-back
|
||||
|
||||
Extract shared furniture import orchestration from the active legacy API and use it from Studio. Preserve selected source, translation options, final reconciliation, asset ownership, gamedata sync and catalog/items refresh. Preserve API streaming and cancellation contracts. Return explicit per-stage partial outcomes without replaying completed stages. Compare every Studio operation with its legacy responsibility, including catalog audit/repair. Test source/options forwarding and finalization failures using service transport adapters; no real external writes.
|
||||
|
||||
The origin/main integration through 775d14f8 already supplies Git export, furniture inspection/review, advisory source preflight, streamed single-import errors, source-asset diagnostics, post-asset ID reservation/remapping, revision preservation and conversion recovery. Reuse these integrated foundations rather than recreating them. Task 14 remains responsible for the missing shared end-to-end Studio orchestration, selected-source/options forwarding and finalization truth; the integration alone does not satisfy it.
|
||||
|
||||
Repair the integration-test boundary while covering this workflow: src/test-repair-icons.test.ts currently runs based only on the presence of DATABASE_URL and logs a result without assertions. Routine test runs must not invoke live repair/import writes. Require explicit isolated-sandbox opt-in for genuine integration tests and assert meaningful outcomes; keep deterministic service/transport regression coverage in the default suite. Preserve the stronger sandbox boundary already used by import-live/catalog-repair-live tests.
|
||||
|
||||
## Task 15: Close shared validation and reference-integrity gaps
|
||||
|
||||
Review direct service/runtime parsers across all domains after the preceding concrete repairs. Reject booleans/arrays/objects masquerading as numeric identifiers, unsafe integers and values beyond actual database column bounds. Preserve legitimate form numeric strings and explicit checkbox handling. Required text must not silently truncate or coerce arbitrary objects into stored values; overlength returns field validation while optional/default semantics remain compatible with callers.
|
||||
|
||||
Reference in new issue
Block a user