Buyer-visible gap
LineageWeave currently declares only en, ko, zh, ja, and vi in frontend/src/i18n.ts, and translation resources are compiled into the SPA source. The product contract requires KO/EN/JA/ZH/VI/ES/DE/FR and a database-distributed, versioned translation ledger with screen-key caching; ontology labels remain a separate semantic concern.
This is a LineageWeave presentation/read-model boundary. Do not copy ontology truth, locale management, or other CWL owners into this repository. If a released shared i18n owner becomes available, consume it through a versioned contract/ACL instead of duplicating it.
Required repair
- Add
es, de, and fr as first-class supported locales without treating English fallback as translated coverage.
- Replace the SPA-bundled translation dictionary as the production source of truth with a normalized PostgreSQL translation ledger. Keep the client payload scoped by product/screen/key/locale/version and cache by immutable/versioned ledger identity so locale switching does not require shipping the full translation corpus in the JS bundle.
- Preserve English source keys as stable message identities for the migration only if an ADR demonstrates collision/versioning safety; otherwise introduce an explicit stable message key and migrate callers without breaking existing accessibility names.
- Keep ontology labels out of the translation ledger. Translation records are presentation resources, not semantic ontology truth.
- Fail closed on missing required production translations for the eight supported locales in release/build evidence; development fallback must be explicit and observable, not silently counted as coverage.
- Verify KO/EN/JA/ZH/VI/ES/DE/FR text expansion, CJK rendering/font fallback, normal/loading/empty/error/permission states, responsive layouts, keyboard/focus semantics, and screen-reader names for material UI.
- Add migration/rollback, seed/version provenance, cache invalidation semantics, tenant/scope rules if applicable, API/read-model contract, and operational evidence. No cross-service SQL.
- Update PRD/TRD/ARCHITECTURE/ADR/UX/OPERABILITY/TEST_STRATEGY and
docs/product-technical-gap-baseline.md code-current with the chosen transaction/cache/version boundary.
RED acceptance
- A contract test must demonstrate that
SUPPORTED_LOCALES is missing es, de, and fr on current code.
- A packaging/build assertion must demonstrate that production translation payloads currently live in the frontend source/bundle rather than a versioned database resource.
- An i18n completeness test must distinguish a real translation from English fallback and fail when any required screen key is missing in one of the eight supported locales.
GREEN acceptance
SUPPORTED_LOCALES contains exactly the supported product locales KO/EN/JA/ZH/VI/ES/DE/FR (canonical locale tags documented).
- Production translations are read through the versioned DB-ledger/API boundary and screen-key cache; the frontend bundle is not the canonical translation store.
- Full current-head i18n/accessibility tests cover all eight locales and all material states; no untranslated fallback is counted as translated coverage.
- Migration rollback and immutable/versioned resource provenance are demonstrated on current head.
- No ontology-label conflation, raw cross-service SQL, or mutable sibling dependency is introduced.
Open material-UI lanes covered by this gate
At the 2026-09-03 live sweep, this release gate applies to open material UI work including #667 (Ask history), #679 (public-claim verification), #770 (project-history timeline), #774 (Operations Dashboard status), #802 (leftover-map explained-share presentation), #903 (Event Lineage), #907 (Affiliate Tree), #909 (Customer Master), and the #918 → #920 → #921 leftover-map composition stack. These PRs retain their own domain/test findings, but none may count five-locale SPA-bundled predecessor evidence as completion of this eight-locale DB-ledger requirement. Keep conflicts and unique deltas repairable; do not close them merely because this shared presentation prerequisite is unfinished.
Buyer-visible gap
LineageWeave currently declares only
en,ko,zh,ja, andviinfrontend/src/i18n.ts, and translation resources are compiled into the SPA source. The product contract requires KO/EN/JA/ZH/VI/ES/DE/FR and a database-distributed, versioned translation ledger with screen-key caching; ontology labels remain a separate semantic concern.This is a LineageWeave presentation/read-model boundary. Do not copy ontology truth, locale management, or other CWL owners into this repository. If a released shared i18n owner becomes available, consume it through a versioned contract/ACL instead of duplicating it.
Required repair
es,de, andfras first-class supported locales without treating English fallback as translated coverage.docs/product-technical-gap-baseline.mdcode-current with the chosen transaction/cache/version boundary.RED acceptance
SUPPORTED_LOCALESis missinges,de, andfron current code.GREEN acceptance
SUPPORTED_LOCALEScontains exactly the supported product locales KO/EN/JA/ZH/VI/ES/DE/FR (canonical locale tags documented).Open material-UI lanes covered by this gate
At the 2026-09-03 live sweep, this release gate applies to open material UI work including #667 (Ask history), #679 (public-claim verification), #770 (project-history timeline), #774 (Operations Dashboard status), #802 (leftover-map explained-share presentation), #903 (Event Lineage), #907 (Affiliate Tree), #909 (Customer Master), and the #918 → #920 → #921 leftover-map composition stack. These PRs retain their own domain/test findings, but none may count five-locale SPA-bundled predecessor evidence as completion of this eight-locale DB-ledger requirement. Keep conflicts and unique deltas repairable; do not close them merely because this shared presentation prerequisite is unfinished.