@dailephd/my-frontend-observer 0.10.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/CHANGELOG.md +490 -479
  2. package/LICENSE +21 -21
  3. package/README.md +375 -365
  4. package/dist/application/projectCheckService.d.ts +6 -0
  5. package/dist/application/projectCheckService.js +8 -1
  6. package/dist/application/projectCheckService.js.map +1 -1
  7. package/dist/application/projectWorkflowService.d.ts +7 -2
  8. package/dist/application/projectWorkflowService.js +10 -3
  9. package/dist/application/projectWorkflowService.js.map +1 -1
  10. package/dist/cli.js +510 -510
  11. package/dist/viewer/index.html +13 -13
  12. package/dist/viewer/sw.js +1 -1
  13. package/docs/ARCHITECTURE.md +1394 -1385
  14. package/docs/CI_CD.md +349 -338
  15. package/docs/COMMANDS.md +1035 -1026
  16. package/docs/CONTRACTS.md +1971 -1960
  17. package/docs/CURRENT_STATE.md +1277 -1252
  18. package/docs/DEVELOPMENT.md +240 -237
  19. package/docs/DOCUMENTATION_PRESERVATION_POLICY.md +50 -50
  20. package/docs/PROJECT_DESCRIPTION.md +2248 -2224
  21. package/docs/PROJECT_MILESTONES.md +2681 -2558
  22. package/docs/PROJECT_OVERVIEW.md +200 -196
  23. package/docs/QUICKSTART.md +100 -100
  24. package/docs/RELEASE.md +37 -36
  25. package/docs/ROADMAP.md +1105 -1034
  26. package/docs/SECURITY.md +297 -297
  27. package/docs/WORKFLOWS.md +806 -796
  28. package/docs/plans/v0.10-implementation-plan.md +1509 -1509
  29. package/docs/plans/v0.8-implementation-plan.md +655 -655
  30. package/docs/plans/v0.8.1-cli-usability-patch-plan.md +505 -505
  31. package/docs/plans/v0.9-implementation-plan.md +1529 -1529
  32. package/docs/plans/v0.9.1-implementation-plan.md +468 -468
  33. package/docs/reports/v0.10-batch1-visual-change-workflow-foundation.md +102 -102
  34. package/docs/reports/v0.10-batch2-project-composition-check-recording.md +103 -103
  35. package/docs/reports/v0.10-batch3-viewer-visual-change-workspace.md +93 -93
  36. package/docs/reports/v0.10-batch4-actual-frontend-entry.md +59 -59
  37. package/docs/reports/v0.10-batch5-reference-driven-entry.md +238 -238
  38. package/docs/reports/v0.10-batch6-coding-agent-handoff.md +85 -85
  39. package/docs/reports/v0.10-batch7-correction-review-acceptance.md +145 -145
  40. package/docs/reports/v0.10-batch8-integrated-acceptance.md +109 -109
  41. package/docs/reports/v0.10-implementation-completeness-documentation-reconciliation.md +344 -344
  42. package/docs/reports/v0.10-pre-release-readiness.md +120 -120
  43. package/docs/reports/v0.10-release-preparation.md +70 -70
  44. package/docs/reports/v0.10.1-project-check-baseline-context-implementation.md +86 -0
  45. package/docs/reports/v0.7-bounded-fidelity-context-prompt7.md +243 -243
  46. package/docs/reports/v0.7-implementation-completeness-documentation-reconciliation.md +497 -497
  47. package/docs/reports/v0.7-pre-release-readiness.md +337 -337
  48. package/docs/reports/v0.7-reference-binding-prompt5.md +223 -223
  49. package/docs/reports/v0.7-reference-compatibility-prompt4.md +234 -234
  50. package/docs/reports/v0.7-reference-correction-workflow-prompt8.md +222 -222
  51. package/docs/reports/v0.7-reference-fidelity-prompt6.md +216 -216
  52. package/docs/reports/v0.7-reference-foundation-prompt1.md +151 -151
  53. package/docs/reports/v0.7-reference-regions-prompt2.md +195 -195
  54. package/docs/reports/v0.7-reference-requirements-prompt3.md +217 -217
  55. package/docs/reports/v0.7-release-prep.md +423 -423
  56. package/docs/reports/v0.8-binding-fidelity-interaction-batch6.md +279 -279
  57. package/docs/reports/v0.8-bounded-context-correlation-batch7.md +233 -233
  58. package/docs/reports/v0.8-comparison-contract-inspection-batch4.md +279 -279
  59. package/docs/reports/v0.8-evidence-index-readers-batch2.md +247 -247
  60. package/docs/reports/v0.8-implementation-completeness-documentation-reconciliation.md +741 -741
  61. package/docs/reports/v0.8-integrated-viewer-acceptance-batch8.md +128 -128
  62. package/docs/reports/v0.8-observation-svg-inspection-batch3.md +223 -223
  63. package/docs/reports/v0.8-prerelease-readiness-cross-platform-security-code-rot.md +687 -687
  64. package/docs/reports/v0.8-reference-candidate-inspection-batch5.md +232 -232
  65. package/docs/reports/v0.8-viewer-runtime-pwa-batch1.md +278 -278
  66. package/docs/reports/v0.8.1-implementation-completeness-documentation-reconciliation.md +114 -114
  67. package/docs/reports/v0.8.1-prerelease-readiness-cross-platform-security-code-rot.md +170 -170
  68. package/docs/reports/v0.9-architecture-retrieval.md +14 -37
  69. package/docs/reports/v0.9-final-pre-release-readiness.md +209 -209
  70. package/docs/reports/v0.9-final-readiness-corrections.md +530 -530
  71. package/docs/reports/v0.9-pre-release-readiness.md +169 -169
  72. package/docs/reports/v0.9.1-batch1-pwa-hard-gate-isolation.md +359 -359
  73. package/docs/reports/v0.9.1-batch2-hard-gate-validation-integration.md +262 -262
  74. package/docs/reports/v0.9.1-pre-release-readiness.md +206 -206
  75. package/package.json +59 -59
@@ -1,85 +1,85 @@
1
- # v0.10 Batch 6 Coding-Agent Handoff
2
-
3
- ## 1. Verdict and repository
4
-
5
- PASS. Repository `C:\Users\daile\Projects\my-frontend-observer`, branch `feature/v0.10-full-visual-workflow`, starting commit `ac79b2c41e53ac36c825c4b398bbeb4856d5db0e`.
6
-
7
- ## 2. Retrieval and fresh index
8
-
9
- - Resolved my-dev-kit: `1.12.4`; CLI identity and `index`, `search`, `lookup`, `slice`, `source`, `graph-diff`, and `context` were verified.
10
- - Install: `.my-dev-kit-workflow/tools/v0.10-batch6/mdk-1.12.4/`.
11
- - Index: `.my-dev-kit-context/indexes/my-frontend-observer-v0.10-batch6-20260922`.
12
- - Command: `node .my-dev-kit-workflow/tools/v0.10-batch6/mdk-1.12.4/node_modules/@dailephd/my-dev-kit/dist/cli.js index --root C:\Users\daile\Projects\my-frontend-observer --src src --src viewer/src --src tests --src scripts --out C:\Users\daile\Projects\my-frontend-observer\.my-dev-kit-context\indexes\my-frontend-observer-v0.10-batch6-20260922 --call-graph --json`.
13
- - Result: 306 files, 2,487 symbols, 4,796 edges, zero index warnings/errors. Frontend analysis was complete; data-model and classification were partial with 834 and 2,436 warnings.
14
-
15
- ## 3. Contract and canonical owners
16
-
17
- `VisualChangeAgentHandoff` is a non-persisted, closed `my-frontend-observer/visual-change-agent-handoff` `1.0.0` transfer contract with deterministic canonical JSON and a terminal newline. Batch 2 readiness was extracted into `prepareActiveVisualChangeWorkflow`; canonical check recording and handoff preparation now share activation, restoration, acceptance-drift, exact-alias, and frozen-evidence checks. Existing `projectBoundedAgentContext`, `evaluateReferenceCandidateFidelity`, and `prepareReferenceCorrection` remain the projection/evaluation owners. No evidence schema changed.
18
-
19
- ## 4. Actual and reference projections
20
-
21
- Actual mode carries exact workflow/request and annotation identities, baseline identity and clauses, and all per-change clauses including protected/preserved categories. Reference mode carries exact approved-reference identity and bounded requirements, explicit bindings, optional coherent contract clauses, canonical fidelity-derived context, and binding target focus IDs. A `not-evaluated` fidelity result fails closed. When v0.7 prerequisites exist, the exact `prepareReferenceCorrection` review ID is exposed; otherwise an explicit narrow `not-applicable` reason is returned without a fabricated ID.
22
-
23
- ## 5. Context and external coordination
24
-
25
- Observer-generated bounded context is primary. No context file omits supplemental context; unsupported versions fail; coherent valid context is included unchanged, retaining static producer/correlation ownership. The application never invokes my-dev-kit. Optional coordination accepts only provider `my-dev-kit-orchestrator` and a bounded non-path run ID/version. It is handoff-only traceability and is never persisted to the workflow or inspected on disk.
26
-
27
- ## 6. Post-edit contract and Viewer
28
-
29
- Every handoff contains `{ command: 'check', baselineAlias: <exact Batch 2 alias>, json: true }` and the Viewer renders `my-frontend-observer check <alias> --json`. The secured project-aware route is `POST /api/visual-changes/:handle/prepare-handoff`. Active, non-restored workflows expose Prepare handoff, optional coordination fields, a bounded summary, Copy handoff, and Download handoff. Copy/download share canonical serialization and the filename `visual-change-handoff-<workflowId>.json`. Preparation creates no attempt, check, review, source edit, handoff artifact, or orchestrator action.
30
-
31
- ## 7. Disposable published-orchestrator compatibility proof
32
-
33
- - Published version: `1.4.1`; installed under `.my-dev-kit-workflow/tools/v0.10-batch6/orchestrator-1.4.1/`; version plus `init/start/status/export --help` passed.
34
- - Root: `.my-dev-kit-workflow/v0.10-batch6/orchestrator-proof/project/`.
35
- - A real application-owner-generated `observer-visual-change-handoff.json` was referenced by an ordinary feature request specifying external editing and the exact Observer check command.
36
- - Run ID: `20260922T121702-observer-handoff-proof`.
37
- - `status` honestly remained at request-brief with 0/10 artifacts and a blocked final report. `export` produced `orchestrator-export.txt` retaining the run identity. No run was advanced or completed.
38
- - SHA comparison proved handoff bytes unchanged. Observer source/evidence remained unchanged. A second generated handoff round-tripped provider, run ID, and package version without changing Observer workflow/request identity.
39
- - No orchestrator dependency was added and no production Observer code invokes or reads orchestrator state.
40
-
41
- ## 8. Browser, security, regressions, and validation
42
-
43
- The actual-mode real-Chromium ACCEPTANCE GATE starts from a fresh project/workflow, prepares and inspects a handoff, checks the exact command, copies and downloads identical canonical JSON, verifies the filename, and proves the active workflow remains byte-identical with zero attempts and no check. Reference application tests cover exact requirements/bindings, canonical fidelity, focused context, protected/preserved projection, and both v0.7 trace states.
44
-
45
- - Typecheck: PASS.
46
- - Lint: PASS.
47
- - Unit: PASS, 99 files / 1,514 tests.
48
- - Browser: PASS, 30 files / 280 tests.
49
- - Security: PASS, 16 unit files / 168 tests plus 3 browser files / 77 tests and the hard gate.
50
- - PWA hard gate: PASS; `/api/` remains uncached and Batch 5 synchronization is unchanged.
51
- - Build: PASS.
52
- - Documentation check: PASS.
53
- - `git diff --check`: PASS (line-ending notices only).
54
- - Batch 1-5, bounded-context, and reference-correction regressions pass. Viewer protocol remains `1.3.0`.
55
-
56
- ## 9. Frozen responsibility ledger
57
-
58
- Each line names the concrete test owner and test name (or canonical shared suite) that proves the responsibility.
59
-
60
- - TST-B6-001..004 — `visualChangeAgentHandoffService.test.ts` — `rejects inactive, restored, acceptance-drifted, and baseline-drifted workflows through the shared readiness owner` — PASS.
61
- - TST-B6-005..013 — `visualChangeAgentHandoffService.test.ts` — `projects exact actual scope and bounded context without checking, capturing, editing, or persisting a handoff` — PASS.
62
- - TST-B6-014..018, TST-B6-022..026 — `visualChangeAgentHandoffService.test.ts` — `projects canonical reference fidelity, exact requirements/bindings, focus targets, and an honest not-applicable correction trace` — PASS.
63
- - TST-B6-019..021 — `visualChangeAgentHandoffService.test.ts` — `reuses the canonical v0.7 reference correction identity when its exact contract preconditions apply` — PASS.
64
- - TST-B6-027..035 — `visualChangeAgentHandoffService.test.ts` — `includes coherent supplemental context verbatim and rejects unsupported or mismatched context` plus actual/reference projection tests — PASS.
65
- - TST-B6-036..043 — `visualChangeAgentHandoff.test.ts` — `accepts only bounded opaque orchestrator correlation and changes no workflow semantics`; disposable CLI proof — PASS.
66
- - TST-B6-044..048 — `visualChangeAgentHandoffService.test.ts` actual projection and `runtimeAnnotationContractPromotion.test.ts` ACCEPTANCE GATE — PASS.
67
- - TST-B6-049..057 — `visualChangeAgentHandoff.test.ts` — `uses the exact non-artifact kind/version, validates the closed bounded contract, and serializes deterministically with a newline`; unchanged canonical schema suites — PASS.
68
- - TST-B6-058..060 — `viewerVisualChangeAuthoring.test.ts` — `keeps every POST project-aware, token/Host/Origin/JSON guarded, closed, bounded, and no-store`; browser ACCEPTANCE GATE — PASS.
69
- - TST-B6-061..069 — `runtimeAnnotationContractPromotion.test.ts` — `ACCEPTANCE GATE: creates an inactive actual workflow from confirmed runtime intent and explicitly activates its immutable revision`; contract tests — PASS.
70
- - TST-B6-070 — `visualChangeWorkflow.test.ts` canonical Batch 1 suite — PASS.
71
- - TST-B6-071 — `visualChangeProjectWorkflowService.test.ts` canonical Batch 2 suite — PASS.
72
- - TST-B6-072 — Viewer/security canonical suites — PASS.
73
- - TST-B6-073 — `runtimeAnnotationContractPromotion.test.ts` actual entry flow — PASS.
74
- - TST-B6-074 — Batch 5 reference route/workspace/browser suites — PASS.
75
- - TST-B6-075 — `boundedAgentContext*.test.ts` canonical suites — PASS.
76
- - TST-B6-076 — `referenceCorrectionWorkflow.test.ts` canonical suite — PASS.
77
- - TST-B6-077 — `viewerAuthoringSecurity.test.ts` — `keeps existing read-only routes answering GET and HEAD in authoring mode` — PASS (`1.3.0`).
78
-
79
- ## 10. Full-file read accounting
80
-
81
- Full source/test file reads: none. Retrieval used my-dev-kit search, lookup, slice, exact source, continuation/dependency expansion, then bounded PowerShell ranges only.
82
-
83
- ## 11. Batch 7+ exclusions and handoff
84
-
85
- No source editing, agent/LLM execution, automatic check, attempt recording, correction/review/accept/abandon behavior, governance, release, or orchestrator runtime integration was implemented. Batch 7 should begin from the committed Batch 6 result and add only the separately planned review/correction behavior.
1
+ # v0.10 Batch 6 Coding-Agent Handoff
2
+
3
+ ## 1. Verdict and repository
4
+
5
+ PASS. Repository `C:\Users\daile\Projects\my-frontend-observer`, branch `feature/v0.10-full-visual-workflow`, starting commit `ac79b2c41e53ac36c825c4b398bbeb4856d5db0e`.
6
+
7
+ ## 2. Retrieval and fresh index
8
+
9
+ - Resolved my-dev-kit: `1.12.4`; CLI identity and `index`, `search`, `lookup`, `slice`, `source`, `graph-diff`, and `context` were verified.
10
+ - Install: `.my-dev-kit-workflow/tools/v0.10-batch6/mdk-1.12.4/`.
11
+ - Index: `.my-dev-kit-context/indexes/my-frontend-observer-v0.10-batch6-20260922`.
12
+ - Command: `node .my-dev-kit-workflow/tools/v0.10-batch6/mdk-1.12.4/node_modules/@dailephd/my-dev-kit/dist/cli.js index --root C:\Users\daile\Projects\my-frontend-observer --src src --src viewer/src --src tests --src scripts --out C:\Users\daile\Projects\my-frontend-observer\.my-dev-kit-context\indexes\my-frontend-observer-v0.10-batch6-20260922 --call-graph --json`.
13
+ - Result: 306 files, 2,487 symbols, 4,796 edges, zero index warnings/errors. Frontend analysis was complete; data-model and classification were partial with 834 and 2,436 warnings.
14
+
15
+ ## 3. Contract and canonical owners
16
+
17
+ `VisualChangeAgentHandoff` is a non-persisted, closed `my-frontend-observer/visual-change-agent-handoff` `1.0.0` transfer contract with deterministic canonical JSON and a terminal newline. Batch 2 readiness was extracted into `prepareActiveVisualChangeWorkflow`; canonical check recording and handoff preparation now share activation, restoration, acceptance-drift, exact-alias, and frozen-evidence checks. Existing `projectBoundedAgentContext`, `evaluateReferenceCandidateFidelity`, and `prepareReferenceCorrection` remain the projection/evaluation owners. No evidence schema changed.
18
+
19
+ ## 4. Actual and reference projections
20
+
21
+ Actual mode carries exact workflow/request and annotation identities, baseline identity and clauses, and all per-change clauses including protected/preserved categories. Reference mode carries exact approved-reference identity and bounded requirements, explicit bindings, optional coherent contract clauses, canonical fidelity-derived context, and binding target focus IDs. A `not-evaluated` fidelity result fails closed. When v0.7 prerequisites exist, the exact `prepareReferenceCorrection` review ID is exposed; otherwise an explicit narrow `not-applicable` reason is returned without a fabricated ID.
22
+
23
+ ## 5. Context and external coordination
24
+
25
+ Observer-generated bounded context is primary. No context file omits supplemental context; unsupported versions fail; coherent valid context is included unchanged, retaining static producer/correlation ownership. The application never invokes my-dev-kit. Optional coordination accepts only provider `my-dev-kit-orchestrator` and a bounded non-path run ID/version. It is handoff-only traceability and is never persisted to the workflow or inspected on disk.
26
+
27
+ ## 6. Post-edit contract and Viewer
28
+
29
+ Every handoff contains `{ command: 'check', baselineAlias: <exact Batch 2 alias>, json: true }` and the Viewer renders `my-frontend-observer check <alias> --json`. The secured project-aware route is `POST /api/visual-changes/:handle/prepare-handoff`. Active, non-restored workflows expose Prepare handoff, optional coordination fields, a bounded summary, Copy handoff, and Download handoff. Copy/download share canonical serialization and the filename `visual-change-handoff-<workflowId>.json`. Preparation creates no attempt, check, review, source edit, handoff artifact, or orchestrator action.
30
+
31
+ ## 7. Disposable published-orchestrator compatibility proof
32
+
33
+ - Published version: `1.4.1`; installed under `.my-dev-kit-workflow/tools/v0.10-batch6/orchestrator-1.4.1/`; version plus `init/start/status/export --help` passed.
34
+ - Root: `.my-dev-kit-workflow/v0.10-batch6/orchestrator-proof/project/`.
35
+ - A real application-owner-generated `observer-visual-change-handoff.json` was referenced by an ordinary feature request specifying external editing and the exact Observer check command.
36
+ - Run ID: `20260922T121702-observer-handoff-proof`.
37
+ - `status` honestly remained at request-brief with 0/10 artifacts and a blocked final report. `export` produced `orchestrator-export.txt` retaining the run identity. No run was advanced or completed.
38
+ - SHA comparison proved handoff bytes unchanged. Observer source/evidence remained unchanged. A second generated handoff round-tripped provider, run ID, and package version without changing Observer workflow/request identity.
39
+ - No orchestrator dependency was added and no production Observer code invokes or reads orchestrator state.
40
+
41
+ ## 8. Browser, security, regressions, and validation
42
+
43
+ The actual-mode real-Chromium ACCEPTANCE GATE starts from a fresh project/workflow, prepares and inspects a handoff, checks the exact command, copies and downloads identical canonical JSON, verifies the filename, and proves the active workflow remains byte-identical with zero attempts and no check. Reference application tests cover exact requirements/bindings, canonical fidelity, focused context, protected/preserved projection, and both v0.7 trace states.
44
+
45
+ - Typecheck: PASS.
46
+ - Lint: PASS.
47
+ - Unit: PASS, 99 files / 1,514 tests.
48
+ - Browser: PASS, 30 files / 280 tests.
49
+ - Security: PASS, 16 unit files / 168 tests plus 3 browser files / 77 tests and the hard gate.
50
+ - PWA hard gate: PASS; `/api/` remains uncached and Batch 5 synchronization is unchanged.
51
+ - Build: PASS.
52
+ - Documentation check: PASS.
53
+ - `git diff --check`: PASS (line-ending notices only).
54
+ - Batch 1-5, bounded-context, and reference-correction regressions pass. Viewer protocol remains `1.3.0`.
55
+
56
+ ## 9. Frozen responsibility ledger
57
+
58
+ Each line names the concrete test owner and test name (or canonical shared suite) that proves the responsibility.
59
+
60
+ - TST-B6-001..004 — `visualChangeAgentHandoffService.test.ts` — `rejects inactive, restored, acceptance-drifted, and baseline-drifted workflows through the shared readiness owner` — PASS.
61
+ - TST-B6-005..013 — `visualChangeAgentHandoffService.test.ts` — `projects exact actual scope and bounded context without checking, capturing, editing, or persisting a handoff` — PASS.
62
+ - TST-B6-014..018, TST-B6-022..026 — `visualChangeAgentHandoffService.test.ts` — `projects canonical reference fidelity, exact requirements/bindings, focus targets, and an honest not-applicable correction trace` — PASS.
63
+ - TST-B6-019..021 — `visualChangeAgentHandoffService.test.ts` — `reuses the canonical v0.7 reference correction identity when its exact contract preconditions apply` — PASS.
64
+ - TST-B6-027..035 — `visualChangeAgentHandoffService.test.ts` — `includes coherent supplemental context verbatim and rejects unsupported or mismatched context` plus actual/reference projection tests — PASS.
65
+ - TST-B6-036..043 — `visualChangeAgentHandoff.test.ts` — `accepts only bounded opaque orchestrator correlation and changes no workflow semantics`; disposable CLI proof — PASS.
66
+ - TST-B6-044..048 — `visualChangeAgentHandoffService.test.ts` actual projection and `runtimeAnnotationContractPromotion.test.ts` ACCEPTANCE GATE — PASS.
67
+ - TST-B6-049..057 — `visualChangeAgentHandoff.test.ts` — `uses the exact non-artifact kind/version, validates the closed bounded contract, and serializes deterministically with a newline`; unchanged canonical schema suites — PASS.
68
+ - TST-B6-058..060 — `viewerVisualChangeAuthoring.test.ts` — `keeps every POST project-aware, token/Host/Origin/JSON guarded, closed, bounded, and no-store`; browser ACCEPTANCE GATE — PASS.
69
+ - TST-B6-061..069 — `runtimeAnnotationContractPromotion.test.ts` — `ACCEPTANCE GATE: creates an inactive actual workflow from confirmed runtime intent and explicitly activates its immutable revision`; contract tests — PASS.
70
+ - TST-B6-070 — `visualChangeWorkflow.test.ts` canonical Batch 1 suite — PASS.
71
+ - TST-B6-071 — `visualChangeProjectWorkflowService.test.ts` canonical Batch 2 suite — PASS.
72
+ - TST-B6-072 — Viewer/security canonical suites — PASS.
73
+ - TST-B6-073 — `runtimeAnnotationContractPromotion.test.ts` actual entry flow — PASS.
74
+ - TST-B6-074 — Batch 5 reference route/workspace/browser suites — PASS.
75
+ - TST-B6-075 — `boundedAgentContext*.test.ts` canonical suites — PASS.
76
+ - TST-B6-076 — `referenceCorrectionWorkflow.test.ts` canonical suite — PASS.
77
+ - TST-B6-077 — `viewerAuthoringSecurity.test.ts` — `keeps existing read-only routes answering GET and HEAD in authoring mode` — PASS (`1.3.0`).
78
+
79
+ ## 10. Full-file read accounting
80
+
81
+ Full source/test file reads: none. Retrieval used my-dev-kit search, lookup, slice, exact source, continuation/dependency expansion, then bounded PowerShell ranges only.
82
+
83
+ ## 11. Batch 7+ exclusions and handoff
84
+
85
+ No source editing, agent/LLM execution, automatic check, attempt recording, correction/review/accept/abandon behavior, governance, release, or orchestrator runtime integration was implemented. Batch 7 should begin from the committed Batch 6 result and add only the separately planned review/correction behavior.
@@ -1,145 +1,145 @@
1
- # v0.10 Batch 7 Correction, Review, and Acceptance
2
-
3
- ## Verdict and correction history
4
-
5
- PASS. The initial result remained `NEEDS_CORRECTION` because production was green but the frozen acceptance evidence was incomplete. This continuation preserved that implementation and added the missing canonical, browser, identity, and governance proofs. No production redesign was required.
6
-
7
- - Repository: `C:\Users\daile\Projects\my-frontend-observer`
8
- - Starting commit: `5db4d93bc5e39812da694aedbbc4f51de152114e`
9
- - Branch: `feature/v0.10-full-visual-workflow`
10
- - Package remains `0.9.1`.
11
- - my-dev-kit: `1.12.4`, pinned and CLI-verified under `.my-dev-kit-workflow/tools/v0.10-batch7-correction/`.
12
- - Fresh correction index: `.my-dev-kit-context/indexes/my-frontend-observer-v0.10-batch7-correction-20260922`; `src viewer/src tests scripts`, call graph, 317 files, 2,559 symbols, 4,979 edges, zero top-level warnings/errors. Data-model/classification were partial (872/2,509 warnings); frontend analyzers were complete.
13
-
14
- ## Result
15
-
16
- The pure cycle owner derives initial, review-required, correction-requested, accepted, and abandoned without schema persistence. Check and handoff share it. Review owns `decidedAt`, changes only the latest review in an immutable child, preserves request/attempt/candidate/check identity, uses active-scope readiness for correction and acceptance, and accepts only the latest canonical PASS. Abandon is terminal without requiring active acceptance. Restore remains separately explicit.
17
-
18
- Applicable reference checks reuse `buildReferenceCorrectionReviewIdentity` and `buildReferenceCorrectionAttemptIdentity`; `checkProject` runs once and `reviewReferenceCorrectionAttempt` is not called. Orchestrator metadata is non-authoritative.
19
-
20
- Governance records only already-persisted canonical results after acceptance. The baseline proof calls `approveAndPersistBaseline` for the exact accepted candidate before recording it. The reference proof imports a successor and calls `approveExternalReference` with the exact frozen predecessor before recording it. Both create immutable workflow children, reject mismatch/overwrite, preserve parents, and leave project configuration unchanged. Acceptance itself leaves governance absent and calls no approval or restore owner.
21
-
22
- The independent Chromium ACCEPTANCE GATE owns a mutable loopback frontend. External edit 1 passes the requested shrink but fails protected rail width, so canonical checking records FAIL and pending review blocks check/handoff/Accept. Request correction creates an immutable child. External edit 2 produces distinct candidate/attempt IDs, immediate lineage, PASS, and acceptance. The original active manifest bytes remain unchanged; governance remains absent; acceptance is not restored; continuation becomes terminal.
23
-
24
- Canonical reference precedence is proved by `Proof B: the external actor satisfies the reference but introduces a protected regression - overall FAIL`. The reference visual-workflow test then proves one check per candidate, common deterministic v0.7 review identity, distinct reference attempt identities, lineage, and PASS-only acceptance. Existing Proof C independently exercises two real canonical reference candidates.
25
-
26
- ## TST-B7-001..087 responsibility ledger
27
-
28
- Abbreviations: `service` = `tests/unit/visualChangeAgentHandoffService.test.ts`; `viewer` = `tests/unit/viewerVisualChangeAuthoring.test.ts`; `actual-gate` = `tests/browser/visualChangeCorrectionAcceptance.test.ts`; `reference-proof` = `tests/browser/referenceCorrectionWorkflow.test.ts`.
29
-
30
- - TST-B7-001 — service — “derives the canonical cycle and rejects review with zero attempts” — existing-covered — no-attempt review rejected.
31
- - TST-B7-002 — service — “enforces terminal transitions and permits abandonment…” — existing-covered — pending FAIL to correction.
32
- - TST-B7-003 — service — “accepts only the latest canonical PASS…” — existing-covered — pending PASS to correction.
33
- - TST-B7-004 — service — “accepts only the latest canonical PASS…” — existing-covered — pending PASS accepted.
34
- - TST-B7-005 — service — “rejects non-PASS acceptance…” — existing-covered — FAIL rejected.
35
- - TST-B7-006 — service — “rejects non-PASS acceptance…” — existing-covered — BLOCKED rejected.
36
- - TST-B7-007 — service — “rejects non-PASS acceptance…” — existing-covered — REVIEW_REQUIRED rejected.
37
- - TST-B7-008 — service — “enforces terminal transitions…” — existing-covered — pending abandoned.
38
- - TST-B7-009 — service — “enforces terminal transitions…” — existing-covered — correction abandoned.
39
- - TST-B7-010 — service — “enforces terminal transitions…” — existing-covered — correction cannot accept.
40
- - TST-B7-011 — service — “runs the explicit FAIL -> correction -> PASS loop…” — existing-covered — accepted terminal.
41
- - TST-B7-012 — service — “enforces terminal transitions…” — existing-covered — abandoned terminal.
42
- - TST-B7-013 — service — “accepts only the latest canonical PASS…” — existing-covered — server decidedAt.
43
- - TST-B7-014 — service — same test — existing-covered — attempt ID unchanged.
44
- - TST-B7-015 — service — same test — existing-covered — candidate/check/recordedAt unchanged.
45
- - TST-B7-016 — service — same test — existing-covered — fresh workflow ID.
46
- - TST-B7-017 — service — same test — existing-covered — request ID preserved.
47
- - TST-B7-018 — service — same test — existing-covered — child supersedes parent.
48
- - TST-B7-019 — service — “runs the explicit FAIL -> correction -> PASS loop…” — existing-covered — parent bytes unchanged.
49
- - TST-B7-020 — actual-gate — “ACCEPTANCE GATE: external FAIL edit…” — newly-covered — first check allowed.
50
- - TST-B7-021 — service — “blocks check and handoff while pending…” — existing-covered — second check blocked.
51
- - TST-B7-022 — service — same test — existing-covered — handoff blocked.
52
- - TST-B7-023 — service — same test — existing-covered — correction enables handoff.
53
- - TST-B7-024 — actual-gate — ACCEPTANCE GATE — newly-covered — correction enables check.
54
- - TST-B7-025 — service — explicit loop — existing-covered — immediate prior ID.
55
- - TST-B7-026 — actual-gate — ACCEPTANCE GATE — newly-covered — candidate IDs differ.
56
- - TST-B7-027 — actual-gate — ACCEPTANCE GATE — newly-covered — attempt IDs differ.
57
- - TST-B7-028 — actual-gate — ACCEPTANCE GATE — newly-covered — request ID stable.
58
- - TST-B7-029 — service — explicit loop — existing-covered — new attempt pending.
59
- - TST-B7-030 — service — explicit loop — existing-covered — accepted blocks check.
60
- - TST-B7-031 — service — explicit loop — existing-covered — accepted blocks handoff.
61
- - TST-B7-032 — service — terminal-transition test — existing-covered — abandoned blocks check.
62
- - TST-B7-033 — service — terminal-transition test — existing-covered — abandoned blocks handoff.
63
- - TST-B7-034 — service — “runs the reference two-candidate correction gate…” — newly-covered — canonical review builder.
64
- - TST-B7-035 — service — same test — newly-covered — canonical attempt builder.
65
- - TST-B7-036 — viewer — “keeps every POST project-aware…closed…” — existing-covered — browser supplies no trace ID.
66
- - TST-B7-037 — service — reference two-candidate test — newly-covered — one check per attempt/no second evaluator.
67
- - TST-B7-038 — service — same test — newly-covered — distinct reference attempt IDs.
68
- - TST-B7-039 — service — same test — newly-covered — common review request ID.
69
- - TST-B7-040 — service — “projects canonical reference fidelity…not-applicable…” — existing-covered — omitted when inapplicable.
70
- - TST-B7-041 — actual-gate — ACCEPTANCE GATE — newly-covered — requested PASS/protected FAIL stores FAIL and blocks Accept.
71
- - TST-B7-042 — reference-proof — “Proof B: … protected regression - overall FAIL” plus service reference loop — newly-covered — fidelity PASS/contract FAIL/accept rejected.
72
- - TST-B7-043 — service — latest-PASS test — existing-covered — earlier PASS cannot authorize latest FAIL.
73
- - TST-B7-044 — service — latest-PASS test — existing-covered — only latest PASS accepted.
74
- - TST-B7-045 — service — non-PASS/orchestrator test — existing-covered — coordination cannot authorize.
75
- - TST-B7-046 — service — same test — existing-covered — no orchestrator invocation.
76
- - TST-B7-047 — actual-gate — ACCEPTANCE GATE — newly-covered — no baseline approval on accept.
77
- - TST-B7-048 — actual-gate — ACCEPTANCE GATE — newly-covered — no reference approval on accept.
78
- - TST-B7-049 — service — canonical governance tests — existing-covered — acceptance/config separation.
79
- - TST-B7-050 — actual-gate — ACCEPTANCE GATE — newly-covered — no automatic restore.
80
- - TST-B7-051 — service — governance tests — existing-covered — pre-acceptance record rejected.
81
- - TST-B7-052 — service — “records only a canonically approved candidate-matching baseline…” — newly-covered — approval service succeeds first.
82
- - TST-B7-053 — service — same test — newly-covered — matching approval recorded.
83
- - TST-B7-054 — service — same test — newly-covered — unrelated observation rejected.
84
- - TST-B7-055 — service — same test — newly-covered — baseline overwrite rejected.
85
- - TST-B7-056 — service — “records a canonically approved superseding reference…” — newly-covered — approval owner succeeds first.
86
- - TST-B7-057 — service — same test — newly-covered — exact successor recorded.
87
- - TST-B7-058 — service — same test — newly-covered — unrelated successor rejected.
88
- - TST-B7-059 — service — same test — newly-covered — reference overwrite rejected.
89
- - TST-B7-060 — service — same test — existing-covered — actual mode rejects reference result.
90
- - TST-B7-061 — service — governance tests — existing-covered — immutable child.
91
- - TST-B7-062 — service — governance tests — existing-covered — parent unchanged.
92
- - TST-B7-063 — service — governance tests — newly-covered — config unchanged.
93
- - TST-B7-064 — service — governance tests — newly-covered — recording performs no approval.
94
- - TST-B7-065 — actual-gate — ACCEPTANCE GATE — newly-covered — Request correction shown.
95
- - TST-B7-066 — actual-gate — ACCEPTANCE GATE — newly-covered — Abandon shown.
96
- - TST-B7-067 — actual-gate — ACCEPTANCE GATE — newly-covered — PASS Accept enabled.
97
- - TST-B7-068 — actual-gate — ACCEPTANCE GATE — newly-covered — FAIL Accept disabled.
98
- - TST-B7-069 — viewer — closed POST test — existing-covered — decision-only request.
99
- - TST-B7-070 — actual-gate — ACCEPTANCE GATE — newly-covered — exact child reselection.
100
- - TST-B7-071 — actual-gate — ACCEPTANCE GATE — newly-covered — correction continuation UI.
101
- - TST-B7-072 — actual-gate — ACCEPTANCE GATE — newly-covered — accepted terminal UI.
102
- - TST-B7-073 — viewer — Viewer workflow test — existing-covered — abandoned terminal UI.
103
- - TST-B7-074 — actual-gate — ACCEPTANCE GATE — newly-covered — no auto restore.
104
- - TST-B7-075 — viewer — Viewer workflow test — existing-covered — accepted governance section.
105
- - TST-B7-076 — viewer — closed POST test — existing-covered — exact evidence handle.
106
- - TST-B7-077 — viewer — Viewer workflow test — existing-covered — governance exact reselection.
107
- - TST-B7-078 — viewer — secured closed POST test — existing-covered — no token/path leak.
108
- - TST-B7-079 — `tests/unit/visualChangeWorkflow.test.ts` — workflow identity suite — shared-regression-covered.
109
- - TST-B7-080 — `tests/unit/visualChangeProjectWorkflowService.test.ts` — activation/check suite — shared-regression-covered.
110
- - TST-B7-081 — `tests/unit/viewerAuthoringSecurity.test.ts` — Viewer/security suite — shared-regression-covered.
111
- - TST-B7-082 — `tests/browser/visualChangeActualEntry.test.ts` — actual entry gate — shared-regression-covered.
112
- - TST-B7-083 — `tests/browser/visualChangeReferenceEntry.test.ts` — reference entry gate — shared-regression-covered.
113
- - TST-B7-084 — `tests/browser/visualChangeHandoff.test.ts` — handoff acceptance — shared-regression-covered.
114
- - TST-B7-085 — `tests/unit/projectBoundedAgentContext.test.ts` — bounded-context suite — shared-regression-covered.
115
- - TST-B7-086 — reference-proof — Proof A/B/C suite — shared-regression-covered.
116
- - TST-B7-087 — `tests/unit/viewerProtocol.test.ts` — protocol 1.3.0 — shared-regression-covered.
117
-
118
- Every responsibility has a named passing test; none is implementation-only coverage.
119
-
120
- ## Validation
121
-
122
- - Focused actual gate: PASS, 1/1.
123
- - Focused canonical project/reference files: PASS, 2 files / 11 tests.
124
- - Focused service/review/governance/reference identity: PASS, 15/15.
125
- - `npm run typecheck`: PASS.
126
- - `npm run lint`: PASS.
127
- - `npm test`: PASS, 99 files / 1,524 tests.
128
- - `npm run test:browser`: PASS after additions, 31 files / 281 tests.
129
- - `npm run test:security`: PASS (168 unit security tests, 77 browser tests, nested hard gate PASS).
130
- - `npm run test:pwa-hard-gate`: PASS independently. The state-based active/scope/controller/precache/no-API-cache/server-down/offline/no-stale-evidence/cleanup proof remains intact.
131
- - `npm run build`: PASS; PWA 1.3.0, 10 precache entries.
132
- - `npm run check:docs`: PASS after this update.
133
- - `git diff --check`: PASS after this update.
134
-
135
- Visual-change and bounded-agent-context schemas remain `1.0.0`; all other governed schemas are unchanged; Viewer protocol remains `1.3.0`.
136
-
137
- ## Full-file read accounting
138
-
139
- Full source/test file reads: none. Retrieval used my-dev-kit search, lookup, slices/exact source, dependency expansion, and bounded ranges.
140
-
141
- Correction-run additional full source/test file reads: none.
142
-
143
- ## Batch 8 exclusion and handoff
144
-
145
- No Batch 8 integrated matrix, packaging, release reconciliation, version bump, readiness, PR, merge, tag, or publication work was performed. Exact next action is separately authorized Batch 8 execution from the committed Batch 7 result.
1
+ # v0.10 Batch 7 Correction, Review, and Acceptance
2
+
3
+ ## Verdict and correction history
4
+
5
+ PASS. The initial result remained `NEEDS_CORRECTION` because production was green but the frozen acceptance evidence was incomplete. This continuation preserved that implementation and added the missing canonical, browser, identity, and governance proofs. No production redesign was required.
6
+
7
+ - Repository: `C:\Users\daile\Projects\my-frontend-observer`
8
+ - Starting commit: `5db4d93bc5e39812da694aedbbc4f51de152114e`
9
+ - Branch: `feature/v0.10-full-visual-workflow`
10
+ - Package remains `0.9.1`.
11
+ - my-dev-kit: `1.12.4`, pinned and CLI-verified under `.my-dev-kit-workflow/tools/v0.10-batch7-correction/`.
12
+ - Fresh correction index: `.my-dev-kit-context/indexes/my-frontend-observer-v0.10-batch7-correction-20260922`; `src viewer/src tests scripts`, call graph, 317 files, 2,559 symbols, 4,979 edges, zero top-level warnings/errors. Data-model/classification were partial (872/2,509 warnings); frontend analyzers were complete.
13
+
14
+ ## Result
15
+
16
+ The pure cycle owner derives initial, review-required, correction-requested, accepted, and abandoned without schema persistence. Check and handoff share it. Review owns `decidedAt`, changes only the latest review in an immutable child, preserves request/attempt/candidate/check identity, uses active-scope readiness for correction and acceptance, and accepts only the latest canonical PASS. Abandon is terminal without requiring active acceptance. Restore remains separately explicit.
17
+
18
+ Applicable reference checks reuse `buildReferenceCorrectionReviewIdentity` and `buildReferenceCorrectionAttemptIdentity`; `checkProject` runs once and `reviewReferenceCorrectionAttempt` is not called. Orchestrator metadata is non-authoritative.
19
+
20
+ Governance records only already-persisted canonical results after acceptance. The baseline proof calls `approveAndPersistBaseline` for the exact accepted candidate before recording it. The reference proof imports a successor and calls `approveExternalReference` with the exact frozen predecessor before recording it. Both create immutable workflow children, reject mismatch/overwrite, preserve parents, and leave project configuration unchanged. Acceptance itself leaves governance absent and calls no approval or restore owner.
21
+
22
+ The independent Chromium ACCEPTANCE GATE owns a mutable loopback frontend. External edit 1 passes the requested shrink but fails protected rail width, so canonical checking records FAIL and pending review blocks check/handoff/Accept. Request correction creates an immutable child. External edit 2 produces distinct candidate/attempt IDs, immediate lineage, PASS, and acceptance. The original active manifest bytes remain unchanged; governance remains absent; acceptance is not restored; continuation becomes terminal.
23
+
24
+ Canonical reference precedence is proved by `Proof B: the external actor satisfies the reference but introduces a protected regression - overall FAIL`. The reference visual-workflow test then proves one check per candidate, common deterministic v0.7 review identity, distinct reference attempt identities, lineage, and PASS-only acceptance. Existing Proof C independently exercises two real canonical reference candidates.
25
+
26
+ ## TST-B7-001..087 responsibility ledger
27
+
28
+ Abbreviations: `service` = `tests/unit/visualChangeAgentHandoffService.test.ts`; `viewer` = `tests/unit/viewerVisualChangeAuthoring.test.ts`; `actual-gate` = `tests/browser/visualChangeCorrectionAcceptance.test.ts`; `reference-proof` = `tests/browser/referenceCorrectionWorkflow.test.ts`.
29
+
30
+ - TST-B7-001 — service — “derives the canonical cycle and rejects review with zero attempts” — existing-covered — no-attempt review rejected.
31
+ - TST-B7-002 — service — “enforces terminal transitions and permits abandonment…” — existing-covered — pending FAIL to correction.
32
+ - TST-B7-003 — service — “accepts only the latest canonical PASS…” — existing-covered — pending PASS to correction.
33
+ - TST-B7-004 — service — “accepts only the latest canonical PASS…” — existing-covered — pending PASS accepted.
34
+ - TST-B7-005 — service — “rejects non-PASS acceptance…” — existing-covered — FAIL rejected.
35
+ - TST-B7-006 — service — “rejects non-PASS acceptance…” — existing-covered — BLOCKED rejected.
36
+ - TST-B7-007 — service — “rejects non-PASS acceptance…” — existing-covered — REVIEW_REQUIRED rejected.
37
+ - TST-B7-008 — service — “enforces terminal transitions…” — existing-covered — pending abandoned.
38
+ - TST-B7-009 — service — “enforces terminal transitions…” — existing-covered — correction abandoned.
39
+ - TST-B7-010 — service — “enforces terminal transitions…” — existing-covered — correction cannot accept.
40
+ - TST-B7-011 — service — “runs the explicit FAIL -> correction -> PASS loop…” — existing-covered — accepted terminal.
41
+ - TST-B7-012 — service — “enforces terminal transitions…” — existing-covered — abandoned terminal.
42
+ - TST-B7-013 — service — “accepts only the latest canonical PASS…” — existing-covered — server decidedAt.
43
+ - TST-B7-014 — service — same test — existing-covered — attempt ID unchanged.
44
+ - TST-B7-015 — service — same test — existing-covered — candidate/check/recordedAt unchanged.
45
+ - TST-B7-016 — service — same test — existing-covered — fresh workflow ID.
46
+ - TST-B7-017 — service — same test — existing-covered — request ID preserved.
47
+ - TST-B7-018 — service — same test — existing-covered — child supersedes parent.
48
+ - TST-B7-019 — service — “runs the explicit FAIL -> correction -> PASS loop…” — existing-covered — parent bytes unchanged.
49
+ - TST-B7-020 — actual-gate — “ACCEPTANCE GATE: external FAIL edit…” — newly-covered — first check allowed.
50
+ - TST-B7-021 — service — “blocks check and handoff while pending…” — existing-covered — second check blocked.
51
+ - TST-B7-022 — service — same test — existing-covered — handoff blocked.
52
+ - TST-B7-023 — service — same test — existing-covered — correction enables handoff.
53
+ - TST-B7-024 — actual-gate — ACCEPTANCE GATE — newly-covered — correction enables check.
54
+ - TST-B7-025 — service — explicit loop — existing-covered — immediate prior ID.
55
+ - TST-B7-026 — actual-gate — ACCEPTANCE GATE — newly-covered — candidate IDs differ.
56
+ - TST-B7-027 — actual-gate — ACCEPTANCE GATE — newly-covered — attempt IDs differ.
57
+ - TST-B7-028 — actual-gate — ACCEPTANCE GATE — newly-covered — request ID stable.
58
+ - TST-B7-029 — service — explicit loop — existing-covered — new attempt pending.
59
+ - TST-B7-030 — service — explicit loop — existing-covered — accepted blocks check.
60
+ - TST-B7-031 — service — explicit loop — existing-covered — accepted blocks handoff.
61
+ - TST-B7-032 — service — terminal-transition test — existing-covered — abandoned blocks check.
62
+ - TST-B7-033 — service — terminal-transition test — existing-covered — abandoned blocks handoff.
63
+ - TST-B7-034 — service — “runs the reference two-candidate correction gate…” — newly-covered — canonical review builder.
64
+ - TST-B7-035 — service — same test — newly-covered — canonical attempt builder.
65
+ - TST-B7-036 — viewer — “keeps every POST project-aware…closed…” — existing-covered — browser supplies no trace ID.
66
+ - TST-B7-037 — service — reference two-candidate test — newly-covered — one check per attempt/no second evaluator.
67
+ - TST-B7-038 — service — same test — newly-covered — distinct reference attempt IDs.
68
+ - TST-B7-039 — service — same test — newly-covered — common review request ID.
69
+ - TST-B7-040 — service — “projects canonical reference fidelity…not-applicable…” — existing-covered — omitted when inapplicable.
70
+ - TST-B7-041 — actual-gate — ACCEPTANCE GATE — newly-covered — requested PASS/protected FAIL stores FAIL and blocks Accept.
71
+ - TST-B7-042 — reference-proof — “Proof B: … protected regression - overall FAIL” plus service reference loop — newly-covered — fidelity PASS/contract FAIL/accept rejected.
72
+ - TST-B7-043 — service — latest-PASS test — existing-covered — earlier PASS cannot authorize latest FAIL.
73
+ - TST-B7-044 — service — latest-PASS test — existing-covered — only latest PASS accepted.
74
+ - TST-B7-045 — service — non-PASS/orchestrator test — existing-covered — coordination cannot authorize.
75
+ - TST-B7-046 — service — same test — existing-covered — no orchestrator invocation.
76
+ - TST-B7-047 — actual-gate — ACCEPTANCE GATE — newly-covered — no baseline approval on accept.
77
+ - TST-B7-048 — actual-gate — ACCEPTANCE GATE — newly-covered — no reference approval on accept.
78
+ - TST-B7-049 — service — canonical governance tests — existing-covered — acceptance/config separation.
79
+ - TST-B7-050 — actual-gate — ACCEPTANCE GATE — newly-covered — no automatic restore.
80
+ - TST-B7-051 — service — governance tests — existing-covered — pre-acceptance record rejected.
81
+ - TST-B7-052 — service — “records only a canonically approved candidate-matching baseline…” — newly-covered — approval service succeeds first.
82
+ - TST-B7-053 — service — same test — newly-covered — matching approval recorded.
83
+ - TST-B7-054 — service — same test — newly-covered — unrelated observation rejected.
84
+ - TST-B7-055 — service — same test — newly-covered — baseline overwrite rejected.
85
+ - TST-B7-056 — service — “records a canonically approved superseding reference…” — newly-covered — approval owner succeeds first.
86
+ - TST-B7-057 — service — same test — newly-covered — exact successor recorded.
87
+ - TST-B7-058 — service — same test — newly-covered — unrelated successor rejected.
88
+ - TST-B7-059 — service — same test — newly-covered — reference overwrite rejected.
89
+ - TST-B7-060 — service — same test — existing-covered — actual mode rejects reference result.
90
+ - TST-B7-061 — service — governance tests — existing-covered — immutable child.
91
+ - TST-B7-062 — service — governance tests — existing-covered — parent unchanged.
92
+ - TST-B7-063 — service — governance tests — newly-covered — config unchanged.
93
+ - TST-B7-064 — service — governance tests — newly-covered — recording performs no approval.
94
+ - TST-B7-065 — actual-gate — ACCEPTANCE GATE — newly-covered — Request correction shown.
95
+ - TST-B7-066 — actual-gate — ACCEPTANCE GATE — newly-covered — Abandon shown.
96
+ - TST-B7-067 — actual-gate — ACCEPTANCE GATE — newly-covered — PASS Accept enabled.
97
+ - TST-B7-068 — actual-gate — ACCEPTANCE GATE — newly-covered — FAIL Accept disabled.
98
+ - TST-B7-069 — viewer — closed POST test — existing-covered — decision-only request.
99
+ - TST-B7-070 — actual-gate — ACCEPTANCE GATE — newly-covered — exact child reselection.
100
+ - TST-B7-071 — actual-gate — ACCEPTANCE GATE — newly-covered — correction continuation UI.
101
+ - TST-B7-072 — actual-gate — ACCEPTANCE GATE — newly-covered — accepted terminal UI.
102
+ - TST-B7-073 — viewer — Viewer workflow test — existing-covered — abandoned terminal UI.
103
+ - TST-B7-074 — actual-gate — ACCEPTANCE GATE — newly-covered — no auto restore.
104
+ - TST-B7-075 — viewer — Viewer workflow test — existing-covered — accepted governance section.
105
+ - TST-B7-076 — viewer — closed POST test — existing-covered — exact evidence handle.
106
+ - TST-B7-077 — viewer — Viewer workflow test — existing-covered — governance exact reselection.
107
+ - TST-B7-078 — viewer — secured closed POST test — existing-covered — no token/path leak.
108
+ - TST-B7-079 — `tests/unit/visualChangeWorkflow.test.ts` — workflow identity suite — shared-regression-covered.
109
+ - TST-B7-080 — `tests/unit/visualChangeProjectWorkflowService.test.ts` — activation/check suite — shared-regression-covered.
110
+ - TST-B7-081 — `tests/unit/viewerAuthoringSecurity.test.ts` — Viewer/security suite — shared-regression-covered.
111
+ - TST-B7-082 — `tests/browser/visualChangeActualEntry.test.ts` — actual entry gate — shared-regression-covered.
112
+ - TST-B7-083 — `tests/browser/visualChangeReferenceEntry.test.ts` — reference entry gate — shared-regression-covered.
113
+ - TST-B7-084 — `tests/browser/visualChangeHandoff.test.ts` — handoff acceptance — shared-regression-covered.
114
+ - TST-B7-085 — `tests/unit/projectBoundedAgentContext.test.ts` — bounded-context suite — shared-regression-covered.
115
+ - TST-B7-086 — reference-proof — Proof A/B/C suite — shared-regression-covered.
116
+ - TST-B7-087 — `tests/unit/viewerProtocol.test.ts` — protocol 1.3.0 — shared-regression-covered.
117
+
118
+ Every responsibility has a named passing test; none is implementation-only coverage.
119
+
120
+ ## Validation
121
+
122
+ - Focused actual gate: PASS, 1/1.
123
+ - Focused canonical project/reference files: PASS, 2 files / 11 tests.
124
+ - Focused service/review/governance/reference identity: PASS, 15/15.
125
+ - `npm run typecheck`: PASS.
126
+ - `npm run lint`: PASS.
127
+ - `npm test`: PASS, 99 files / 1,524 tests.
128
+ - `npm run test:browser`: PASS after additions, 31 files / 281 tests.
129
+ - `npm run test:security`: PASS (168 unit security tests, 77 browser tests, nested hard gate PASS).
130
+ - `npm run test:pwa-hard-gate`: PASS independently. The state-based active/scope/controller/precache/no-API-cache/server-down/offline/no-stale-evidence/cleanup proof remains intact.
131
+ - `npm run build`: PASS; PWA 1.3.0, 10 precache entries.
132
+ - `npm run check:docs`: PASS after this update.
133
+ - `git diff --check`: PASS after this update.
134
+
135
+ Visual-change and bounded-agent-context schemas remain `1.0.0`; all other governed schemas are unchanged; Viewer protocol remains `1.3.0`.
136
+
137
+ ## Full-file read accounting
138
+
139
+ Full source/test file reads: none. Retrieval used my-dev-kit search, lookup, slices/exact source, dependency expansion, and bounded ranges.
140
+
141
+ Correction-run additional full source/test file reads: none.
142
+
143
+ ## Batch 8 exclusion and handoff
144
+
145
+ No Batch 8 integrated matrix, packaging, release reconciliation, version bump, readiness, PR, merge, tag, or publication work was performed. Exact next action is separately authorized Batch 8 execution from the committed Batch 7 result.