{ "ticket": "B02", "completedDate": "2026-09-08", "baselineCommit": "7d641edc7bca866ccf06012897ba1d107c07e59f", "environment": "Windows, existing .NET 9 SDK and UI dependencies, synthetic local SQLite/browser fixtures, external providers disabled", "status": "complete locally; not deployed; existing R01a standalone TypeScript diagnostic remains", "acceptance": "Original retained request rejected; direct object ownership and associations enforced; same-account controls and private state disposal pass", "runs": [ { "phase": "before application edits: original replay expected safe assertion failed", "path": ".artifacts/b02/before.json", "sha256": "BECFB841585A287BADF04E7446DC43FB785F066981E07636534E75F6EF9D2E30", "total": 1, "passed": 0, "failed": 1, "skipped": 0, "observation": "HTTP 200; A unchanged; B overwritten with retained A draft" }, { "phase": "focused backend authorization/session/career/CV", "path": ".artifacts/b02/focused.trx", "sha256": "B43DF85097B6CE15B6DC7766162934E14F62132686EAA20B76F8EA014170A659", "total": 91, "passed": 91, "failed": 0, "skipped": 0 }, { "phase": "broader backend including focused cases", "path": ".artifacts/b02/backend.trx", "sha256": "9539800BF98F5B6B2CA6E52FA37FCFB96845A77D6CDA166DFEB3948AA10AD07D", "total": 853, "passed": 853, "failed": 0, "skipped": 0, "excluded": [ "JobTrackerApi.Tests.ImapServiceSsrfGuardTests.ConnectAsync_rejects_unresolvable_host_without_leaking_dns_detail" ], "exclusionReason": "Existing test performs real DNS; external access not authorized." }, { "phase": "focused frontend before final anonymous-BFCache control addition; superseded by full run", "path": ".artifacts/b02/frontend-focused.json", "sha256": "72CCCA872249B808C3C1BFAFCA64F5C4BCB1417FD6DA8643AB2DA241B045BE09", "suites": 5, "total": 51, "passed": 51, "failed": 0, "skipped": 0 }, { "phase": "final full frontend", "path": ".artifacts/b02/frontend.json", "sha256": "2D0B7B4A47BF5986FC80205D70FD0024B4CDA6483202A72D225A1034297D1F16", "suites": 66, "total": 294, "passed": 294, "failed": 0, "skipped": 0 }, { "phase": "full browser suite before final anonymous-BFCache refinement", "path": ".artifacts/b02/browser.json", "sha256": "FA78BF60624F42F9DA4A7F7C7DA53FBC4C984297946ED98116DD93BD0FFDB844", "total": 17, "passed": 17, "failed": 0, "skipped": 0, "flaky": 0 }, { "phase": "final B02 API/browser rerun after all application edits", "path": ".artifacts/b02/browser-final.json", "sha256": "A24785864DD906D04C4E6FF84A0ADE2F5D6F2A43B361C901635F41CEB81617B4", "total": 4, "passed": 4, "failed": 0, "skipped": 0, "flaky": 0, "observation": "HTTP 409; both A and B unchanged" } ], "checks": [ { "command": "dotnet build JobTrackerApi.Tests/JobTrackerApi.Tests.csproj --configuration Release --no-restore -warnaserror", "path": ".artifacts/b02/backend-build.log", "sha256": "3B4A8D824FDF9BC33C527A5B00FD3E045AE7C43F28FD79885CA78641DF222927", "exitCode": 0, "warnings": 0, "errors": 0 }, { "command": "node --max-old-space-size=4096 node_modules/next/dist/bin/next build", "cwd": "job-tracker-ui", "path": ".artifacts/b02/frontend-build.log", "sha256": "DC7F4BC6EAAD13C897A69F58394867B3B5CBD49B881B60C2D0DF8F7A4612E592", "exitCode": 0 }, { "command": "node node_modules/typescript/bin/tsc --noEmit --pretty false", "cwd": "job-tracker-ui", "path": ".artifacts/b02/typecheck.log", "sha256": "2F9960647ABADEFD054152A9566E4E6557A55383E98627AED742B93EDEBB16DD", "exitCode": 2, "diagnostic": "src/interview-prep.test.tsx(120,10): error TS2571: Object is of type 'unknown'.", "classification": "Pre-existing audit R01a, unchanged, no new diagnostics" }, { "command": "node node_modules/eslint/bin/eslint.js src/api.ts src/sessionBoundary.ts src/session-boundary.test.ts src/App.tsx src/views/LoginPage.tsx src/i18n/translations.ts e2e/account-isolation.spec.ts e2e/smoke.spec.ts --max-warnings=0", "cwd": "job-tracker-ui", "path": ".artifacts/b02/lint.log", "sha256": "33237F0AC9684ACA5331E14FA4337EFC24C4C03D39E589FD0FBCA54F627A9483", "exitCode": 0, "note": "Tool emitted stale Browserslist database advisory; no lint violations; no dependency update." }, { "command": "git diff --check", "exitCode": 0 } ], "newRegressionCases": { "backendMiddleware": 13, "frontendBoundary": 15, "realApiAndBrowserScenarios": 4 }, "commands": "Exact test commands and local offline fixture reproduction in ../b02-completion.md and b02-browser-config.ts.txt", "rawOutputs": "Hashes identify local ignored .artifacts/b02 files; permanent tests, this manifest and compact observations are retained in repository.", "originalEvidencePreserved": true, "b01ApplicationCodePreserved": true, "schemaMigration": false, "deployed": false, "nextTicket": "B03 — shared PDF admission; not started" }