@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.
- package/CHANGELOG.md +490 -479
- package/LICENSE +21 -21
- package/README.md +375 -365
- package/dist/application/projectCheckService.d.ts +6 -0
- package/dist/application/projectCheckService.js +8 -1
- package/dist/application/projectCheckService.js.map +1 -1
- package/dist/application/projectWorkflowService.d.ts +7 -2
- package/dist/application/projectWorkflowService.js +10 -3
- package/dist/application/projectWorkflowService.js.map +1 -1
- package/dist/cli.js +510 -510
- package/dist/viewer/index.html +13 -13
- package/dist/viewer/sw.js +1 -1
- package/docs/ARCHITECTURE.md +1394 -1385
- package/docs/CI_CD.md +349 -338
- package/docs/COMMANDS.md +1035 -1026
- package/docs/CONTRACTS.md +1971 -1960
- package/docs/CURRENT_STATE.md +1277 -1252
- package/docs/DEVELOPMENT.md +240 -237
- package/docs/DOCUMENTATION_PRESERVATION_POLICY.md +50 -50
- package/docs/PROJECT_DESCRIPTION.md +2248 -2224
- package/docs/PROJECT_MILESTONES.md +2681 -2558
- package/docs/PROJECT_OVERVIEW.md +200 -196
- package/docs/QUICKSTART.md +100 -100
- package/docs/RELEASE.md +37 -36
- package/docs/ROADMAP.md +1105 -1034
- package/docs/SECURITY.md +297 -297
- package/docs/WORKFLOWS.md +806 -796
- package/docs/plans/v0.10-implementation-plan.md +1509 -1509
- package/docs/plans/v0.8-implementation-plan.md +655 -655
- package/docs/plans/v0.8.1-cli-usability-patch-plan.md +505 -505
- package/docs/plans/v0.9-implementation-plan.md +1529 -1529
- package/docs/plans/v0.9.1-implementation-plan.md +468 -468
- package/docs/reports/v0.10-batch1-visual-change-workflow-foundation.md +102 -102
- package/docs/reports/v0.10-batch2-project-composition-check-recording.md +103 -103
- package/docs/reports/v0.10-batch3-viewer-visual-change-workspace.md +93 -93
- package/docs/reports/v0.10-batch4-actual-frontend-entry.md +59 -59
- package/docs/reports/v0.10-batch5-reference-driven-entry.md +238 -238
- package/docs/reports/v0.10-batch6-coding-agent-handoff.md +85 -85
- package/docs/reports/v0.10-batch7-correction-review-acceptance.md +145 -145
- package/docs/reports/v0.10-batch8-integrated-acceptance.md +109 -109
- package/docs/reports/v0.10-implementation-completeness-documentation-reconciliation.md +344 -344
- package/docs/reports/v0.10-pre-release-readiness.md +120 -120
- package/docs/reports/v0.10-release-preparation.md +70 -70
- package/docs/reports/v0.10.1-project-check-baseline-context-implementation.md +86 -0
- package/docs/reports/v0.7-bounded-fidelity-context-prompt7.md +243 -243
- package/docs/reports/v0.7-implementation-completeness-documentation-reconciliation.md +497 -497
- package/docs/reports/v0.7-pre-release-readiness.md +337 -337
- package/docs/reports/v0.7-reference-binding-prompt5.md +223 -223
- package/docs/reports/v0.7-reference-compatibility-prompt4.md +234 -234
- package/docs/reports/v0.7-reference-correction-workflow-prompt8.md +222 -222
- package/docs/reports/v0.7-reference-fidelity-prompt6.md +216 -216
- package/docs/reports/v0.7-reference-foundation-prompt1.md +151 -151
- package/docs/reports/v0.7-reference-regions-prompt2.md +195 -195
- package/docs/reports/v0.7-reference-requirements-prompt3.md +217 -217
- package/docs/reports/v0.7-release-prep.md +423 -423
- package/docs/reports/v0.8-binding-fidelity-interaction-batch6.md +279 -279
- package/docs/reports/v0.8-bounded-context-correlation-batch7.md +233 -233
- package/docs/reports/v0.8-comparison-contract-inspection-batch4.md +279 -279
- package/docs/reports/v0.8-evidence-index-readers-batch2.md +247 -247
- package/docs/reports/v0.8-implementation-completeness-documentation-reconciliation.md +741 -741
- package/docs/reports/v0.8-integrated-viewer-acceptance-batch8.md +128 -128
- package/docs/reports/v0.8-observation-svg-inspection-batch3.md +223 -223
- package/docs/reports/v0.8-prerelease-readiness-cross-platform-security-code-rot.md +687 -687
- package/docs/reports/v0.8-reference-candidate-inspection-batch5.md +232 -232
- package/docs/reports/v0.8-viewer-runtime-pwa-batch1.md +278 -278
- package/docs/reports/v0.8.1-implementation-completeness-documentation-reconciliation.md +114 -114
- package/docs/reports/v0.8.1-prerelease-readiness-cross-platform-security-code-rot.md +170 -170
- package/docs/reports/v0.9-architecture-retrieval.md +14 -37
- package/docs/reports/v0.9-final-pre-release-readiness.md +209 -209
- package/docs/reports/v0.9-final-readiness-corrections.md +530 -530
- package/docs/reports/v0.9-pre-release-readiness.md +169 -169
- package/docs/reports/v0.9.1-batch1-pwa-hard-gate-isolation.md +359 -359
- package/docs/reports/v0.9.1-batch2-hard-gate-validation-integration.md +262 -262
- package/docs/reports/v0.9.1-pre-release-readiness.md +206 -206
- package/package.json +59 -59
|
@@ -1,238 +1,238 @@
|
|
|
1
|
-
# v0.10 Batch 5 Reference-Driven Entry
|
|
2
|
-
|
|
3
|
-
## 1. Verdict
|
|
4
|
-
|
|
5
|
-
PASS. The original attempt remained preserved as failure history below. The correction completed the frozen responsibility coverage, independent browser proofs, and PWA hard-gate synchronization repair; every mandatory canonical command is green.
|
|
6
|
-
|
|
7
|
-
## 2. Repository
|
|
8
|
-
|
|
9
|
-
- Repository: `C:\Users\daile\Projects\my-frontend-observer`
|
|
10
|
-
- Starting commit: `eeb8154180eea7cd143921f3fe52c328e153aab4`
|
|
11
|
-
- Branch: `feature/v0.10-full-visual-workflow`
|
|
12
|
-
|
|
13
|
-
## 3. Retrieval and fresh index
|
|
14
|
-
|
|
15
|
-
- Resolved my-dev-kit: `1.12.4`; CLI reported `1.12.4`.
|
|
16
|
-
- Install: `.my-dev-kit-workflow/tools/v0.10-batch5/`.
|
|
17
|
-
- Index: `.my-dev-kit-context/indexes/my-frontend-observer-v0.10-batch5-20260922`.
|
|
18
|
-
- Command: `node .my-dev-kit-workflow/tools/v0.10-batch5/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-batch5-20260922 --call-graph --json`.
|
|
19
|
-
- Summary: 299 files, 2,460 symbols, 4,669 edges, zero index-level warnings/errors.
|
|
20
|
-
- Syntax, call graph, frontend semantic, and frontend reachability were complete. Data-model and classification were partial with 820 and 2,407 warnings.
|
|
21
|
-
|
|
22
|
-
## 4. Reused precedents and owners
|
|
23
|
-
|
|
24
|
-
The implementation reuses `approveExternalReference`, `deriveReferenceRequirementAdequacy`, `isValidReferenceRuntimeBindingDeclarations`, `evaluateReferenceRuntimeBindings`, `buildReferenceRequirement`, `createProjectVisualChangeWorkflow`, the exact annotation/source view, project alias catalog, serialized authoring queue, Batch 3 authoring security, exact workflow-ID navigation, and Batch 2 activation.
|
|
25
|
-
|
|
26
|
-
## 5. Approval route and supersession
|
|
27
|
-
|
|
28
|
-
`POST /api/references/:handle/approve` accepts exactly `{}` and only a supported imported reference. It resolves a declared predecessor to one exact supported reference root and fails closed otherwise. It calls canonical approval once, returns bounded identity/count/adequacy data, and does not change project acceptance. The Viewer exposes a separate `Approve reference` action and exact approved-ID reselection.
|
|
29
|
-
|
|
30
|
-
## 6. Materialization separation
|
|
31
|
-
|
|
32
|
-
Existing materialization remains imported-only. It does not approve, create a workflow, activate acceptance, or run a check.
|
|
33
|
-
|
|
34
|
-
## 7. Reference workflow start
|
|
35
|
-
|
|
36
|
-
`POST /api/references/:handle/start-visual-change` accepts only `annotationHandle`, `itemIds`, `baselineObservationHandle`, and `bindings`. It requires an approved route target, exact approved-reference annotation source, confirmed executable reference intent already represented in the approved artifact, adequate requirements, an exact aliased baseline observation, configured reference acceptance, canonical compatibility, canonical declaration validation, complete required-region coverage, and `bound` canonical results.
|
|
37
|
-
|
|
38
|
-
## 8. Baseline contract and scope
|
|
39
|
-
|
|
40
|
-
The route freezes the selected exact observation. It freezes a valid configured persistent baseline contract only when contract acceptance exists. It creates the existing `VisualChangeReferenceScope` with contained project-relative paths and delegates persistence to `createProjectVisualChangeWorkflow`. Creation does not activate or change project configuration.
|
|
41
|
-
|
|
42
|
-
## 9. Viewer binding authoring
|
|
43
|
-
|
|
44
|
-
The workflow-binding draft is separate from session bindings, begins empty, and resets when the reference or baseline observation changes. Region/target selection alone does not bind. `Add workflow binding` creates an explicit pair; a duplicate region is disabled until explicit `Remove`. Different regions may use the same target. The existing reference-intent checkbox selection is shared with workflow start.
|
|
45
|
-
|
|
46
|
-
## 10. Navigation, activation, and automatic checks
|
|
47
|
-
|
|
48
|
-
Successful creation uses the existing exact workflow-ID callback to switch to Visual changes. Activation remains the existing explicit Batch 2 action. No materialization, approval, creation, or activation path invokes a check.
|
|
49
|
-
|
|
50
|
-
## 11. Identity proof
|
|
51
|
-
|
|
52
|
-
Unit tests prove that changing the approved reference, binding declaration, baseline observation, or saved annotation revision changes `visualChangeRequestId` through the unchanged Batch 1 identity owner.
|
|
53
|
-
|
|
54
|
-
## 12. Validation
|
|
55
|
-
|
|
56
|
-
- `npm run typecheck`: PASS.
|
|
57
|
-
- `npm run lint`: PASS.
|
|
58
|
-
- Focused suites: PASS, 58 tests.
|
|
59
|
-
- `npm test`: PASS, 95 files and 1,500 tests.
|
|
60
|
-
- `npm run build`: PASS.
|
|
61
|
-
- `npm run test:browser`: FAIL, 29 files/277 tests passed; the unchanged PWA hard gate timed out at `navigator.serviceWorker.ready`.
|
|
62
|
-
- `npm run test:pwa-hard-gate`: FAIL with the same 60-second timeout, both before and after a fresh build and with Playwright API diagnostics.
|
|
63
|
-
- `npm run test:security`: FAIL because its 16 unit files/168 tests and other browser security tests passed, but the same PWA hard gate timed out.
|
|
64
|
-
- `npm run check:docs`: PASS.
|
|
65
|
-
- `git diff --check`: PASS (line-ending conversion warnings only).
|
|
66
|
-
|
|
67
|
-
## 13. Browser acceptance and materialization/approval proof
|
|
68
|
-
|
|
69
|
-
The frozen independent Batch 5 real-browser acceptance gate and focused materialization-plus-approval proof are not yet implemented. Existing Batch 1-4 browser regressions passed except for the unchanged PWA timeout described above. These missing proofs are ordinary correctable work and prevent PASS.
|
|
70
|
-
|
|
71
|
-
## 14. Protocol and schema preservation
|
|
72
|
-
|
|
73
|
-
`VIEWER_PROTOCOL_VERSION` remains `1.3.0`. No external-reference, annotation, visual-change, project-config, or observation schema was changed.
|
|
74
|
-
|
|
75
|
-
## 15. Full-file read accounting
|
|
76
|
-
|
|
77
|
-
Whole source/test fallback reads were used after bounded search, lookup, slice, symbol source, local dependency expansion, and continuation proved that my-dev-kit stores symbol start lines without reliable end lines and truncated multi-symbol bundles at the output/block bounds.
|
|
78
|
-
|
|
79
|
-
- `viewer/src/components/ReferenceWorkspace.tsx` (493 lines, source): establish complete hook/state/JSX insertion points after symbol source omitted the function tail; changed implementation.
|
|
80
|
-
- `src/viewerServer/annotationReferenceMaterialization.ts` (115 lines, source): establish the complete serialized materialization adapter precedent; did not change that file.
|
|
81
|
-
- `src/viewerServer/evidence/index.ts` (153 lines, source): establish exact supported-handle and unique identity behavior; did not change that file.
|
|
82
|
-
- `src/application/visualAnnotationReferenceMaterializationService.ts` (222 lines, source): establish exact intent representation and canonical requirement construction; did not change that file.
|
|
83
|
-
- `src/domain/externalReferenceRuntimeBinding.ts` (290 lines, source): establish complete validator/evaluator result shape and hidden-target semantics; did not change that file.
|
|
84
|
-
- `viewer/src/components/ArtifactPreview.tsx` (82 lines, source): establish reference workspace callback ownership; changed implementation.
|
|
85
|
-
- `viewer/src/hooks/useRuntimeVisualChangeStart.ts` (19 lines, source): establish hook lifecycle/request precedent; did not change that file.
|
|
86
|
-
- `viewer/src/App.tsx` (104 lines, source): establish exact workflow navigation and record selection ownership; changed implementation.
|
|
87
|
-
- `viewer/src/hooks/useEvidenceIndex.ts` (42 lines, source): establish refresh return shape; did not change that file.
|
|
88
|
-
|
|
89
|
-
Other source inspection used bounded ranges. Canonical documentation reads are excluded from source/test fallback accounting.
|
|
90
|
-
|
|
91
|
-
## 16. Batch 6 and later exclusions
|
|
92
|
-
|
|
93
|
-
No coding-agent handoff, orchestrator integration, source editing, automatic retry/check, correction, review, acceptance, abandon, final baseline/reference governance, version bump, release, publication, PR, or Batch 6 work was implemented.
|
|
94
|
-
|
|
95
|
-
## 17. Exact next action
|
|
96
|
-
|
|
97
|
-
Commit the reviewed Batch 5 files with `feat: add v0.10 reference visual change flow`, push the shared feature branch, and stop. Batch 6 begins only under a separate authorized task.
|
|
98
|
-
|
|
99
|
-
## 18. Correction continuation (2026-09-22)
|
|
100
|
-
|
|
101
|
-
The uncommitted implementation was preserved. Correction work added focused approval/start-route coverage, the two required fresh-state Chromium proofs, reference-mutation concurrency protection, and a state-based PWA readiness synchronization. No reference-domain redesign occurred.
|
|
102
|
-
|
|
103
|
-
- Correction my-dev-kit: `1.12.4`, pinned at `.my-dev-kit-workflow/tools/v0.10-batch5-correction/`; CLI identity matched exactly.
|
|
104
|
-
- Correction index: `.my-dev-kit-context/indexes/my-frontend-observer-v0.10-batch5-correction-20260922`.
|
|
105
|
-
- Exact command: `node .my-dev-kit-workflow/tools/v0.10-batch5-correction/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-batch5-correction-20260922 --call-graph --json`.
|
|
106
|
-
- Index result: 304 files, 2,480 symbols, 4,761 call-graph edges, zero index warnings/errors; syntax/call-graph/frontend analyzers complete; data-model/classification partial with 834/2,429 warnings.
|
|
107
|
-
|
|
108
|
-
## 19. Required browser proofs
|
|
109
|
-
|
|
110
|
-
`MATERIALIZATION + APPROVAL PROOF: keeps import and approval explicit, immutable, superseding, and acceptance-neutral` passes independently. It creates its project/evidence/server/context, proves the successor remains imported until the separate click, then proves fresh approval identity, request identity preservation, supersession, source/import immutability, exact approved reselection, and unchanged project acceptance.
|
|
111
|
-
|
|
112
|
-
`ACCEPTANCE GATE: creates and explicitly activates an exact reference-mode workflow without running a check` passes independently. It creates a valid aliased baseline and adequate approved reference, authors/saves/confirms exact-source intent in Chromium, explicitly authors both bindings, creates and reselects the exact inactive workflow, proves exact annotation/reference/baseline/bindings and zero attempts, explicitly activates, proves same request/new workflow identity and exact acceptance paths, and proves zero attempts/latest check `none` remain.
|
|
113
|
-
|
|
114
|
-
## 20. PWA diagnosis and correction
|
|
115
|
-
|
|
116
|
-
The initial failure was **Class C — test synchronization defect**. On the loopback secure origin, the Service Worker API was present, built `/`, `/index.html`, `/registerSW.js`, `/sw.js`, and `/manifest.webmanifest` were HTTP-available, and `getRegistration()` reached an active worker at the exact origin scope while Chromium on this Windows host left the first `navigator.serviceWorker.ready` synchronization unresolved. There was no worker-script, registration, request, console, or precache failure.
|
|
117
|
-
|
|
118
|
-
The hard gate now uses bounded Playwright polling of `getRegistration()` until the exact registration exists, is active, and owns `${origin}/`. It then separately retains the controller assertion and every substantive safety fact: live evidence, shell/entry precache, zero `/api/` cache entries, live API reachability, Node-side server-down proof, offline shell reload, controlled page, explicit unavailable evidence, stale identity disappearance, and cleanup. It does not manually register a worker, add sleeps/retries, cache API/media/evidence, or weaken any assertion.
|
|
119
|
-
|
|
120
|
-
- First isolated hard gate: PASS (1 passed, 6 skipped).
|
|
121
|
-
- Second consecutive fresh-profile hard gate: PASS (1 passed, 6 skipped).
|
|
122
|
-
- Complete `pwaHardening.test.ts`: PASS (7/7).
|
|
123
|
-
- Canonical browser: PASS (30 files, 280 tests).
|
|
124
|
-
- Canonical security: PASS (16 unit files/168 tests; 3 browser files/77 tests; nested hard gate PASS).
|
|
125
|
-
|
|
126
|
-
## 21. TST-B5 responsibility ledger
|
|
127
|
-
|
|
128
|
-
Every entry below names the concrete automated proof. Shared tests are intentionally repeated where one scenario establishes several frozen facts.
|
|
129
|
-
|
|
130
|
-
| ID | Test file — exact test name | Result |
|
|
131
|
-
|---|---|---|
|
|
132
|
-
| TST-B5-001 | `referenceApproval.test.ts` — `returns 404 for an unknown handle, 409 for an approved reference, and requires project authoring security` | PASS |
|
|
133
|
-
| TST-B5-002 | same named approval rejection test | PASS |
|
|
134
|
-
| TST-B5-003 | `referenceApproval.test.ts` — `approves exactly once into one fresh immutable instance, preserves request identity, leaks no path, and leaves acceptance unchanged` | PASS |
|
|
135
|
-
| TST-B5-004 | same named immutable approval test | PASS |
|
|
136
|
-
| TST-B5-005 | same named immutable approval test | PASS |
|
|
137
|
-
| TST-B5-006 | `referenceAnnotationMaterialization.test.ts` — `MATERIALIZATION + APPROVAL PROOF: keeps import and approval explicit, immutable, superseding, and acceptance-neutral` | PASS |
|
|
138
|
-
| TST-B5-007 | `referenceApproval.test.ts` — `fails closed when a declared predecessor cannot be uniquely resolved` | PASS |
|
|
139
|
-
| TST-B5-008 | named immutable approval test | PASS |
|
|
140
|
-
| TST-B5-009 | named immutable approval test | PASS |
|
|
141
|
-
| TST-B5-010 | named approval rejection/security test | PASS |
|
|
142
|
-
| TST-B5-011 | `referenceVisualChangeRoute.test.ts` — `rejects imported scope, exact-source mismatch, non-executable intent, missing alias, missing acceptance, and structural binding errors` | PASS |
|
|
143
|
-
| TST-B5-012 | `referenceVisualChangeRoute.test.ts` — `creates an exact inactive reference scope with optional contract omitted, zero attempts, no config mutation, and no path leakage` | PASS |
|
|
144
|
-
| TST-B5-013 | named route rejection test | PASS |
|
|
145
|
-
| TST-B5-014 | named route rejection test | PASS |
|
|
146
|
-
| TST-B5-015 | `referenceAnnotationMaterialization.test.ts` — `keeps informational and candidate items unselectable, and forced API requests for them are rejected without a write` | PASS |
|
|
147
|
-
| TST-B5-016 | materialization subset test plus `ACCEPTANCE GATE...` exact represented region | PASS |
|
|
148
|
-
| TST-B5-017 | `materializes only the selected subset: a created region and a requirement against it, never the unselected create` | PASS |
|
|
149
|
-
| TST-B5-018 | `referenceCandidateWorkspace.test.ts` — `shows the image with no region rectangles and an honest "no requirements selected" state` | PASS |
|
|
150
|
-
| TST-B5-019 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
151
|
-
| TST-B5-020 | named route rejection test | PASS |
|
|
152
|
-
| TST-B5-021 | named route rejection test | PASS |
|
|
153
|
-
| TST-B5-022 | named route rejection test | PASS |
|
|
154
|
-
| TST-B5-023 | `visualChangeProjectWorkflowService.test.ts` — `freezes exact project evidence without activating acceptance, then activates and restores immutable revisions` | PASS |
|
|
155
|
-
| TST-B5-024 | named exact inactive reference-scope test | PASS |
|
|
156
|
-
| TST-B5-025 | `externalReferenceRuntimeBinding.test.ts` — `F: an incompatible reference/candidate viewport blocks ordinary binding evaluation - no bound result fabricated` | PASS |
|
|
157
|
-
| TST-B5-026 | named route rejection test | PASS |
|
|
158
|
-
| TST-B5-027 | named route rejection test | PASS |
|
|
159
|
-
| TST-B5-028 | named route rejection test | PASS |
|
|
160
|
-
| TST-B5-029 | `referenceVisualChangeRoute.test.ts` — `allows several required regions to bind explicitly to the same unique runtime target` | PASS |
|
|
161
|
-
| TST-B5-030 | named route rejection test | PASS |
|
|
162
|
-
| TST-B5-031 | `externalReferenceRuntimeBinding.test.ts` — `D: an ambiguously resolved runtime target is reported ambiguous, never bound` | PASS |
|
|
163
|
-
| TST-B5-032 | `externalReferenceRuntimeBinding.test.ts` — `C: an unknown runtime target (not configured on this candidate) is reported unavailable` | PASS |
|
|
164
|
-
| TST-B5-033 | named exact inactive reference-scope test | PASS |
|
|
165
|
-
| TST-B5-034 | named exact inactive reference-scope test | PASS |
|
|
166
|
-
| TST-B5-035 | named exact inactive reference-scope test | PASS |
|
|
167
|
-
| TST-B5-036 | named exact inactive reference-scope test | PASS |
|
|
168
|
-
| TST-B5-037 | named exact inactive reference-scope test | PASS |
|
|
169
|
-
| TST-B5-038 | named exact inactive reference-scope test | PASS |
|
|
170
|
-
| TST-B5-039 | named exact inactive reference-scope test | PASS |
|
|
171
|
-
| TST-B5-040 | named exact inactive reference-scope test | PASS |
|
|
172
|
-
| TST-B5-041 | named exact inactive reference-scope test | PASS |
|
|
173
|
-
| TST-B5-042 | named exact inactive reference-scope test | PASS |
|
|
174
|
-
| TST-B5-043 | `MATERIALIZATION + APPROVAL PROOF...` | PASS |
|
|
175
|
-
| TST-B5-044 | `materializes a confirmed created region into a new imported revision without approval, config change, or switching the viewed reference` | PASS |
|
|
176
|
-
| TST-B5-045 | `MATERIALIZATION + APPROVAL PROOF...` | PASS |
|
|
177
|
-
| TST-B5-046 | `MATERIALIZATION + APPROVAL PROOF...` | PASS |
|
|
178
|
-
| TST-B5-047 | `MATERIALIZATION + APPROVAL PROOF...` | PASS |
|
|
179
|
-
| TST-B5-048 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
180
|
-
| TST-B5-049 | `referenceBindingFidelityWorkspace.test.ts` — `a reference region and runtime target sharing the literal name "header" never cross-select without an explicit declaration` | PASS |
|
|
181
|
-
| TST-B5-050 | same named no-inference binding test | PASS |
|
|
182
|
-
| TST-B5-051 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
183
|
-
| TST-B5-052 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
184
|
-
| TST-B5-053 | Batch 5 `ACCEPTANCE GATE...` (authored pair has explicit `Remove`) | PASS |
|
|
185
|
-
| TST-B5-054 | `externalReferenceRuntimeBinding.test.ts` — `J: rejects a conflicting declaration mapping the same reference region to two different targets, never silently choosing the first` | PASS |
|
|
186
|
-
| TST-B5-055 | fresh-project Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
187
|
-
| TST-B5-056 | fresh baseline selection in Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
188
|
-
| TST-B5-057 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
189
|
-
| TST-B5-058 | `referenceVisualChangeAuthoring.test.ts` — `accepts exactly the four start fields and rejects activation/path injection` | PASS |
|
|
190
|
-
| TST-B5-059 | same closed-request test | PASS |
|
|
191
|
-
| TST-B5-060 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
192
|
-
| TST-B5-061 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
193
|
-
| TST-B5-062 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
194
|
-
| TST-B5-063 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
195
|
-
| TST-B5-064 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
196
|
-
| TST-B5-065 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
197
|
-
| TST-B5-066 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
198
|
-
| TST-B5-067 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
199
|
-
| TST-B5-068 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
200
|
-
| TST-B5-069 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
201
|
-
| TST-B5-070 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
202
|
-
| TST-B5-071 | `referenceVisualChangeAuthoring.test.ts` — `changes identity when approved reference changes` | PASS |
|
|
203
|
-
| TST-B5-072 | same table test — `changes identity when binding changes` | PASS |
|
|
204
|
-
| TST-B5-073 | same table test — `changes identity when baseline observation changes` | PASS |
|
|
205
|
-
| TST-B5-074 | same table test — `changes identity when annotation revision changes` | PASS |
|
|
206
|
-
| TST-B5-075 | reference annotation authoring save/revision suite in canonical browser run | PASS |
|
|
207
|
-
| TST-B5-076 | reference annotation explicit confirmation suite in canonical browser run | PASS |
|
|
208
|
-
| TST-B5-077 | first four named `referenceAnnotationMaterialization.test.ts` tests | PASS |
|
|
209
|
-
| TST-B5-078 | six named `referenceCandidateWorkspace.test.ts` cases | PASS |
|
|
210
|
-
| TST-B5-079 | `referenceBindingFidelityWorkspace.test.ts` — `clicking a bound reference region cross-highlights its exact declared runtime target, and vice versa` | PASS |
|
|
211
|
-
| TST-B5-080 | same file — `Case G: a real canonical PASS is displayed with requirement values only after the explicit trigger is clicked` | PASS |
|
|
212
|
-
| TST-B5-081 | canonical `npm test` Batch 1 suites | PASS |
|
|
213
|
-
| TST-B5-082 | canonical `npm test` Batch 2 suites | PASS |
|
|
214
|
-
| TST-B5-083 | canonical browser/security Batch 3 suites | PASS |
|
|
215
|
-
| TST-B5-084 | `runtimeAnnotationContractPromotion.test.ts` — `ACCEPTANCE GATE: creates an inactive actual workflow from confirmed runtime intent and explicitly activates its immutable revision` | PASS |
|
|
216
|
-
| TST-B5-085 | viewer protocol assertion suite; `VIEWER_PROTOCOL_VERSION = '1.3.0'` | PASS |
|
|
217
|
-
|
|
218
|
-
## 22. Final correction validation
|
|
219
|
-
|
|
220
|
-
- `npm run typecheck`: PASS.
|
|
221
|
-
- `npm run lint`: PASS.
|
|
222
|
-
- `npm test`: PASS, 97 files/1,506 tests.
|
|
223
|
-
- Focused approval/start-route: PASS, 12 tests.
|
|
224
|
-
- Focused Batch 5 browser proof file: PASS, 6 tests.
|
|
225
|
-
- `npm run test:browser`: PASS, 30 files/280 tests.
|
|
226
|
-
- `npm run test:security`: PASS.
|
|
227
|
-
- `npm run test:pwa-hard-gate`: PASS twice consecutively, plus once inside security.
|
|
228
|
-
- Full `pwaHardening.test.ts`: PASS, 7 tests.
|
|
229
|
-
- `npm run build`: PASS; generated PWA precache has 10 entries.
|
|
230
|
-
- `npm run check:docs`: PASS.
|
|
231
|
-
- `git diff --check`: PASS (Git line-ending notices only).
|
|
232
|
-
- Viewer protocol remains `1.3.0`; no governed schema version changed.
|
|
233
|
-
|
|
234
|
-
## 23. Correction retrieval and fallback accounting
|
|
235
|
-
|
|
236
|
-
Correction retrieval followed search → lookup → slice → exact symbol source → continuation/dependency expansion → bounded ranges. Correction-run additional full source/test file reads: none.
|
|
237
|
-
|
|
238
|
-
The historical fallback ledger in section 15 is retained unchanged.
|
|
1
|
+
# v0.10 Batch 5 Reference-Driven Entry
|
|
2
|
+
|
|
3
|
+
## 1. Verdict
|
|
4
|
+
|
|
5
|
+
PASS. The original attempt remained preserved as failure history below. The correction completed the frozen responsibility coverage, independent browser proofs, and PWA hard-gate synchronization repair; every mandatory canonical command is green.
|
|
6
|
+
|
|
7
|
+
## 2. Repository
|
|
8
|
+
|
|
9
|
+
- Repository: `C:\Users\daile\Projects\my-frontend-observer`
|
|
10
|
+
- Starting commit: `eeb8154180eea7cd143921f3fe52c328e153aab4`
|
|
11
|
+
- Branch: `feature/v0.10-full-visual-workflow`
|
|
12
|
+
|
|
13
|
+
## 3. Retrieval and fresh index
|
|
14
|
+
|
|
15
|
+
- Resolved my-dev-kit: `1.12.4`; CLI reported `1.12.4`.
|
|
16
|
+
- Install: `.my-dev-kit-workflow/tools/v0.10-batch5/`.
|
|
17
|
+
- Index: `.my-dev-kit-context/indexes/my-frontend-observer-v0.10-batch5-20260922`.
|
|
18
|
+
- Command: `node .my-dev-kit-workflow/tools/v0.10-batch5/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-batch5-20260922 --call-graph --json`.
|
|
19
|
+
- Summary: 299 files, 2,460 symbols, 4,669 edges, zero index-level warnings/errors.
|
|
20
|
+
- Syntax, call graph, frontend semantic, and frontend reachability were complete. Data-model and classification were partial with 820 and 2,407 warnings.
|
|
21
|
+
|
|
22
|
+
## 4. Reused precedents and owners
|
|
23
|
+
|
|
24
|
+
The implementation reuses `approveExternalReference`, `deriveReferenceRequirementAdequacy`, `isValidReferenceRuntimeBindingDeclarations`, `evaluateReferenceRuntimeBindings`, `buildReferenceRequirement`, `createProjectVisualChangeWorkflow`, the exact annotation/source view, project alias catalog, serialized authoring queue, Batch 3 authoring security, exact workflow-ID navigation, and Batch 2 activation.
|
|
25
|
+
|
|
26
|
+
## 5. Approval route and supersession
|
|
27
|
+
|
|
28
|
+
`POST /api/references/:handle/approve` accepts exactly `{}` and only a supported imported reference. It resolves a declared predecessor to one exact supported reference root and fails closed otherwise. It calls canonical approval once, returns bounded identity/count/adequacy data, and does not change project acceptance. The Viewer exposes a separate `Approve reference` action and exact approved-ID reselection.
|
|
29
|
+
|
|
30
|
+
## 6. Materialization separation
|
|
31
|
+
|
|
32
|
+
Existing materialization remains imported-only. It does not approve, create a workflow, activate acceptance, or run a check.
|
|
33
|
+
|
|
34
|
+
## 7. Reference workflow start
|
|
35
|
+
|
|
36
|
+
`POST /api/references/:handle/start-visual-change` accepts only `annotationHandle`, `itemIds`, `baselineObservationHandle`, and `bindings`. It requires an approved route target, exact approved-reference annotation source, confirmed executable reference intent already represented in the approved artifact, adequate requirements, an exact aliased baseline observation, configured reference acceptance, canonical compatibility, canonical declaration validation, complete required-region coverage, and `bound` canonical results.
|
|
37
|
+
|
|
38
|
+
## 8. Baseline contract and scope
|
|
39
|
+
|
|
40
|
+
The route freezes the selected exact observation. It freezes a valid configured persistent baseline contract only when contract acceptance exists. It creates the existing `VisualChangeReferenceScope` with contained project-relative paths and delegates persistence to `createProjectVisualChangeWorkflow`. Creation does not activate or change project configuration.
|
|
41
|
+
|
|
42
|
+
## 9. Viewer binding authoring
|
|
43
|
+
|
|
44
|
+
The workflow-binding draft is separate from session bindings, begins empty, and resets when the reference or baseline observation changes. Region/target selection alone does not bind. `Add workflow binding` creates an explicit pair; a duplicate region is disabled until explicit `Remove`. Different regions may use the same target. The existing reference-intent checkbox selection is shared with workflow start.
|
|
45
|
+
|
|
46
|
+
## 10. Navigation, activation, and automatic checks
|
|
47
|
+
|
|
48
|
+
Successful creation uses the existing exact workflow-ID callback to switch to Visual changes. Activation remains the existing explicit Batch 2 action. No materialization, approval, creation, or activation path invokes a check.
|
|
49
|
+
|
|
50
|
+
## 11. Identity proof
|
|
51
|
+
|
|
52
|
+
Unit tests prove that changing the approved reference, binding declaration, baseline observation, or saved annotation revision changes `visualChangeRequestId` through the unchanged Batch 1 identity owner.
|
|
53
|
+
|
|
54
|
+
## 12. Validation
|
|
55
|
+
|
|
56
|
+
- `npm run typecheck`: PASS.
|
|
57
|
+
- `npm run lint`: PASS.
|
|
58
|
+
- Focused suites: PASS, 58 tests.
|
|
59
|
+
- `npm test`: PASS, 95 files and 1,500 tests.
|
|
60
|
+
- `npm run build`: PASS.
|
|
61
|
+
- `npm run test:browser`: FAIL, 29 files/277 tests passed; the unchanged PWA hard gate timed out at `navigator.serviceWorker.ready`.
|
|
62
|
+
- `npm run test:pwa-hard-gate`: FAIL with the same 60-second timeout, both before and after a fresh build and with Playwright API diagnostics.
|
|
63
|
+
- `npm run test:security`: FAIL because its 16 unit files/168 tests and other browser security tests passed, but the same PWA hard gate timed out.
|
|
64
|
+
- `npm run check:docs`: PASS.
|
|
65
|
+
- `git diff --check`: PASS (line-ending conversion warnings only).
|
|
66
|
+
|
|
67
|
+
## 13. Browser acceptance and materialization/approval proof
|
|
68
|
+
|
|
69
|
+
The frozen independent Batch 5 real-browser acceptance gate and focused materialization-plus-approval proof are not yet implemented. Existing Batch 1-4 browser regressions passed except for the unchanged PWA timeout described above. These missing proofs are ordinary correctable work and prevent PASS.
|
|
70
|
+
|
|
71
|
+
## 14. Protocol and schema preservation
|
|
72
|
+
|
|
73
|
+
`VIEWER_PROTOCOL_VERSION` remains `1.3.0`. No external-reference, annotation, visual-change, project-config, or observation schema was changed.
|
|
74
|
+
|
|
75
|
+
## 15. Full-file read accounting
|
|
76
|
+
|
|
77
|
+
Whole source/test fallback reads were used after bounded search, lookup, slice, symbol source, local dependency expansion, and continuation proved that my-dev-kit stores symbol start lines without reliable end lines and truncated multi-symbol bundles at the output/block bounds.
|
|
78
|
+
|
|
79
|
+
- `viewer/src/components/ReferenceWorkspace.tsx` (493 lines, source): establish complete hook/state/JSX insertion points after symbol source omitted the function tail; changed implementation.
|
|
80
|
+
- `src/viewerServer/annotationReferenceMaterialization.ts` (115 lines, source): establish the complete serialized materialization adapter precedent; did not change that file.
|
|
81
|
+
- `src/viewerServer/evidence/index.ts` (153 lines, source): establish exact supported-handle and unique identity behavior; did not change that file.
|
|
82
|
+
- `src/application/visualAnnotationReferenceMaterializationService.ts` (222 lines, source): establish exact intent representation and canonical requirement construction; did not change that file.
|
|
83
|
+
- `src/domain/externalReferenceRuntimeBinding.ts` (290 lines, source): establish complete validator/evaluator result shape and hidden-target semantics; did not change that file.
|
|
84
|
+
- `viewer/src/components/ArtifactPreview.tsx` (82 lines, source): establish reference workspace callback ownership; changed implementation.
|
|
85
|
+
- `viewer/src/hooks/useRuntimeVisualChangeStart.ts` (19 lines, source): establish hook lifecycle/request precedent; did not change that file.
|
|
86
|
+
- `viewer/src/App.tsx` (104 lines, source): establish exact workflow navigation and record selection ownership; changed implementation.
|
|
87
|
+
- `viewer/src/hooks/useEvidenceIndex.ts` (42 lines, source): establish refresh return shape; did not change that file.
|
|
88
|
+
|
|
89
|
+
Other source inspection used bounded ranges. Canonical documentation reads are excluded from source/test fallback accounting.
|
|
90
|
+
|
|
91
|
+
## 16. Batch 6 and later exclusions
|
|
92
|
+
|
|
93
|
+
No coding-agent handoff, orchestrator integration, source editing, automatic retry/check, correction, review, acceptance, abandon, final baseline/reference governance, version bump, release, publication, PR, or Batch 6 work was implemented.
|
|
94
|
+
|
|
95
|
+
## 17. Exact next action
|
|
96
|
+
|
|
97
|
+
Commit the reviewed Batch 5 files with `feat: add v0.10 reference visual change flow`, push the shared feature branch, and stop. Batch 6 begins only under a separate authorized task.
|
|
98
|
+
|
|
99
|
+
## 18. Correction continuation (2026-09-22)
|
|
100
|
+
|
|
101
|
+
The uncommitted implementation was preserved. Correction work added focused approval/start-route coverage, the two required fresh-state Chromium proofs, reference-mutation concurrency protection, and a state-based PWA readiness synchronization. No reference-domain redesign occurred.
|
|
102
|
+
|
|
103
|
+
- Correction my-dev-kit: `1.12.4`, pinned at `.my-dev-kit-workflow/tools/v0.10-batch5-correction/`; CLI identity matched exactly.
|
|
104
|
+
- Correction index: `.my-dev-kit-context/indexes/my-frontend-observer-v0.10-batch5-correction-20260922`.
|
|
105
|
+
- Exact command: `node .my-dev-kit-workflow/tools/v0.10-batch5-correction/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-batch5-correction-20260922 --call-graph --json`.
|
|
106
|
+
- Index result: 304 files, 2,480 symbols, 4,761 call-graph edges, zero index warnings/errors; syntax/call-graph/frontend analyzers complete; data-model/classification partial with 834/2,429 warnings.
|
|
107
|
+
|
|
108
|
+
## 19. Required browser proofs
|
|
109
|
+
|
|
110
|
+
`MATERIALIZATION + APPROVAL PROOF: keeps import and approval explicit, immutable, superseding, and acceptance-neutral` passes independently. It creates its project/evidence/server/context, proves the successor remains imported until the separate click, then proves fresh approval identity, request identity preservation, supersession, source/import immutability, exact approved reselection, and unchanged project acceptance.
|
|
111
|
+
|
|
112
|
+
`ACCEPTANCE GATE: creates and explicitly activates an exact reference-mode workflow without running a check` passes independently. It creates a valid aliased baseline and adequate approved reference, authors/saves/confirms exact-source intent in Chromium, explicitly authors both bindings, creates and reselects the exact inactive workflow, proves exact annotation/reference/baseline/bindings and zero attempts, explicitly activates, proves same request/new workflow identity and exact acceptance paths, and proves zero attempts/latest check `none` remain.
|
|
113
|
+
|
|
114
|
+
## 20. PWA diagnosis and correction
|
|
115
|
+
|
|
116
|
+
The initial failure was **Class C — test synchronization defect**. On the loopback secure origin, the Service Worker API was present, built `/`, `/index.html`, `/registerSW.js`, `/sw.js`, and `/manifest.webmanifest` were HTTP-available, and `getRegistration()` reached an active worker at the exact origin scope while Chromium on this Windows host left the first `navigator.serviceWorker.ready` synchronization unresolved. There was no worker-script, registration, request, console, or precache failure.
|
|
117
|
+
|
|
118
|
+
The hard gate now uses bounded Playwright polling of `getRegistration()` until the exact registration exists, is active, and owns `${origin}/`. It then separately retains the controller assertion and every substantive safety fact: live evidence, shell/entry precache, zero `/api/` cache entries, live API reachability, Node-side server-down proof, offline shell reload, controlled page, explicit unavailable evidence, stale identity disappearance, and cleanup. It does not manually register a worker, add sleeps/retries, cache API/media/evidence, or weaken any assertion.
|
|
119
|
+
|
|
120
|
+
- First isolated hard gate: PASS (1 passed, 6 skipped).
|
|
121
|
+
- Second consecutive fresh-profile hard gate: PASS (1 passed, 6 skipped).
|
|
122
|
+
- Complete `pwaHardening.test.ts`: PASS (7/7).
|
|
123
|
+
- Canonical browser: PASS (30 files, 280 tests).
|
|
124
|
+
- Canonical security: PASS (16 unit files/168 tests; 3 browser files/77 tests; nested hard gate PASS).
|
|
125
|
+
|
|
126
|
+
## 21. TST-B5 responsibility ledger
|
|
127
|
+
|
|
128
|
+
Every entry below names the concrete automated proof. Shared tests are intentionally repeated where one scenario establishes several frozen facts.
|
|
129
|
+
|
|
130
|
+
| ID | Test file — exact test name | Result |
|
|
131
|
+
|---|---|---|
|
|
132
|
+
| TST-B5-001 | `referenceApproval.test.ts` — `returns 404 for an unknown handle, 409 for an approved reference, and requires project authoring security` | PASS |
|
|
133
|
+
| TST-B5-002 | same named approval rejection test | PASS |
|
|
134
|
+
| TST-B5-003 | `referenceApproval.test.ts` — `approves exactly once into one fresh immutable instance, preserves request identity, leaks no path, and leaves acceptance unchanged` | PASS |
|
|
135
|
+
| TST-B5-004 | same named immutable approval test | PASS |
|
|
136
|
+
| TST-B5-005 | same named immutable approval test | PASS |
|
|
137
|
+
| TST-B5-006 | `referenceAnnotationMaterialization.test.ts` — `MATERIALIZATION + APPROVAL PROOF: keeps import and approval explicit, immutable, superseding, and acceptance-neutral` | PASS |
|
|
138
|
+
| TST-B5-007 | `referenceApproval.test.ts` — `fails closed when a declared predecessor cannot be uniquely resolved` | PASS |
|
|
139
|
+
| TST-B5-008 | named immutable approval test | PASS |
|
|
140
|
+
| TST-B5-009 | named immutable approval test | PASS |
|
|
141
|
+
| TST-B5-010 | named approval rejection/security test | PASS |
|
|
142
|
+
| TST-B5-011 | `referenceVisualChangeRoute.test.ts` — `rejects imported scope, exact-source mismatch, non-executable intent, missing alias, missing acceptance, and structural binding errors` | PASS |
|
|
143
|
+
| TST-B5-012 | `referenceVisualChangeRoute.test.ts` — `creates an exact inactive reference scope with optional contract omitted, zero attempts, no config mutation, and no path leakage` | PASS |
|
|
144
|
+
| TST-B5-013 | named route rejection test | PASS |
|
|
145
|
+
| TST-B5-014 | named route rejection test | PASS |
|
|
146
|
+
| TST-B5-015 | `referenceAnnotationMaterialization.test.ts` — `keeps informational and candidate items unselectable, and forced API requests for them are rejected without a write` | PASS |
|
|
147
|
+
| TST-B5-016 | materialization subset test plus `ACCEPTANCE GATE...` exact represented region | PASS |
|
|
148
|
+
| TST-B5-017 | `materializes only the selected subset: a created region and a requirement against it, never the unselected create` | PASS |
|
|
149
|
+
| TST-B5-018 | `referenceCandidateWorkspace.test.ts` — `shows the image with no region rectangles and an honest "no requirements selected" state` | PASS |
|
|
150
|
+
| TST-B5-019 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
151
|
+
| TST-B5-020 | named route rejection test | PASS |
|
|
152
|
+
| TST-B5-021 | named route rejection test | PASS |
|
|
153
|
+
| TST-B5-022 | named route rejection test | PASS |
|
|
154
|
+
| TST-B5-023 | `visualChangeProjectWorkflowService.test.ts` — `freezes exact project evidence without activating acceptance, then activates and restores immutable revisions` | PASS |
|
|
155
|
+
| TST-B5-024 | named exact inactive reference-scope test | PASS |
|
|
156
|
+
| TST-B5-025 | `externalReferenceRuntimeBinding.test.ts` — `F: an incompatible reference/candidate viewport blocks ordinary binding evaluation - no bound result fabricated` | PASS |
|
|
157
|
+
| TST-B5-026 | named route rejection test | PASS |
|
|
158
|
+
| TST-B5-027 | named route rejection test | PASS |
|
|
159
|
+
| TST-B5-028 | named route rejection test | PASS |
|
|
160
|
+
| TST-B5-029 | `referenceVisualChangeRoute.test.ts` — `allows several required regions to bind explicitly to the same unique runtime target` | PASS |
|
|
161
|
+
| TST-B5-030 | named route rejection test | PASS |
|
|
162
|
+
| TST-B5-031 | `externalReferenceRuntimeBinding.test.ts` — `D: an ambiguously resolved runtime target is reported ambiguous, never bound` | PASS |
|
|
163
|
+
| TST-B5-032 | `externalReferenceRuntimeBinding.test.ts` — `C: an unknown runtime target (not configured on this candidate) is reported unavailable` | PASS |
|
|
164
|
+
| TST-B5-033 | named exact inactive reference-scope test | PASS |
|
|
165
|
+
| TST-B5-034 | named exact inactive reference-scope test | PASS |
|
|
166
|
+
| TST-B5-035 | named exact inactive reference-scope test | PASS |
|
|
167
|
+
| TST-B5-036 | named exact inactive reference-scope test | PASS |
|
|
168
|
+
| TST-B5-037 | named exact inactive reference-scope test | PASS |
|
|
169
|
+
| TST-B5-038 | named exact inactive reference-scope test | PASS |
|
|
170
|
+
| TST-B5-039 | named exact inactive reference-scope test | PASS |
|
|
171
|
+
| TST-B5-040 | named exact inactive reference-scope test | PASS |
|
|
172
|
+
| TST-B5-041 | named exact inactive reference-scope test | PASS |
|
|
173
|
+
| TST-B5-042 | named exact inactive reference-scope test | PASS |
|
|
174
|
+
| TST-B5-043 | `MATERIALIZATION + APPROVAL PROOF...` | PASS |
|
|
175
|
+
| TST-B5-044 | `materializes a confirmed created region into a new imported revision without approval, config change, or switching the viewed reference` | PASS |
|
|
176
|
+
| TST-B5-045 | `MATERIALIZATION + APPROVAL PROOF...` | PASS |
|
|
177
|
+
| TST-B5-046 | `MATERIALIZATION + APPROVAL PROOF...` | PASS |
|
|
178
|
+
| TST-B5-047 | `MATERIALIZATION + APPROVAL PROOF...` | PASS |
|
|
179
|
+
| TST-B5-048 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
180
|
+
| TST-B5-049 | `referenceBindingFidelityWorkspace.test.ts` — `a reference region and runtime target sharing the literal name "header" never cross-select without an explicit declaration` | PASS |
|
|
181
|
+
| TST-B5-050 | same named no-inference binding test | PASS |
|
|
182
|
+
| TST-B5-051 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
183
|
+
| TST-B5-052 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
184
|
+
| TST-B5-053 | Batch 5 `ACCEPTANCE GATE...` (authored pair has explicit `Remove`) | PASS |
|
|
185
|
+
| TST-B5-054 | `externalReferenceRuntimeBinding.test.ts` — `J: rejects a conflicting declaration mapping the same reference region to two different targets, never silently choosing the first` | PASS |
|
|
186
|
+
| TST-B5-055 | fresh-project Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
187
|
+
| TST-B5-056 | fresh baseline selection in Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
188
|
+
| TST-B5-057 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
189
|
+
| TST-B5-058 | `referenceVisualChangeAuthoring.test.ts` — `accepts exactly the four start fields and rejects activation/path injection` | PASS |
|
|
190
|
+
| TST-B5-059 | same closed-request test | PASS |
|
|
191
|
+
| TST-B5-060 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
192
|
+
| TST-B5-061 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
193
|
+
| TST-B5-062 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
194
|
+
| TST-B5-063 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
195
|
+
| TST-B5-064 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
196
|
+
| TST-B5-065 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
197
|
+
| TST-B5-066 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
198
|
+
| TST-B5-067 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
199
|
+
| TST-B5-068 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
200
|
+
| TST-B5-069 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
201
|
+
| TST-B5-070 | Batch 5 `ACCEPTANCE GATE...` | PASS |
|
|
202
|
+
| TST-B5-071 | `referenceVisualChangeAuthoring.test.ts` — `changes identity when approved reference changes` | PASS |
|
|
203
|
+
| TST-B5-072 | same table test — `changes identity when binding changes` | PASS |
|
|
204
|
+
| TST-B5-073 | same table test — `changes identity when baseline observation changes` | PASS |
|
|
205
|
+
| TST-B5-074 | same table test — `changes identity when annotation revision changes` | PASS |
|
|
206
|
+
| TST-B5-075 | reference annotation authoring save/revision suite in canonical browser run | PASS |
|
|
207
|
+
| TST-B5-076 | reference annotation explicit confirmation suite in canonical browser run | PASS |
|
|
208
|
+
| TST-B5-077 | first four named `referenceAnnotationMaterialization.test.ts` tests | PASS |
|
|
209
|
+
| TST-B5-078 | six named `referenceCandidateWorkspace.test.ts` cases | PASS |
|
|
210
|
+
| TST-B5-079 | `referenceBindingFidelityWorkspace.test.ts` — `clicking a bound reference region cross-highlights its exact declared runtime target, and vice versa` | PASS |
|
|
211
|
+
| TST-B5-080 | same file — `Case G: a real canonical PASS is displayed with requirement values only after the explicit trigger is clicked` | PASS |
|
|
212
|
+
| TST-B5-081 | canonical `npm test` Batch 1 suites | PASS |
|
|
213
|
+
| TST-B5-082 | canonical `npm test` Batch 2 suites | PASS |
|
|
214
|
+
| TST-B5-083 | canonical browser/security Batch 3 suites | PASS |
|
|
215
|
+
| TST-B5-084 | `runtimeAnnotationContractPromotion.test.ts` — `ACCEPTANCE GATE: creates an inactive actual workflow from confirmed runtime intent and explicitly activates its immutable revision` | PASS |
|
|
216
|
+
| TST-B5-085 | viewer protocol assertion suite; `VIEWER_PROTOCOL_VERSION = '1.3.0'` | PASS |
|
|
217
|
+
|
|
218
|
+
## 22. Final correction validation
|
|
219
|
+
|
|
220
|
+
- `npm run typecheck`: PASS.
|
|
221
|
+
- `npm run lint`: PASS.
|
|
222
|
+
- `npm test`: PASS, 97 files/1,506 tests.
|
|
223
|
+
- Focused approval/start-route: PASS, 12 tests.
|
|
224
|
+
- Focused Batch 5 browser proof file: PASS, 6 tests.
|
|
225
|
+
- `npm run test:browser`: PASS, 30 files/280 tests.
|
|
226
|
+
- `npm run test:security`: PASS.
|
|
227
|
+
- `npm run test:pwa-hard-gate`: PASS twice consecutively, plus once inside security.
|
|
228
|
+
- Full `pwaHardening.test.ts`: PASS, 7 tests.
|
|
229
|
+
- `npm run build`: PASS; generated PWA precache has 10 entries.
|
|
230
|
+
- `npm run check:docs`: PASS.
|
|
231
|
+
- `git diff --check`: PASS (Git line-ending notices only).
|
|
232
|
+
- Viewer protocol remains `1.3.0`; no governed schema version changed.
|
|
233
|
+
|
|
234
|
+
## 23. Correction retrieval and fallback accounting
|
|
235
|
+
|
|
236
|
+
Correction retrieval followed search → lookup → slice → exact symbol source → continuation/dependency expansion → bounded ranges. Correction-run additional full source/test file reads: none.
|
|
237
|
+
|
|
238
|
+
The historical fallback ledger in section 15 is retained unchanged.
|