docs(housekeeping): record main integration checkpoint
CI / check (pull_request) Successful in 2m33s
CI / deploy (pull_request) Skipped
CI / e2e (pull_request) Skipped

This commit is contained in:
Simo committed 2026-09-05 16:10:37 +02:00
1 parent e7549bbbd2
commit 874cb2beb2
2 files changed
+17

No files matched your search

@@ -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.