@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.
- package/CHANGELOG.md +17 -0
- package/README.md +8 -6
- package/docs/CI_CD.md +22 -1
- package/docs/COMMANDS.md +1 -1
- package/docs/CURRENT_STATE.md +70 -3
- package/docs/DEVELOPMENT.md +32 -2
- package/docs/PROJECT_MILESTONES.md +28 -0
- package/docs/PROJECT_OVERVIEW.md +22 -5
- package/docs/RELEASE.md +4 -3
- package/docs/ROADMAP.md +54 -2
- package/docs/WORKFLOWS.md +1 -1
- package/docs/plans/v0.9.1-implementation-plan.md +468 -0
- package/docs/reports/v0.9.1-batch1-pwa-hard-gate-isolation.md +359 -0
- package/docs/reports/v0.9.1-batch2-hard-gate-validation-integration.md +262 -0
- package/docs/reports/v0.9.1-pre-release-readiness.md +206 -0
- package/package.json +3 -2
|
@@ -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.
|
|
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": {
|