@dailephd/my-frontend-observer 0.9.0 → 0.9.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.
@@ -0,0 +1,206 @@
1
+ # v0.9.1 Pre-release Readiness
2
+
3
+ ## 1. VERDICT
4
+
5
+ `PASS_V0_9_1_PR_RUN_A_COMPLETE`
6
+
7
+ This report records the first complete cross-platform readiness proof for the
8
+ v0.9.1 maintenance candidate. It is not final merged-master readiness. A new
9
+ complete PR workflow is required after this report is committed because the
10
+ report changes the candidate package.
11
+
12
+ ## 2. Repository identity
13
+
14
+ - Repository: `dailephd/my-frontend-observer`
15
+ - Local repository: `C:\Users\daile\Projects\my-frontend-observer`
16
+ - Branch: `feature/v0.9.1-pwa-hard-gate-isolation`
17
+ - Implementation entry HEAD: `fbc081d6387cdb3aeacd79f5ed82bdcd8812fd93`
18
+ - Base before integration: `985d0ce47a070fd9f84eae478f4098df00d57bd8`
19
+ - Feature contains base: PASS
20
+
21
+ ## 3. v0.9.1 maintenance scope
22
+
23
+ v0.9.1 is a test and validation maintenance patch. It makes the PWA server-down
24
+ HARD GATE independently reproducible and adds the permanent command
25
+ `npm run test:pwa-hard-gate`. No production PWA behavior is intentionally
26
+ changed.
27
+
28
+ ## 4. v0.9.0 baseline
29
+
30
+ The package baseline remains `0.9.0`. `package.json`, `package-lock.json`, and
31
+ `package-lock.json` `packages[""].version` all remain `0.9.0`.
32
+
33
+ ## 5. Batch 1 implementation
34
+
35
+ Batch 1 is recorded in
36
+ `docs/reports/v0.9.1-batch1-pwa-hard-gate-isolation.md`. The implementation
37
+ isolates the server-down PWA test from prior test order, persistent Chromium
38
+ profiles, and prior service-worker cache state.
39
+
40
+ ## 6. Batch 2 permanent gate integration
41
+
42
+ Batch 2 is recorded in
43
+ `docs/reports/v0.9.1-batch2-hard-gate-validation-integration.md`. The isolated
44
+ gate is exposed as `npm run test:pwa-hard-gate` and is included in
45
+ `npm run test:security`. No workflow YAML change was required.
46
+
47
+ ## 7. Product-change audit
48
+
49
+ The implementation diff changes tests, scripts/package metadata, and
50
+ documentation only. No intended changes occur under `src/`, `viewer/src/`, or
51
+ `viewer/vite.config.ts`.
52
+
53
+ - `PRODUCT_FILES_CHANGED = false`
54
+ - `PRODUCT_SEMANTICS_CHANGED = false`
55
+ - `PRODUCT_DEFECT_DISCOVERED = false`
56
+ - `PRODUCT_CHANGE_REQUIRED = false`
57
+
58
+ ## 8. Isolated hard-gate invariant
59
+
60
+ The prior readiness predicate was:
61
+
62
+ ```text
63
+ registration?.active !== undefined
64
+ ```
65
+
66
+ At failure time, active registration state was `null` and the current page
67
+ controller was `null`. The old predicate falsely passed because `null !==
68
+ undefined`. The corrected proof requires:
69
+
70
+ ```text
71
+ registration.active !== null
72
+ navigator.serviceWorker.controller !== null
73
+ ```
74
+
75
+ The experiment also proves shell precache, zero `/api/` cache entries, live
76
+ evidence visibility, actual server unavailability, offline shell rendering,
77
+ evidence becoming unavailable, and stale evidence remaining absent.
78
+
79
+ ## 9. Local validation
80
+
81
+ All required local commands passed:
82
+
83
+ ```text
84
+ npm run test:pwa-hard-gate
85
+ npm run typecheck
86
+ npm run lint
87
+ npm test
88
+ npm run test:browser
89
+ npm run test:security
90
+ npm run build
91
+ npm run check:docs
92
+ npm pack --dry-run
93
+ ```
94
+
95
+ The local security chain executed and passed `npm run test:pwa-hard-gate`.
96
+ `LOCAL_SECURITY_CHAIN_ISOLATED_HARD_GATE = PASS`.
97
+
98
+ ## 10. PR_RUN_A identity
99
+
100
+ - PR: #16
101
+ - URL: https://github.com/dailephd/my-frontend-observer/pull/16
102
+ - Event: `pull_request`
103
+ - Head branch: `feature/v0.9.1-pwa-hard-gate-isolation`
104
+ - Head SHA: `fbc081d6387cdb3aeacd79f5ed82bdcd8812fd93`
105
+ - Run ID: `35624170324`
106
+ - Run URL: https://github.com/dailephd/my-frontend-observer/actions/runs/35624170324
107
+ - Conclusion: PASS
108
+
109
+ ## 11. Candidate package identity
110
+
111
+ - Filename: `dailephd-my-frontend-observer-0.9.0.tgz`
112
+ - SHA-256: `63ba0cee49dc976cd55515ae387c7d1e46b226fd090eb931483c9be3a92bfa5c`
113
+ - File count: `370`
114
+ - Package version: `0.9.0`
115
+ - Candidate head SHA: `fbc081d6387cdb3aeacd79f5ed82bdcd8812fd93`
116
+
117
+ The same exact candidate was verified by the Windows, Linux, and macOS smoke
118
+ jobs.
119
+
120
+ ## 12. Candidate Linux security result
121
+
122
+ The candidate job passed its security unit tests, browser security tests, and
123
+ the final isolated gate invocation. Its log includes the exact command
124
+ `npm run test:pwa-hard-gate`, one HARD GATE test passed with six focused tests
125
+ skipped, and no failure.
126
+
127
+ ## 13. Windows exact-package result
128
+
129
+ PASS. The Windows smoke job downloaded the candidate artifact, verified the
130
+ candidate SHA-256, and passed packed observation, packed v0.8.1 project/viewer,
131
+ and packed v0.9 annotation smoke.
132
+
133
+ ## 14. Linux exact-package result
134
+
135
+ PASS. The Linux smoke job downloaded the candidate artifact, verified the
136
+ candidate SHA-256, and passed packed observation, packed v0.8.1 project/viewer,
137
+ and packed v0.9 annotation smoke.
138
+
139
+ ## 15. macOS exact-package result
140
+
141
+ PASS. The macOS smoke job downloaded the candidate artifact, verified the
142
+ candidate SHA-256, and passed packed observation, packed v0.8.1 project/viewer,
143
+ and packed v0.9 annotation smoke.
144
+
145
+ ## 16. Windows tutorial result
146
+
147
+ PASS. All four existing v0.9 Observer tutorials passed through
148
+ `@dailephd/my-dev-kit-lab@0.4.9`.
149
+
150
+ ## 17. Linux tutorial result
151
+
152
+ PASS. All four existing v0.9 Observer tutorials passed through
153
+ `@dailephd/my-dev-kit-lab@0.4.9`.
154
+
155
+ ## 18. macOS tutorial result
156
+
157
+ PASS. All four existing v0.9 Observer tutorials passed through
158
+ `@dailephd/my-dev-kit-lab@0.4.9`.
159
+
160
+ ## 19. Package-content audit
161
+
162
+ The npm dry-run and exact candidate contents exclude implementation tests,
163
+ temporary PWA profiles, temporary evidence roots, `.my-dev-kit-workflow/`,
164
+ `examples/v09-demo/`, and generated tutorial artifacts. Normal `dist`, docs,
165
+ license, README, changelog, and package metadata remain present.
166
+
167
+ ## 20. Schema/dependency/version audit
168
+
169
+ - Observation schema: `1.2.0`
170
+ - Comparison schema: `1.0.0`
171
+ - Frontend contract schema: `1.0.0`
172
+ - Evaluation schema: `1.0.0`
173
+ - Bounded agent context schema: `1.0.0`
174
+ - External reference schema: `1.0.0`
175
+ - Visual annotation schema: `1.0.0`
176
+ - Viewer protocol: `1.3.0`
177
+ - `DEPENDENCY_CHANGED = false`
178
+ - `PACKAGE_VERSION_CHANGED = false`
179
+ - Package version: `0.9.0`
180
+
181
+ ## 21. Readiness-report candidate mutation
182
+
183
+ This tracked report changes the candidate bytes because it is included under
184
+ `docs/`. The report must therefore be committed and pushed, followed by a new
185
+ complete PR workflow against the report-containing head.
186
+
187
+ ## 22. PR_RUN_B
188
+
189
+ Not started at report creation. PR_RUN_B is required after the report commit
190
+ and must pass the candidate, all three exact-package smoke jobs, and all three
191
+ tutorial jobs.
192
+
193
+ ## 23. Integration handoff
194
+
195
+ Integration is not yet authorized by this report alone. After PR_RUN_B passes,
196
+ merge PR #16 using the repository merge-commit convention. Preserve both the
197
+ implementation branch and the planning branch.
198
+
199
+ ## 24. Remaining exact-master validation
200
+
201
+ After the merge, manually dispatch `Pre-release readiness` on the exact merged
202
+ `master` SHA because the workflow does not run automatically on pushes to
203
+ `master`. Require the complete seven-job matrix, verify the isolated hard gate
204
+ again in the Linux candidate job, and leave local `master` at that validated
205
+ merged SHA. Version bumping, tagging, publishing, GitHub Release creation, and
206
+ release-branch creation remain out of scope.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dailephd/my-frontend-observer",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -34,7 +34,8 @@
34
34
  "lint": "eslint .",
35
35
  "test": "vitest run --passWithNoTests",
36
36
  "test:browser": "vitest run --config vitest.browser.config.ts --passWithNoTests",
37
- "test:security": "vitest run tests/unit/policy.test.ts tests/unit/viewerServer.test.ts tests/unit/viewerEvidenceServer.test.ts tests/unit/referenceViewerServer.test.ts tests/unit/contextViewerServer.test.ts tests/unit/paths.test.ts tests/unit/evidenceDiscovery.test.ts tests/unit/projectWorkflow.test.ts tests/unit/projectCheckService.test.ts tests/unit/projectCheckResult.test.ts tests/unit/viewerAuthoringSecurity.test.ts tests/unit/viewerAnnotationAuthoring.test.ts tests/unit/viewerAnnotationEvidence.test.ts tests/unit/viewerAnnotationContractPromotion.test.ts tests/unit/viewerAnnotationReferenceMaterialization.test.ts tests/unit/evidenceDiscoveryTempDirectories.test.ts && vitest run --config vitest.browser.config.ts tests/browser/chromiumAdapter.test.ts tests/browser/pwaHardening.test.ts tests/browser/projectCheckWorkflow.test.ts",
37
+ "test:security": "vitest run tests/unit/policy.test.ts tests/unit/viewerServer.test.ts tests/unit/viewerEvidenceServer.test.ts tests/unit/referenceViewerServer.test.ts tests/unit/contextViewerServer.test.ts tests/unit/paths.test.ts tests/unit/evidenceDiscovery.test.ts tests/unit/projectWorkflow.test.ts tests/unit/projectCheckService.test.ts tests/unit/projectCheckResult.test.ts tests/unit/viewerAuthoringSecurity.test.ts tests/unit/viewerAnnotationAuthoring.test.ts tests/unit/viewerAnnotationEvidence.test.ts tests/unit/viewerAnnotationContractPromotion.test.ts tests/unit/viewerAnnotationReferenceMaterialization.test.ts tests/unit/evidenceDiscoveryTempDirectories.test.ts && vitest run --config vitest.browser.config.ts tests/browser/chromiumAdapter.test.ts tests/browser/pwaHardening.test.ts tests/browser/projectCheckWorkflow.test.ts && npm run test:pwa-hard-gate",
38
+ "test:pwa-hard-gate": "vitest run --config vitest.browser.config.ts tests/browser/pwaHardening.test.ts -t \"HARD GATE\"",
38
39
  "check:docs": "node scripts/check-docs.mjs"
39
40
  },
40
41
  "devDependencies": {