docs(redesign): record Analytics authentication repair acceptance

This commit is contained in:
cesnimda
2026-10-10 15:03:56 +02:00
parent 6843767176
commit cf847e9b25
16 changed files with 1892 additions and 68 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

@@ -0,0 +1,241 @@
{
"sourceCheckpoint": "339e3ba591c91dcd3590d4cbc451ad31268f1aec",
"reproducerCheckpoint": "c37cab560afa2d94cc4244c09dfa7aa720563bbf",
"codeCheckpoint": "68437671762aa9a4d93036a23a06810f1f47dd57",
"originalRed": {
"passed": 0,
"failed": 1,
"requested": "/analytics?months=6",
"returned": "/analytics",
"case": "[P5-15-01 E02 E07 A01] all 32 routes retain native entry, refresh and anonymous permissions",
"error": "Expected pattern: /\\/analytics\\?months=6$/\nReceived string: \"http://localhost:3300/analytics\"\nTimeout: 5000ms",
"report": {
"path": ".artifacts/p5-15-01R-03/browser/auth-original-red.json",
"sha256": "19c33361fecea68fbec97e47e754c36e3efe9ac62dbe284e6722775d3bb42172"
}
},
"loginComponentRed": {
"passed": 17,
"failed": 12,
"notSelected": 0,
"declared": 29,
"failedCases": [
"LoginPage uses the safe fallback for the untrusted return target \"/\\t/evil.example\"",
"LoginPage uses the safe fallback for the untrusted return target \"/%2f%2fevil.example\"",
"LoginPage uses the safe fallback for the untrusted return target \"/%252f%252fevil.example\"",
"LoginPage uses the safe fallback for the untrusted return target \"/%5cevil.example\"",
"LoginPage uses the safe fallback for the untrusted return target \"/analytics?months=%ZZ\"",
"LoginPage uses the safe fallback for the untrusted return target \"/jobs/../login\"",
"LoginPage uses the safe fallback for the untrusted return target \"/%6cogin\"",
"LoginPage uses the safe fallback for the untrusted return target \"/register\"",
"LoginPage uses the safe fallback for the untrusted return target \"/analytics%0a\"",
"LoginPage uses the safe fallback for the untrusted return target \"/analytics?months=6\\n\"",
"LoginPage restores valid owned-workspace navigation context separately from the sign-in destination",
"LoginPage abandons prior return context on the established account/session disposal entry"
],
"result": {
"path": ".artifacts/p5-15-01R-03/frontend/login-red.json",
"sha256": "190a11b979354cbc5ca1af1e2e43532f384ff32aadf85baaad25671fd2c6c487"
}
},
"caseNormalizationRed": {
"passed": 2,
"failed": 2,
"notSelected": 27,
"declared": 31,
"failedCases": [
"LoginPage uses the safe fallback for the untrusted return target \"/LOGIN\"",
"LoginPage uses the safe fallback for the untrusted return target \"/%4cOGIN\""
],
"result": {
"path": ".artifacts/p5-15-01R-03/frontend/case-loop-red.json",
"sha256": "e8ec49ada6336b67047c9d093835c110ad80608d3b77a43068a6b43ed5552998"
}
},
"nativeReturn": {
"requested": "/analytics?months=6",
"returned": "/analytics?months=6"
},
"periodMatrix": [
{
"requested": "/analytics?months=24#activity",
"returned": "/analytics?months=24#activity",
"effectiveMonths": 24,
"language": "en",
"mode": "light",
"width": 1440
},
{
"requested": "/analytics?months=%36#rapport",
"returned": "/analytics?months=%36#rapport",
"effectiveMonths": 6,
"language": "nb",
"mode": "dark",
"width": 390
},
{
"requested": "/analytics?months=12",
"returned": "/analytics?months=12",
"effectiveMonths": 12,
"language": "en",
"mode": "dark",
"width": 768
},
{
"requested": "/analytics?months=3#rapport",
"returned": "/analytics?months=3#rapport",
"effectiveMonths": 12,
"language": "nb",
"mode": "light",
"width": 320
}
],
"historyAndAuthentication": {
"failedLogin": 401,
"retryDefault": 12,
"backPeriods": [
6,
12
],
"forwardAndRefresh": 6,
"authenticatedDirect": 24
},
"expiryAndLogout": {
"expiredCookieMe": 401,
"expiryReturn": "/analytics?months=24#activity",
"logout": 204,
"logoutSubsequentLogin": "/dashboard"
},
"ownershipAndUnsafeReturnState": {
"ownedDestination": "/jobs/1?section=documents#documents",
"foreignResource": 404,
"foreignWorkspace": 404,
"ownerReadbackUnchanged": true,
"rejectedTargets": [
"//outside.example.test/analytics",
"/%2f%2foutside.example.test/analytics"
],
"fallback": "/dashboard"
},
"focusedBrowser": {
"startTime": "2026-10-10T12:27:51.075Z",
"duration": 28486.097,
"expected": 5,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"originalGreen": {
"startTime": "2026-10-10T12:26:44.366Z",
"duration": 36464.388,
"expected": 1,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"nativeContract": "Real authenticated local Development/SQLite API for login, Analytics reads, account disposal and owned/foreign resources; no provider/API schema/report aggregation change.",
"supportedAnalyticsQuery": "months=6 or24 selects that period; absent/other values retain existing12-month default. Search encoding and fragment survive unchanged.",
"screenshots": [
{
"name": "analytics-auth-en-light-1440",
"file": "analytics-auth-en-light-1440.png",
"path": ".artifacts/p5-15-01R-03/browser/auth-focused-results/analytics-auth-repair--P5--c5c4a-gn-in-across-locales-themes-chromium/attachments/analytics-auth-en-light-1440-38e97c90033b4d77b5d231d23bf2ca23bd63f19f.png",
"sha256": "21cef8b34577795744e6868c3086edc471decb61b76b0d4ee61590e51e0a7724"
},
{
"name": "analytics-auth-nb-dark-390",
"file": "analytics-auth-nb-dark-390.png",
"path": ".artifacts/p5-15-01R-03/browser/auth-focused-results/analytics-auth-repair--P5--c5c4a-gn-in-across-locales-themes-chromium/attachments/analytics-auth-nb-dark-390-21d1e32701491e996c99b1c4c86814d0f566c563.png",
"sha256": "5abc521581bcf406a48566f9bd7c1f66c4e955b852d5fb042a23a119315e05aa"
},
{
"name": "analytics-auth-en-dark-768",
"file": "analytics-auth-en-dark-768.png",
"path": ".artifacts/p5-15-01R-03/browser/auth-focused-results/analytics-auth-repair--P5--c5c4a-gn-in-across-locales-themes-chromium/attachments/analytics-auth-en-dark-768-1e41ab7c1b87b0da507de99b71e0e00fd9acfe11.png",
"sha256": "5b30de0bd4291eed11f71741e328c16ef2e4766fc854e7f49beb17e45c50bcc8"
},
{
"name": "analytics-auth-nb-light-320",
"file": "analytics-auth-nb-light-320.png",
"path": ".artifacts/p5-15-01R-03/browser/auth-focused-results/analytics-auth-repair--P5--c5c4a-gn-in-across-locales-themes-chromium/attachments/analytics-auth-nb-light-320-cd3d311cb5e473ef05069561c0d0c52529c1f8a9.png",
"sha256": "329ea5665112ef15d2dfd4b29086e47a59b5d8abca26d7fed0dd6c6109d5f072"
}
],
"visualInspection": {
"type": "Coding-agent screenshot inspection only; not independent human or assistive-technology acceptance.",
"reviewed": [
"analytics-auth-en-light-1440",
"analytics-auth-nb-dark-390",
"analytics-auth-en-dark-768",
"analytics-auth-nb-light-320"
],
"status": "Recorded reviewed screenshots"
},
"rawEvidence": [
{
"path": ".artifacts/p5-15-01R-03/frontend/login-red.json",
"sha256": "190a11b979354cbc5ca1af1e2e43532f384ff32aadf85baaad25671fd2c6c487"
},
{
"path": ".artifacts/p5-15-01R-03/frontend/case-loop-red.json",
"sha256": "e8ec49ada6336b67047c9d093835c110ad80608d3b77a43068a6b43ed5552998"
},
{
"path": ".artifacts/p5-15-01R-03/browser/auth-focused.json",
"sha256": "ba69aad3d0c27e6b532abafc496928a51a4b575eb4dd782f5e503e349f1fd7a3"
},
{
"path": ".artifacts/p5-15-01R-03/browser/auth-original-green.json",
"sha256": "f28698a236d9ea82d9691e62d44df7391ffe48c912661aa9885bea4906bd2558"
}
],
"intermediateAttempts": [
{
"label": "Retained focused-browser harness attempt; Unauthorized toast/announcer selector ambiguity, corrected without changing401/retry assertions.",
"file": {
"path": ".artifacts/p5-15-01R-03/browser/attempt1-auth-focused.json",
"sha256": "36b6431e61415e19bb11ea38a1bd09939ee79e683609e0233e068559ded1cb97"
},
"log": {
"path": ".artifacts/p5-15-01R-03/browser/attempt1-auth-focused.log",
"sha256": "a86a91be2dbe58d0058039c9953d8c3908c9a4a7c0fb7f9eaef84f968fb05cd2"
},
"counts": {
"startTime": "2026-10-10T12:26:12.986Z",
"duration": 30801.587,
"expected": 4,
"skipped": 0,
"unexpected": 1,
"flaky": 0
}
},
{
"label": "Retained intermediate attempt; not final acceptance evidence.",
"file": {
"path": ".artifacts/p5-15-01R-03/frontend/attempt1-jest.json",
"sha256": "491288c010df227f78caf9ee90a468085b0e31e81da5627ccbe8012723e28c09"
},
"counts": {
"numPassedTests": 488,
"numFailedTests": 0,
"numPendingTests": 0,
"numTotalTests": 488
}
},
{
"label": "Retained intermediate attempt; not final acceptance evidence.",
"file": {
"path": ".artifacts/p5-15-01R-03/frontend/attempt1-summary.json",
"sha256": "7d5ae5f3e0c352e27a60bb6471a253e60995f9d544b7e0a1266bbd91f64daead"
},
"counts": {}
}
],
"limits": [
"No real Google/Microsoft provider authentication; existing provider return/cancellation paths have deterministic component fixtures only.",
"No human screen-reader, physical touch/software keyboard, or production font/photo qualification.",
"P5-13 remains deferred, unqualified and Production-withheld; zero qualification calls/UI activation.",
"F04, current complete backup/restore, production configuration/schema and tested rollback remain release blockers.",
"Historical preference500 causes and unexplained CV Unsaved intermittent assertion remain open."
]
}
@@ -0,0 +1,292 @@
{
"status": "PASS for repository/static/document checks; no production or complete Phase5 acceptance.",
"sourceCheckpoint": "339e3ba591c91dcd3590d4cbc451ad31268f1aec",
"codeCheckpoint": "68437671762aa9a4d93036a23a06810f1f47dd57",
"finalDocumentCommit": "This record; final commit/push/tree equality is verified afterward and reported to owner.",
"productionMain": "27657f31131cd95d42f0e1290853ec9c9b3959a4",
"productionChanged": false,
"checks": [
{
"name": "e2e-typescript",
"command": [
"rtk",
"proxy",
"node",
"job-tracker-ui/node_modules/typescript/bin/tsc",
"--project",
".artifacts/p5-15-01/e2e-tsconfig.json",
"--noEmit",
"--incremental",
"false"
],
"startedUtc": "2026-10-10T13:03:38.885179+00:00",
"finishedUtc": "2026-10-10T13:03:41.193863+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/e2e-typescript.log",
"logSha256": "a4ed4c2c830adf807283a578ea7ee8b2f659416a86da69815d6147237e7d7f36"
},
{
"name": "document-links",
"command": [
"rtk",
"proxy",
"C:/Users/Connor/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/python.exe",
"-X",
"utf8",
".artifacts/p4-04-check-doc-links.py"
],
"startedUtc": "2026-10-10T13:03:41.194362+00:00",
"finishedUtc": "2026-10-10T13:03:41.872415+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/document-links.log",
"logSha256": "ccdc000ff4b5d0eb9fb5762359fb6a7c4716dc6b9641c378c4506d80e18221cc"
},
{
"name": "secret-scan",
"command": [
"rtk",
"proxy",
"C:/Users/Connor/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/python.exe",
"-X",
"utf8",
"scripts/supply-chain.py",
"scan-secrets"
],
"startedUtc": "2026-10-10T13:03:41.872915+00:00",
"finishedUtc": "2026-10-10T13:03:43.711682+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/secret-scan.log",
"logSha256": "da6efdc7fe0b34b8658c000c05ed2eaa8fdaf0dd62756adf51f7a770d5a4485f"
},
{
"name": "working-whitespace",
"command": [
"rtk",
"proxy",
"git",
"diff",
"--check"
],
"startedUtc": "2026-10-10T13:03:43.711682+00:00",
"finishedUtc": "2026-10-10T13:03:43.811370+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/working-whitespace.log",
"logSha256": "a2671a8fe8421cd6b0dd53d8b4d460271309557e5f0fc80de3d2204e468e93a7"
},
{
"name": "staged-whitespace",
"command": [
"rtk",
"proxy",
"git",
"diff",
"--cached",
"--check"
],
"startedUtc": "2026-10-10T13:03:43.811871+00:00",
"finishedUtc": "2026-10-10T13:03:43.890250+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/staged-whitespace.log",
"logSha256": "a4ed4c2c830adf807283a578ea7ee8b2f659416a86da69815d6147237e7d7f36"
},
{
"name": "checkpoint-whitespace",
"command": [
"rtk",
"proxy",
"git",
"diff",
"339e3ba591c91dcd3590d4cbc451ad31268f1aec",
"--check"
],
"startedUtc": "2026-10-10T13:03:43.890764+00:00",
"finishedUtc": "2026-10-10T13:03:43.991084+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/checkpoint-whitespace.log",
"logSha256": "a2671a8fe8421cd6b0dd53d8b4d460271309557e5f0fc80de3d2204e468e93a7"
},
{
"name": "checkpoint-files",
"command": [
"rtk",
"proxy",
"git",
"diff",
"339e3ba591c91dcd3590d4cbc451ad31268f1aec",
"--name-only"
],
"startedUtc": "2026-10-10T13:03:43.991084+00:00",
"finishedUtc": "2026-10-10T13:03:44.083847+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/checkpoint-files.log",
"logSha256": "2ab03ee5e62c936723adc1675072881fce68b5935e832b92acea6034111dcb51"
},
{
"name": "untracked-files",
"command": [
"rtk",
"proxy",
"git",
"ls-files",
"--others",
"--exclude-standard"
],
"startedUtc": "2026-10-10T13:03:44.084347+00:00",
"finishedUtc": "2026-10-10T13:03:44.180872+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/untracked-files.log",
"logSha256": "aede1cd454baa249798554e2eef09a52ede7bbdda29ac0dca34c0961f51cf468"
},
{
"name": "original-contracts-unchanged",
"command": [
"rtk",
"proxy",
"git",
"diff",
"339e3ba591c91dcd3590d4cbc451ad31268f1aec",
"--",
"docs/redesign/phase-2",
"docs/redesign/audit/ROUTE_MAP.md"
],
"startedUtc": "2026-10-10T13:03:44.181383+00:00",
"finishedUtc": "2026-10-10T13:03:44.258887+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/original-contracts-unchanged.log",
"logSha256": "a4ed4c2c830adf807283a578ea7ee8b2f659416a86da69815d6147237e7d7f36"
},
{
"name": "development-branch",
"command": [
"rtk",
"proxy",
"git",
"branch",
"--show-current"
],
"startedUtc": "2026-10-10T13:03:44.259891+00:00",
"finishedUtc": "2026-10-10T13:03:44.333341+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/development-branch.log",
"logSha256": "b6bdec29438bc83c44fd5e3e8c1a0e3379bb3b7bea701966b24ad7df2091c7b2"
},
{
"name": "main-revision",
"command": [
"rtk",
"proxy",
"git",
"rev-parse",
"main"
],
"startedUtc": "2026-10-10T13:03:44.334332+00:00",
"finishedUtc": "2026-10-10T13:03:44.404849+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/main-revision.log",
"logSha256": "897066df123bc63e82a45f42fe9b6dbc9dd0aeff602dd814ffdf3ffd8de8ec2c"
},
{
"name": "code-head",
"command": [
"rtk",
"proxy",
"git",
"rev-parse",
"HEAD"
],
"startedUtc": "2026-10-10T13:03:44.405348+00:00",
"finishedUtc": "2026-10-10T13:03:44.474005+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/code-head.log",
"logSha256": "c3b1798598a94ab2a1fcc87b6f50348014b9fa4c70358d92f6fba2f035811caf"
},
{
"name": "remote-branches",
"command": [
"rtk",
"proxy",
"git",
"ls-remote",
"origin",
"refs/heads/main",
"refs/heads/codex/ui-redesign-phase4"
],
"startedUtc": "2026-10-10T13:03:44.474005+00:00",
"finishedUtc": "2026-10-10T13:03:44.705606+00:00",
"exitCode": 0,
"logPath": ".artifacts/p5-15-01R-03/hygiene/remote-branches.log",
"logSha256": "ebdd583b225748390c82cdc34b8f053993a513cfd1f2226ecde3a56b604b6ab3"
}
],
"changedTrackedFiles": [
"docs/redesign/phase-5/p5-15/PRESERVATION_ACCEPTANCE.md",
"docs/redesign/phase-5/p5-15/README.md",
"docs/redesign/phase-5/p5-15/p5-15-01/DEFECTS.md",
"docs/redesign/phase-5/p5-15/p5-15-01/INTERMITTENT_FAILURES.md",
"docs/redesign/phase-5/p5-15/p5-15-01/PRES_RESULTS.md",
"docs/redesign/phase-5/p5-15/p5-15-01/README.md",
"docs/redesign/phase-5/p5-15/p5-15-01/ROUTE_RESULTS.md",
"docs/redesign/phase-5/p5-15/p5-15-01/analytics-auth-repair/README.md",
"docs/roadmap/todo.md",
"job-tracker-ui/e2e/analytics-auth-repair.spec.ts",
"job-tracker-ui/src/App.tsx",
"job-tracker-ui/src/auth.ts",
"job-tracker-ui/src/login-page.test.tsx",
"job-tracker-ui/src/views/LoginPage.tsx"
],
"untrackedFilesWithinScope": [
"docs/redesign/phase-5/p5-15/p5-15-01/analytics-auth-repair/evidence/analytics-auth-en-dark-768.png",
"docs/redesign/phase-5/p5-15/p5-15-01/analytics-auth-repair/evidence/analytics-auth-en-light-1440.png",
"docs/redesign/phase-5/p5-15/p5-15-01/analytics-auth-repair/evidence/analytics-auth-nb-dark-390.png",
"docs/redesign/phase-5/p5-15/p5-15-01/analytics-auth-repair/evidence/analytics-auth-nb-light-320.png",
"docs/redesign/phase-5/p5-15/p5-15-01/analytics-auth-repair/evidence/auth-proof.json",
"docs/redesign/phase-5/p5-15/p5-15-01/analytics-auth-repair/evidence/repository-validation.json",
"docs/redesign/phase-5/p5-15/p5-15-01/analytics-auth-repair/evidence/validation.json"
],
"applicationFiles": [
"job-tracker-ui/src/App.tsx",
"job-tracker-ui/src/auth.ts",
"job-tracker-ui/src/views/LoginPage.tsx"
],
"preservation": {
"total": 57,
"before": {
"PARTIAL": 56,
"DEFERRED": 1
},
"audit": {
"PARTIAL": 53,
"FAIL": 3,
"DEFERRED": 1
},
"R01": {
"PARTIAL": 54,
"FAIL": 2,
"DEFERRED": 1
},
"R02": {
"PARTIAL": 55,
"FAIL": 1,
"DEFERRED": 1
},
"current": {
"PARTIAL": 56,
"DEFERRED": 1
},
"originalIdsUnchanged": true,
"onlyE02StatusChanged": true
},
"routes": {
"patterns": 32,
"original": 31,
"analyticsAdded": 1,
"sourceDeclarationsReconciled": true
},
"balancedMarkdown": true,
"evidenceFingerprintReferencesVerified": 104,
"limits": [
"No real external-provider authentication, human AT/physical-device or production acceptance.",
"CV Unsaved intermittent cause and historical preference500 causes remain open.",
"No P5-15-02/P5-13/Docker/B07 work or production branch mutation."
]
}