diff --git a/docs/i18n/CV_BOARD_KEY_REVIEW.md b/docs/i18n/CV_BOARD_KEY_REVIEW.md new file mode 100644 index 00000000..5107cdac --- /dev/null +++ b/docs/i18n/CV_BOARD_KEY_REVIEW.md @@ -0,0 +1,13 @@ +# CV, board and field-review translation domains + +2 November 2026. Eight more historical sites resolved by source/control-flow review; no implementation change or repeated PDF qualification. + +- KanbanBoard.tsx:194/446 iterate the three literal PIPELINE_GROUPS labels. Custom statuses use their separately handled Other column; they do not create group translation keys. The pipeline owner dependency is hash-bound in the register. +- CvBuilderEditor.tsx:669 iterates the literal indices 1/0/2/3/4 over five literal studio-tab keys. This lookup is independent of arbitrary tab state. +- CvBuilderEditor.tsx:1490 maps four historical sources with an existing Object.hasOwn guard and returns unknown source text as data. +- CvBuilderEditor.tsx:486 uses getCvExportFailureKey, which returns only cvEmptyContent/cvPdfBusy/cvPdfTimedOut/undefined after explicit status/code checks. Unrecognised errors use existing error handling. CvBuilderPage.tsx:178 has only four literal action-error constructors plus that same export helper. cvBuilder.ts is recorded as an owner dependency. No server/PDF renderer contract was changed. +- CareerProfileSections.tsx:45/46 uses confidenceTone, whose four branches return fixed confidence labels. Confidence is interpolated as data; no confidence value becomes a key. Missing metadata is not presented as an accepted profile fact. + +All components obtain t from useI18n. Assertion verified all 23 distinct keys in both catalogues. This is finite key/control-flow coverage, not native terminology, all placeholders/plurals, semantic CV quality or complete accessibility. Canonical profile ownership, revision-safe document history, source provenance and PDF metric/visual acceptance remain untouched. + +Register reconciliation: 108 original + 56 supplemental sites = 164 resolved / 24 pending of 188. Existing earlier tests are historical evidence for unchanged implementations, not fresh executions by this review. diff --git a/docs/i18n/DYNAMIC_RESOLUTION_REGISTER.json b/docs/i18n/DYNAMIC_RESOLUTION_REGISTER.json index 40a641f4..3bc3b7e1 100644 --- a/docs/i18n/DYNAMIC_RESOLUTION_REGISTER.json +++ b/docs/i18n/DYNAMIC_RESOLUTION_REGISTER.json @@ -3,9 +3,9 @@ "inventorySha256": "79928688a7b1a4961286aaaf48c028eb13ae8286d72d132561d6b5fdd192e323", "historicalCalls": 188, "previouslyResolved": 108, - "additionalResolved": 48, - "resolved": 156, - "pending": 32, + "additionalResolved": 56, + "resolved": 164, + "pending": 24, "evidence": [ "CHECKLIST_DYNAMIC_REVIEW.md", "FINITE_OWNER_MAP_REVIEW.md", @@ -14,7 +14,8 @@ "PROCESSING_LABEL_FALLBACKS.md", "REMINDER_INTERVIEW_KEY_REVIEW.md", "ASSET_KEY_REVIEW.md", - "LANDING_DOCUMENT_KEY_REVIEW.md" + "LANDING_DOCUMENT_KEY_REVIEW.md", + "CV_BOARD_KEY_REVIEW.md" ], "entries": [ { @@ -478,6 +479,102 @@ "sha256": "14eb6a27455289e7231cc1a67f2c8acd7fe89d038d8ac93ce1a774f2bbec9f12" } ] + }, + { + "file": "job-tracker-ui/src/components/KanbanBoard.tsx", + "historicalLine": 194, + "expression": "t(g.labelKey as any)", + "historicalSourceSha256": "f9e7491cd3bd82214fb081571b46b55b31fb8e135fa5050e76896759c2e79a92", + "reviewedSourceSha256": "f9e7491cd3bd82214fb081571b46b55b31fb8e135fa5050e76896759c2e79a92", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static control-flow review; no PDF metric or model rerun", + "ownerDependencies": [ + { + "file": "job-tracker-ui/src/pipeline.ts", + "sha256": "ad6018cad66d4b7afe022a1e8d2bfb5874906552929f60f9f4075704499a6073" + } + ] + }, + { + "file": "job-tracker-ui/src/components/KanbanBoard.tsx", + "historicalLine": 446, + "expression": "t(g.labelKey as any)", + "historicalSourceSha256": "f9e7491cd3bd82214fb081571b46b55b31fb8e135fa5050e76896759c2e79a92", + "reviewedSourceSha256": "f9e7491cd3bd82214fb081571b46b55b31fb8e135fa5050e76896759c2e79a92", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static control-flow review; no PDF metric or model rerun", + "ownerDependencies": [ + { + "file": "job-tracker-ui/src/pipeline.ts", + "sha256": "ad6018cad66d4b7afe022a1e8d2bfb5874906552929f60f9f4075704499a6073" + } + ] + }, + { + "file": "job-tracker-ui/src/views/CvBuilderEditor.tsx", + "historicalLine": 486, + "expression": "t(key)", + "historicalSourceSha256": "b163cbe792e98cc1afdd775ffb595c1abb8b58c5fdd9a79bbd6fa6b552f868ae", + "reviewedSourceSha256": "b163cbe792e98cc1afdd775ffb595c1abb8b58c5fdd9a79bbd6fa6b552f868ae", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static control-flow review; no PDF metric or model rerun", + "ownerDependencies": [ + { + "file": "job-tracker-ui/src/cvBuilder.ts", + "sha256": "7cf5976778cab8e902f13464706883845d8f5ca67ba72c9b37199334804123fd" + } + ] + }, + { + "file": "job-tracker-ui/src/views/CvBuilderEditor.tsx", + "historicalLine": 669, + "expression": "t(([\"cvEditorTemplate\", \"cvEditorContent\", \"cvEditorCustomize\", \"cvEditorAiTools\", \"cvEditorHistory\"] as const)[value])", + "historicalSourceSha256": "b163cbe792e98cc1afdd775ffb595c1abb8b58c5fdd9a79bbd6fa6b552f868ae", + "reviewedSourceSha256": "b163cbe792e98cc1afdd775ffb595c1abb8b58c5fdd9a79bbd6fa6b552f868ae", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static control-flow review; no PDF metric or model rerun" + }, + { + "file": "job-tracker-ui/src/views/CvBuilderEditor.tsx", + "historicalLine": 1490, + "expression": "t(source)", + "historicalSourceSha256": "b163cbe792e98cc1afdd775ffb595c1abb8b58c5fdd9a79bbd6fa6b552f868ae", + "reviewedSourceSha256": "b163cbe792e98cc1afdd775ffb595c1abb8b58c5fdd9a79bbd6fa6b552f868ae", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static control-flow review; no PDF metric or model rerun" + }, + { + "file": "job-tracker-ui/src/views/CvBuilderPage.tsx", + "historicalLine": 178, + "expression": "t(actionError.key)", + "historicalSourceSha256": "b4cc784cadb3b820b78b7b688e3c9961ed724230de4fc5fffae166d29620f361", + "reviewedSourceSha256": "b4cc784cadb3b820b78b7b688e3c9961ed724230de4fc5fffae166d29620f361", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static control-flow review; no PDF metric or model rerun", + "ownerDependencies": [ + { + "file": "job-tracker-ui/src/cvBuilder.ts", + "sha256": "7cf5976778cab8e902f13464706883845d8f5ca67ba72c9b37199334804123fd" + } + ] + }, + { + "file": "job-tracker-ui/src/views/career/CareerProfileSections.tsx", + "historicalLine": 45, + "expression": "t(tone.key, { percent: Math.round(metadata.confidence * 100) })", + "historicalSourceSha256": "0c772feb6bde8324676b0884aaf343283465c5cd3b3318128363063df4ea22ab", + "reviewedSourceSha256": "0c772feb6bde8324676b0884aaf343283465c5cd3b3318128363063df4ea22ab", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static control-flow review; no PDF metric or model rerun" + }, + { + "file": "job-tracker-ui/src/views/career/CareerProfileSections.tsx", + "historicalLine": 46, + "expression": "t(tone.key)", + "historicalSourceSha256": "0c772feb6bde8324676b0884aaf343283465c5cd3b3318128363063df4ea22ab", + "reviewedSourceSha256": "0c772feb6bde8324676b0884aaf343283465c5cd3b3318128363063df4ea22ab", + "status": "finite-key-domain-reviewed", + "runtimeCoverage": "static control-flow review; no PDF metric or model rerun" } ], "limitations": [