diff --git a/docs/i18n/ASSET_KEY_REVIEW.md b/docs/i18n/ASSET_KEY_REVIEW.md new file mode 100644 index 00000000..76b24096 --- /dev/null +++ b/docs/i18n/ASSET_KEY_REVIEW.md @@ -0,0 +1,18 @@ +# Application asset label domains — 2 November 2026 + +Nine historical dynamic sites resolved by source review; no source/runtime behavior changed. + +| Historical line(s) | Finite domain / fallback | +| --- | --- | +| 389 | Package labels iterate only TailoredCvText and RecruiterMessageDraft; the assetsPackage prefix therefore yields two keys. Material body remains user/application data. | +| 456/458 | tailoringLabels is a Map of six fixed title/detail tuples; unknown kinds preserve server-supplied title/detail as data. | +| 687/688 | historySources and historyAiActions are Maps with five and ten fixed values. Guarded get calls preserve unknown historical source/action labels verbatim. | +| 830 | Toolbar iterates four literal key/label pairs. | +| 857/895 | COVER_LETTER_ACTIONS is a nine-entry literal array; selection uses find with a fixed coverActionGenerate fallback. | +| 866 | Tone options iterate six literal key pairs. | + +All relevant components obtain t from useI18n. The 39 distinct keys across these domains are defined in both catalogues; local assertion verified all 78 definitions. Map lookups have no inherited Object-property ambiguity. UI language and selected document-generation language remain separate. This does not activate AI, re-run PDF metrics or change canonical ownership, revision/history, entitlements, package snapshots or stored text. + +The two error.messageKey sites remain pending until all error constructors/callers are traced. Key-domain review is not complete translator context, professional/native translation review or production capability acceptance. Existing unchanged contract tests were not rerun solely to record these static facts. + +Machine register binds exact expressions and reviewed source hash. Reconciliation: 108 original + 37 supplemental = 145 resolved / 43 pending of 188. Do not count earlier 136/52 as additional work to add to this total. diff --git a/docs/i18n/DYNAMIC_RESOLUTION_REGISTER.json b/docs/i18n/DYNAMIC_RESOLUTION_REGISTER.json index f5e16e70..2c174c27 100644 --- a/docs/i18n/DYNAMIC_RESOLUTION_REGISTER.json +++ b/docs/i18n/DYNAMIC_RESOLUTION_REGISTER.json @@ -3,16 +3,17 @@ "inventorySha256": "79928688a7b1a4961286aaaf48c028eb13ae8286d72d132561d6b5fdd192e323", "historicalCalls": 188, "previouslyResolved": 108, - "additionalResolved": 28, - "resolved": 136, - "pending": 52, + "additionalResolved": 37, + "resolved": 145, + "pending": 43, "evidence": [ "CHECKLIST_DYNAMIC_REVIEW.md", "FINITE_OWNER_MAP_REVIEW.md", "UNKNOWN_LABEL_FALLBACKS.md", "PIPELINE_ALIAS_FALLBACK.md", "PROCESSING_LABEL_FALLBACKS.md", - "REMINDER_INTERVIEW_KEY_REVIEW.md" + "REMINDER_INTERVIEW_KEY_REVIEW.md", + "ASSET_KEY_REVIEW.md" ], "entries": [ { @@ -266,6 +267,87 @@ "reviewedSourceSha256": "1eedbc443761001e86be1f322691ab4058553033e764b0c6cf9c93ce4fab05c0", "status": "finite-key-domain-reviewed", "runtimeCoverage": "static owner-map review only; no inference or provider calls" + }, + { + "file": "job-tracker-ui/src/components/ApplicationAssets.tsx", + "historicalLine": 389, + "expression": "t(`assetsPackage${key}` as \"assetsPackageTailoredCvText\")", + "historicalSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "reviewedSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static owner-map review; no AI inference or provider calls" + }, + { + "file": "job-tracker-ui/src/components/ApplicationAssets.tsx", + "historicalLine": 456, + "expression": "t(labels[0])", + "historicalSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "reviewedSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static owner-map review; no AI inference or provider calls" + }, + { + "file": "job-tracker-ui/src/components/ApplicationAssets.tsx", + "historicalLine": 458, + "expression": "t(labels[1])", + "historicalSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "reviewedSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static owner-map review; no AI inference or provider calls" + }, + { + "file": "job-tracker-ui/src/components/ApplicationAssets.tsx", + "historicalLine": 687, + "expression": "t(sourceKey)", + "historicalSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "reviewedSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static owner-map review; no AI inference or provider calls" + }, + { + "file": "job-tracker-ui/src/components/ApplicationAssets.tsx", + "historicalLine": 688, + "expression": "t(actionKey)", + "historicalSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "reviewedSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static owner-map review; no AI inference or provider calls" + }, + { + "file": "job-tracker-ui/src/components/ApplicationAssets.tsx", + "historicalLine": 830, + "expression": "t(label)", + "historicalSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "reviewedSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static owner-map review; no AI inference or provider calls" + }, + { + "file": "job-tracker-ui/src/components/ApplicationAssets.tsx", + "historicalLine": 857, + "expression": "t(item.labelKey)", + "historicalSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "reviewedSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static owner-map review; no AI inference or provider calls" + }, + { + "file": "job-tracker-ui/src/components/ApplicationAssets.tsx", + "historicalLine": 866, + "expression": "t(key as any)", + "historicalSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "reviewedSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static owner-map review; no AI inference or provider calls" + }, + { + "file": "job-tracker-ui/src/components/ApplicationAssets.tsx", + "historicalLine": 895, + "expression": "t(COVER_LETTER_ACTIONS.find((item) => item.key === action)?.labelKey ?? \"coverActionGenerate\")", + "historicalSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "reviewedSourceSha256": "25216c80ef92d519baad9e428a0e77390150605c1a3529a4809819d120661f29", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static owner-map review; no AI inference or provider calls" } ], "limitations": [