@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,120 +1,120 @@
1
- # v0.10 Pre-release Readiness
2
-
3
- ## Provisional verdict
4
-
5
- RUN_A passed on the corrected validation candidate. This report is intentionally
6
- provisional: it is shipped by the package `files` allowlist, so committing it
7
- changes candidate bytes. A complete RUN_B against the report-containing HEAD is
8
- required before the final readiness verdict may be declared.
9
-
10
- ## Repository and release state
11
-
12
- - Repository: `my-frontend-observer`
13
- - Validation branch: `validation/v0.10-pre-release`
14
- - Validation entry HEAD: `ce8bf7c7b0060b35cfb2fdd850c7a80ff0b340ad`
15
- - RUN_A HEAD: `b1c273d853dd9f00394b355522d06c344252e928`
16
- - Package: `@dailephd/my-frontend-observer@0.9.1`
17
- - Latest npm-published version: `0.9.1`
18
- - v0.10 release/tag/publication: not performed
19
- - Implementation-completeness reconciliation: `ce8bf7c7b0060b35cfb2fdd850c7a80ff0b340ad`
20
-
21
- ## Local validation before RUN_A
22
-
23
- The canonical local chain passed on the corrected HEAD: `npm ci`, Chromium
24
- installation, typecheck, lint, unit tests (99 files / 1,524 tests), browser
25
- tests (32 files / 301 tests), security tests, isolated PWA hard gate, build,
26
- documentation check, `git diff --check`, and `npm pack --dry-run`.
27
-
28
- The local security result was PASS. The isolated PWA hard gate passed independently
29
- and also through the security command, preserving active-worker, controlled-page,
30
- shell-precache, zero-API-cache, server-down, offline-shell, unavailable-evidence,
31
- and stale-identity assertions.
32
-
33
- ## RUN_A
34
-
35
- - Workflow: `Pre-release readiness`
36
- - Run ID: `35785226212`
37
- - URL: https://github.com/dailephd/my-frontend-observer/actions/runs/35785226212
38
- - Event: push
39
- - Branch: `validation/v0.10-pre-release`
40
- - Exact HEAD: `b1c273d853dd9f00394b355522d06c344252e928`
41
- - Conclusion: PASS
42
-
43
- All seven required jobs passed:
44
-
45
- | Job | Result |
46
- | --- | --- |
47
- | Package exact candidate (Linux, Node 24) | PASS |
48
- | ubuntu-latest exact-candidate smoke | PASS |
49
- | windows-latest exact-candidate smoke | PASS |
50
- | macos-latest exact-candidate smoke | PASS |
51
- | ubuntu-latest Observer tutorial readiness | PASS |
52
- | windows-latest Observer tutorial readiness | PASS |
53
- | macos-latest Observer tutorial readiness | PASS |
54
-
55
- ## Exact candidate and matrix proof
56
-
57
- - Candidate filename: `dailephd-my-frontend-observer-0.9.1.tgz`
58
- - Candidate package version: `0.9.1`
59
- - Candidate SHA-256: `bda75f4f5ca441b3f58f9fe6ffa535f41904608a783961db8bcef4171f353ef5`
60
- - Independently downloaded/recomputed SHA-256: identical
61
- - Windows, Linux, and macOS each verified the candidate SHA and used the same tarball.
62
- - Each OS uploaded `smoke-summary.json`, `viewer-smoke-summary.json`,
63
- `v09-annotation-smoke-summary.json`, and `v010-workflow-smoke-summary.json`.
64
-
65
- The four packed smokes passed on every OS: observation, Viewer/project workflow,
66
- v0.9 annotation, and v0.10 visual workflow. The v0.10 summaries prove installed
67
- package workflow creation/activation, two-attempt immutable correction history,
68
- non-PASS rejection and PASS acceptance, reference bindings, Viewer discovery,
69
- standalone read-only behavior, and absence of authoring token, note text, absolute
70
- project/temp paths, and orchestrator paths.
71
-
72
- The three tutorial-readiness jobs also passed, preserving the v0.9 tutorial
73
- regression on Windows, Linux, and macOS.
74
-
75
- ## Security and package audit
76
-
77
- RUN_A exercised the existing formal security suite and PWA hard gate in the
78
- candidate job. The added v0.10 attack surface remains bounded by loopback,
79
- Host/Origin/token, JSON/body/compression, path-containment, immutable-parent,
80
- handoff-privacy, standalone-read-only, and orchestrator-non-authority controls.
81
-
82
- The candidate retained package version `0.9.1`, Viewer protocol `1.3.0`, all
83
- governed schema versions, and no dependency/schema/version changes. Package
84
- contents were audited locally for compiled v0.10 exports and Viewer assets, with
85
- tests, generated state, browser profiles, summaries, and nested tarballs excluded.
86
-
87
- ## Failed-run history and correction
88
-
89
- Earlier same-HEAD runs are retained as historical diagnosis:
90
-
91
- 1. Run `35780908327` exposed hosted browser flakes in an existing screenshot
92
- comparison and materialization toast assertion; it was cancelled after the
93
- candidate failed and its matrix was not promoted.
94
- 2. A same-HEAD rerun reproduced the materialization toast synchronization issue.
95
- The test was corrected to rely on the already asserted HTTP 201 response and
96
- exact canonical artifact reselection.
97
- 3. Run `35783718376` then exposed a separate Chromium adapter flake and a
98
- macOS-only packed activation failure.
99
- 4. The packed smoke was corrected to canonicalize its disposable temp root before
100
- deriving relative artifact paths. Local validation passed, and RUN_A above
101
- passed all seven jobs on the corrected candidate.
102
-
103
- No product semantics, governed schema, dependency, package version, or readiness
104
- workflow architecture changed.
105
-
106
- ## RUN_B requirement
107
-
108
- This tracked report changes the npm candidate bytes because `docs/` is included
109
- in the package. Commit it with:
110
-
111
- `docs: record v0.10 pre-release readiness`
112
-
113
- Push the resulting `REPORT_HEAD` to this validation branch and require a new
114
- complete `Pre-release readiness` run whose exact HEAD equals `REPORT_HEAD`.
115
- RUN_B must independently pass the candidate job, all three exact-candidate smoke
116
- lanes, and all three tutorial-readiness lanes. Only then may the overall verdict
117
- become `PASS_V0_10_PRERELEASE_READY_FOR_RELEASE_PREP`.
118
-
119
- Release operations performed: none. Version bump, tag, publication, merge, and
120
- GitHub Release remain unauthorized and incomplete.
1
+ # v0.10 Pre-release Readiness
2
+
3
+ ## Provisional verdict
4
+
5
+ RUN_A passed on the corrected validation candidate. This report is intentionally
6
+ provisional: it is shipped by the package `files` allowlist, so committing it
7
+ changes candidate bytes. A complete RUN_B against the report-containing HEAD is
8
+ required before the final readiness verdict may be declared.
9
+
10
+ ## Repository and release state
11
+
12
+ - Repository: `my-frontend-observer`
13
+ - Validation branch: `validation/v0.10-pre-release`
14
+ - Validation entry HEAD: `ce8bf7c7b0060b35cfb2fdd850c7a80ff0b340ad`
15
+ - RUN_A HEAD: `b1c273d853dd9f00394b355522d06c344252e928`
16
+ - Package: `@dailephd/my-frontend-observer@0.9.1`
17
+ - Latest npm-published version: `0.9.1`
18
+ - v0.10 release/tag/publication: not performed
19
+ - Implementation-completeness reconciliation: `ce8bf7c7b0060b35cfb2fdd850c7a80ff0b340ad`
20
+
21
+ ## Local validation before RUN_A
22
+
23
+ The canonical local chain passed on the corrected HEAD: `npm ci`, Chromium
24
+ installation, typecheck, lint, unit tests (99 files / 1,524 tests), browser
25
+ tests (32 files / 301 tests), security tests, isolated PWA hard gate, build,
26
+ documentation check, `git diff --check`, and `npm pack --dry-run`.
27
+
28
+ The local security result was PASS. The isolated PWA hard gate passed independently
29
+ and also through the security command, preserving active-worker, controlled-page,
30
+ shell-precache, zero-API-cache, server-down, offline-shell, unavailable-evidence,
31
+ and stale-identity assertions.
32
+
33
+ ## RUN_A
34
+
35
+ - Workflow: `Pre-release readiness`
36
+ - Run ID: `35785226212`
37
+ - URL: https://github.com/dailephd/my-frontend-observer/actions/runs/35785226212
38
+ - Event: push
39
+ - Branch: `validation/v0.10-pre-release`
40
+ - Exact HEAD: `b1c273d853dd9f00394b355522d06c344252e928`
41
+ - Conclusion: PASS
42
+
43
+ All seven required jobs passed:
44
+
45
+ | Job | Result |
46
+ | --- | --- |
47
+ | Package exact candidate (Linux, Node 24) | PASS |
48
+ | ubuntu-latest exact-candidate smoke | PASS |
49
+ | windows-latest exact-candidate smoke | PASS |
50
+ | macos-latest exact-candidate smoke | PASS |
51
+ | ubuntu-latest Observer tutorial readiness | PASS |
52
+ | windows-latest Observer tutorial readiness | PASS |
53
+ | macos-latest Observer tutorial readiness | PASS |
54
+
55
+ ## Exact candidate and matrix proof
56
+
57
+ - Candidate filename: `dailephd-my-frontend-observer-0.9.1.tgz`
58
+ - Candidate package version: `0.9.1`
59
+ - Candidate SHA-256: `bda75f4f5ca441b3f58f9fe6ffa535f41904608a783961db8bcef4171f353ef5`
60
+ - Independently downloaded/recomputed SHA-256: identical
61
+ - Windows, Linux, and macOS each verified the candidate SHA and used the same tarball.
62
+ - Each OS uploaded `smoke-summary.json`, `viewer-smoke-summary.json`,
63
+ `v09-annotation-smoke-summary.json`, and `v010-workflow-smoke-summary.json`.
64
+
65
+ The four packed smokes passed on every OS: observation, Viewer/project workflow,
66
+ v0.9 annotation, and v0.10 visual workflow. The v0.10 summaries prove installed
67
+ package workflow creation/activation, two-attempt immutable correction history,
68
+ non-PASS rejection and PASS acceptance, reference bindings, Viewer discovery,
69
+ standalone read-only behavior, and absence of authoring token, note text, absolute
70
+ project/temp paths, and orchestrator paths.
71
+
72
+ The three tutorial-readiness jobs also passed, preserving the v0.9 tutorial
73
+ regression on Windows, Linux, and macOS.
74
+
75
+ ## Security and package audit
76
+
77
+ RUN_A exercised the existing formal security suite and PWA hard gate in the
78
+ candidate job. The added v0.10 attack surface remains bounded by loopback,
79
+ Host/Origin/token, JSON/body/compression, path-containment, immutable-parent,
80
+ handoff-privacy, standalone-read-only, and orchestrator-non-authority controls.
81
+
82
+ The candidate retained package version `0.9.1`, Viewer protocol `1.3.0`, all
83
+ governed schema versions, and no dependency/schema/version changes. Package
84
+ contents were audited locally for compiled v0.10 exports and Viewer assets, with
85
+ tests, generated state, browser profiles, summaries, and nested tarballs excluded.
86
+
87
+ ## Failed-run history and correction
88
+
89
+ Earlier same-HEAD runs are retained as historical diagnosis:
90
+
91
+ 1. Run `35780908327` exposed hosted browser flakes in an existing screenshot
92
+ comparison and materialization toast assertion; it was cancelled after the
93
+ candidate failed and its matrix was not promoted.
94
+ 2. A same-HEAD rerun reproduced the materialization toast synchronization issue.
95
+ The test was corrected to rely on the already asserted HTTP 201 response and
96
+ exact canonical artifact reselection.
97
+ 3. Run `35783718376` then exposed a separate Chromium adapter flake and a
98
+ macOS-only packed activation failure.
99
+ 4. The packed smoke was corrected to canonicalize its disposable temp root before
100
+ deriving relative artifact paths. Local validation passed, and RUN_A above
101
+ passed all seven jobs on the corrected candidate.
102
+
103
+ No product semantics, governed schema, dependency, package version, or readiness
104
+ workflow architecture changed.
105
+
106
+ ## RUN_B requirement
107
+
108
+ This tracked report changes the npm candidate bytes because `docs/` is included
109
+ in the package. Commit it with:
110
+
111
+ `docs: record v0.10 pre-release readiness`
112
+
113
+ Push the resulting `REPORT_HEAD` to this validation branch and require a new
114
+ complete `Pre-release readiness` run whose exact HEAD equals `REPORT_HEAD`.
115
+ RUN_B must independently pass the candidate job, all three exact-candidate smoke
116
+ lanes, and all three tutorial-readiness lanes. Only then may the overall verdict
117
+ become `PASS_V0_10_PRERELEASE_READY_FOR_RELEASE_PREP`.
118
+
119
+ Release operations performed: none. Version bump, tag, publication, merge, and
120
+ GitHub Release remain unauthorized and incomplete.
@@ -1,70 +1,70 @@
1
- # v0.10.0 Release Preparation
2
-
3
- ## 1. Verdict and identity
4
-
5
- Verdict: `PASS_READY_TO_PUBLISH_AFTER_USER_APPROVAL`
6
-
7
- Repository: `dailephd/my-frontend-observer` (`C:\Users\daile\Projects\my-frontend-observer`)
8
- Workflow: `RELEASE_PREPARATION`
9
- Source validation branch: `validation/v0.10-pre-release`
10
- Starting RUN_B-validated SHA: `4ae5b9e0328364dd27e0761b8f243093bdcb3f45`
11
- Inherited RUN_B: `35789033295`, workflow `Pre-release readiness`, conclusion success. Its seven required jobs all succeeded. Readiness was inherited; RUN_B was not rerun.
12
- Release branch: `release/v0.10.0`, created directly from the exact validated SHA without merge or rebase.
13
- Package: `@dailephd/my-frontend-observer`
14
- Old package version: `0.9.1`
15
- Target package version: `0.10.0`
16
-
17
- ## 2. Release-state preflight
18
-
19
- - npm current version before preparation: `0.9.1`.
20
- - npm `0.10.0`: absent (npm returned E404 for the exact version).
21
- - Local `v0.10.0` tag: absent.
22
- - Remote `origin` `v0.10.0` tag: absent.
23
- - GitHub Release `v0.10.0`: absent.
24
- - Local and remote `release/v0.10.0` branches: absent before creation.
25
- - GitHub identity: `dailephd/my-frontend-observer`, default branch `master`; `gh auth status` succeeded.
26
- - `package.json` identity: `@dailephd/my-frontend-observer`.
27
-
28
- ## 3. Version and documentation state
29
-
30
- `package.json` version, `package-lock.json` version, and `package-lock.json` `packages[""]` version are all `0.10.0`. The version was changed with `npm version 0.10.0 --no-git-tag-version`; no version commit or tag was created by npm.
31
-
32
- The changelog keeps `## [Unreleased]` for future work and adds `## 0.10.0 - 2026-09-23` describing the shipped Visual Change workflow, actual/reference entry, artifact/handoff versions, explicit activation, bounded coding-agent handoff, immutable correction history, PASS-only acceptance, separate governance, installed-package/Viewer support, and security boundaries.
33
-
34
- README identifies v0.10.0 as current and accurately describes the normal user-facing Visual Change workflow. `docs/CURRENT_STATE.md` records the current release, complete shipped workflow, formal Windows/Linux/macOS readiness, package version, independently versioned schemas, and Viewer protocol. `docs/ROADMAP.md` changes only the high-level v0.10 release status and preserves future-version planning. `docs/PROJECT_OVERVIEW.md`, `docs/RELEASE.md`, `docs/CI_CD.md`, `docs/SECURITY.md`, and `docs/QUICKSTART.md` state the final v0.10 release and readiness facts while retaining relevant security limitations. Commands, workflows, contracts, and architecture semantics were not changed.
35
-
36
- `docs/reports/v0.10-pre-release-readiness.md` was preserved unchanged. The existing `scripts/check-docs.mjs` was narrowly updated to enforce final release consistency: a dated 0.10.0 changelog entry plus an Unreleased section, current package/release/readiness/protocol facts, roadmap release status, and canonical contract markers. It was not disabled and no second checker was added. `npm run check:docs` passed after the change.
37
-
38
- ## 4. Source, dependencies, schemas, and package
39
-
40
- Production source audit: `git diff -- src viewer/src` is empty; no executable product changes were made. Dependency audit: `dependencies` and `devDependencies` are identical to the starting commit (`DEPENDENCY_CHANGED = false`).
41
-
42
- Schema/protocol inventory is unchanged: observation `1.2.0`; comparison `1.0.0`; frontend contract `1.0.0`; evaluation `1.0.0`; bounded-agent-context `1.0.0`; external-reference `1.0.0`; visual annotation `1.0.0`; visual-change-workflow `1.0.0`; handoff `1.0.0`; Viewer protocol `1.3.0`.
43
-
44
- Package hygiene: `.gitignore` excludes `node_modules/`, `dist/`, and the `.my-dev-kit-*` generated workflow/context roots. No `.npmignore` is present. `package.json#files` allowlists `dist`, README, CHANGELOG, docs, and LICENSE. `npm pack --dry-run` reports package `@dailephd/my-frontend-observer@0.10.0`, 437 files in the final dry run (436 before adding this report), and includes compiled visual-change workflow owners, Viewer/PWA assets, README, changelog, and release docs. The JSON dry-run content audit found no tests, private workflow/context roots, caches, browser profiles, smoke summaries, nested tarballs, or `node_modules`. No tarball was created by the dry run.
45
-
46
- ## 5. Local validation
47
-
48
- All requested commands passed after release-preparation edits:
49
-
50
- - `npm run typecheck`: PASS.
51
- - `npm run lint`: PASS.
52
- - `npm test`: PASS, 99 files and 1,524 tests.
53
- - `npm run test:browser`: PASS, 32 files and 301 tests.
54
- - `npm run test:security`: PASS, including 16 security unit files (168 tests), 3 browser files (77 tests), and the PWA hard gate.
55
- - `npm run test:pwa-hard-gate`: PASS, one hard-gate test; six unrelated tests filtered by the task's script.
56
- - `npm run build`: PASS.
57
- - `npm run check:docs`: PASS (17 required documentation files).
58
- - `git diff --check`: PASS.
59
- - `npm pack --dry-run`: PASS, package identity/version and content audit as above.
60
- - `node dist/cli.js --version`: `0.10.0`.
61
- - `node dist/cli.js --help`: PASS; expected command surface displayed.
62
-
63
- ## 6. Git, publication boundary, and handoff
64
-
65
- Release-preparation commit message: `chore: prepare v0.10.0 release`.
66
- Push target: `origin release/v0.10.0`. The commit is pushed and the post-push check confirms the remote branch matches the local release-preparation commit. The tracked worktree is clean after push. The final commit SHA and branch tip are recorded in the handoff summary.
67
-
68
- No product-semantic changes, dependency changes, tag, GitHub Release, npm publication, dist-tag change, PR, or merge were made. The historical pre-release readiness report was not edited. Generated build output remains ignored; no local/private generated files are staged or packaged.
69
-
70
- Exact next action: await explicit user approval. After approval, run the standardized GitHub release + final npm publication workflow from `release/v0.10.0`. The publication workflow must create/validate the release PR, merge it, validate master, create/push `v0.10.0`, create/verify the GitHub Release, verify release-channel parity, and run `npm publish --access public` as the final state-changing command.
1
+ # v0.10.0 Release Preparation
2
+
3
+ ## 1. Verdict and identity
4
+
5
+ Verdict: `PASS_READY_TO_PUBLISH_AFTER_USER_APPROVAL`
6
+
7
+ Repository: `dailephd/my-frontend-observer` (`C:\Users\daile\Projects\my-frontend-observer`)
8
+ Workflow: `RELEASE_PREPARATION`
9
+ Source validation branch: `validation/v0.10-pre-release`
10
+ Starting RUN_B-validated SHA: `4ae5b9e0328364dd27e0761b8f243093bdcb3f45`
11
+ Inherited RUN_B: `35789033295`, workflow `Pre-release readiness`, conclusion success. Its seven required jobs all succeeded. Readiness was inherited; RUN_B was not rerun.
12
+ Release branch: `release/v0.10.0`, created directly from the exact validated SHA without merge or rebase.
13
+ Package: `@dailephd/my-frontend-observer`
14
+ Old package version: `0.9.1`
15
+ Target package version: `0.10.0`
16
+
17
+ ## 2. Release-state preflight
18
+
19
+ - npm current version before preparation: `0.9.1`.
20
+ - npm `0.10.0`: absent (npm returned E404 for the exact version).
21
+ - Local `v0.10.0` tag: absent.
22
+ - Remote `origin` `v0.10.0` tag: absent.
23
+ - GitHub Release `v0.10.0`: absent.
24
+ - Local and remote `release/v0.10.0` branches: absent before creation.
25
+ - GitHub identity: `dailephd/my-frontend-observer`, default branch `master`; `gh auth status` succeeded.
26
+ - `package.json` identity: `@dailephd/my-frontend-observer`.
27
+
28
+ ## 3. Version and documentation state
29
+
30
+ `package.json` version, `package-lock.json` version, and `package-lock.json` `packages[""]` version are all `0.10.0`. The version was changed with `npm version 0.10.0 --no-git-tag-version`; no version commit or tag was created by npm.
31
+
32
+ The changelog keeps `## [Unreleased]` for future work and adds `## 0.10.0 - 2026-09-23` describing the shipped Visual Change workflow, actual/reference entry, artifact/handoff versions, explicit activation, bounded coding-agent handoff, immutable correction history, PASS-only acceptance, separate governance, installed-package/Viewer support, and security boundaries.
33
+
34
+ README identifies v0.10.0 as current and accurately describes the normal user-facing Visual Change workflow. `docs/CURRENT_STATE.md` records the current release, complete shipped workflow, formal Windows/Linux/macOS readiness, package version, independently versioned schemas, and Viewer protocol. `docs/ROADMAP.md` changes only the high-level v0.10 release status and preserves future-version planning. `docs/PROJECT_OVERVIEW.md`, `docs/RELEASE.md`, `docs/CI_CD.md`, `docs/SECURITY.md`, and `docs/QUICKSTART.md` state the final v0.10 release and readiness facts while retaining relevant security limitations. Commands, workflows, contracts, and architecture semantics were not changed.
35
+
36
+ `docs/reports/v0.10-pre-release-readiness.md` was preserved unchanged. The existing `scripts/check-docs.mjs` was narrowly updated to enforce final release consistency: a dated 0.10.0 changelog entry plus an Unreleased section, current package/release/readiness/protocol facts, roadmap release status, and canonical contract markers. It was not disabled and no second checker was added. `npm run check:docs` passed after the change.
37
+
38
+ ## 4. Source, dependencies, schemas, and package
39
+
40
+ Production source audit: `git diff -- src viewer/src` is empty; no executable product changes were made. Dependency audit: `dependencies` and `devDependencies` are identical to the starting commit (`DEPENDENCY_CHANGED = false`).
41
+
42
+ Schema/protocol inventory is unchanged: observation `1.2.0`; comparison `1.0.0`; frontend contract `1.0.0`; evaluation `1.0.0`; bounded-agent-context `1.0.0`; external-reference `1.0.0`; visual annotation `1.0.0`; visual-change-workflow `1.0.0`; handoff `1.0.0`; Viewer protocol `1.3.0`.
43
+
44
+ Package hygiene: `.gitignore` excludes `node_modules/`, `dist/`, and the `.my-dev-kit-*` generated workflow/context roots. No `.npmignore` is present. `package.json#files` allowlists `dist`, README, CHANGELOG, docs, and LICENSE. `npm pack --dry-run` reports package `@dailephd/my-frontend-observer@0.10.0`, 437 files in the final dry run (436 before adding this report), and includes compiled visual-change workflow owners, Viewer/PWA assets, README, changelog, and release docs. The JSON dry-run content audit found no tests, private workflow/context roots, caches, browser profiles, smoke summaries, nested tarballs, or `node_modules`. No tarball was created by the dry run.
45
+
46
+ ## 5. Local validation
47
+
48
+ All requested commands passed after release-preparation edits:
49
+
50
+ - `npm run typecheck`: PASS.
51
+ - `npm run lint`: PASS.
52
+ - `npm test`: PASS, 99 files and 1,524 tests.
53
+ - `npm run test:browser`: PASS, 32 files and 301 tests.
54
+ - `npm run test:security`: PASS, including 16 security unit files (168 tests), 3 browser files (77 tests), and the PWA hard gate.
55
+ - `npm run test:pwa-hard-gate`: PASS, one hard-gate test; six unrelated tests filtered by the task's script.
56
+ - `npm run build`: PASS.
57
+ - `npm run check:docs`: PASS (17 required documentation files).
58
+ - `git diff --check`: PASS.
59
+ - `npm pack --dry-run`: PASS, package identity/version and content audit as above.
60
+ - `node dist/cli.js --version`: `0.10.0`.
61
+ - `node dist/cli.js --help`: PASS; expected command surface displayed.
62
+
63
+ ## 6. Git, publication boundary, and handoff
64
+
65
+ Release-preparation commit message: `chore: prepare v0.10.0 release`.
66
+ Push target: `origin release/v0.10.0`. The commit is pushed and the post-push check confirms the remote branch matches the local release-preparation commit. The tracked worktree is clean after push. The final commit SHA and branch tip are recorded in the handoff summary.
67
+
68
+ No product-semantic changes, dependency changes, tag, GitHub Release, npm publication, dist-tag change, PR, or merge were made. The historical pre-release readiness report was not edited. Generated build output remains ignored; no local/private generated files are staged or packaged.
69
+
70
+ Exact next action: await explicit user approval. After approval, run the standardized GitHub release + final npm publication workflow from `release/v0.10.0`. The publication workflow must create/validate the release PR, merge it, validate master, create/push `v0.10.0`, create/verify the GitHub Release, verify release-channel parity, and run `npm publish --access public` as the final state-changing command.
@@ -0,0 +1,86 @@
1
+ # v0.10.1 Project Check Baseline Context Replay — Implementation Report
2
+
3
+ ## Result
4
+
5
+ At implementation completion, the bounded maintenance fix was recorded at
6
+ `82dc7745b1935b827a57870ff9a942d166d4cca5` on
7
+ `fix/v0.10.1-project-check-baseline-context`, while package version `0.10.0`
8
+ remained unchanged. This report preserves that implementation-time snapshot;
9
+ formal readiness passed later, and release-preparation state is tracked in
10
+ `docs/RELEASE.md`.
11
+
12
+ ## Defect and correction
13
+
14
+ Project-aware `check` validated an immutable baseline before capture, but the candidate capture used only the project configuration. When the baseline carried `requestConfig.scrollScenario` or `requestConfig.explicitState`, the candidate omitted those dimensions and could be classified as incomparable even when rendered evidence had no differences.
15
+
16
+ After baseline validation, `checkProject` now derives an optional, narrow replay context from the validated baseline artifact and passes only `scrollScenario` and `explicitState` to candidate capture. Current project configuration still owns URL, viewport, semantic targets, and ordinary capture defaults. The canonical request normalization and browser observation path remain responsible for validation and actual scroll execution. Unrelated baseline request fields are not replayed.
17
+
18
+ `scrollScenario` replay executes the same bounded browser scroll action. `explicitState` replay retains caller-declared identity metadata only; it does not establish theme, application, authentication, cookie, storage, or session state. No state inference or setup was added. Controlled state/session setup remains future v0.12 scope.
19
+
20
+ ## Changed owners and preserved boundaries
21
+
22
+ The implementation extends `src/application/projectCheckService.ts` and the existing candidate capture path in `src/application/projectWorkflowService.ts`, with unit, workflow, and real-Chromium regression coverage. It does not alter the comparison rules or weaken comparability.
23
+
24
+ At implementation completion, project config remained schema `1.1.0` and rejected top-level `scrollScenario` and `explicitState`. Normal `init` and `capture` remained project-config-driven. The machine-facing CLI remained `check <baseline> --json`; no flags were added. Observation schema remained `1.2.0`; comparison schema remained `1.0.0`; check-result schema remained `1.0.0`. Viewer protocol was unchanged. No dependency was added, and package version was `0.10.0`.
25
+
26
+ ## Verification evidence
27
+
28
+ The implementation acceptance run recorded:
29
+
30
+ - Typecheck, lint, build: PASS.
31
+ - Unit tests: 1,527 passed.
32
+ - Browser tests: 302 passed.
33
+ - Security tests: 170 unit and 78 browser tests passed.
34
+ - PWA hard gate: PASS.
35
+ - Real-Chromium project-check reproducer: baseline and candidate retained both low-level dimensions; the bounded scroll action executed; check returned `PASS`, comparison was comparable with zero differences, configured contract passed, and blockers were empty.
36
+ - Negative target-scroll case: missing/incompatible project target fails through the existing honest blocked/failure path.
37
+ - Project-config boundary, immutable baseline, and current-history regressions: PASS.
38
+
39
+ Downstream consumer validation used the unchanged `iworkhere.space` candidate `b0ee1bb251571ce2f83b08c55285a12ee68dc4c4` with this maintenance implementation. Five document routes at desktop `1440×900` and mobile `390×844` produced 10/10 passing Observer checks, comparable results, zero differences, and passing configured contracts. This proves the original missing-context blocker is removed for that consumer candidate; it is not a release claim for iworkhere.space v0.3.0.
40
+
41
+ ## Release lifecycle at implementation completion
42
+
43
+ At this report's implementation-time snapshot, current published release and
44
+ package version were `0.10.0`. Documentation reconciliation and the packed-
45
+ readiness coverage correction were complete, while formal readiness, release
46
+ preparation, version bump, publication, PR, and merge had not occurred. These
47
+ are historical lifecycle facts; subsequent release state is recorded in
48
+ `docs/CURRENT_STATE.md` and `docs/RELEASE.md`.
49
+
50
+ ## Pre-readiness packed-acceptance coverage correction
51
+
52
+ PRE_READINESS_PACKED_ACCEPTANCE_GAP: FOUND. The existing packed project/viewer
53
+ smoke exercised installed `check` but did not include a baseline carrying both
54
+ `scrollScenario` and `explicitState`. Source/unit/browser validation and the
55
+ downstream consumer smoke did not close that installed-tarball acceptance gap.
56
+
57
+ Correction: `scripts/ci/runPackedViewerSmoke.mjs`, the existing installed
58
+ project/viewer smoke owner, now creates a canonical low-level observation with
59
+ both dimensions through the installed CLI, registers its generated identities
60
+ in the existing schema-1.0.0 catalog, and checks it using installed
61
+ `check <baseline> --json` with no added flags. The assertion requires real
62
+ scroll evidence, matching candidate request context, a comparable zero-
63
+ difference result, passing configured contract, no blockers, and immutable
64
+ baseline/source/configuration. The smoke summary records bounded v0.10.1
65
+ acceptance fields. The existing three-OS matrix already invokes this same
66
+ smoke on the one frozen tarball, so readiness workflow architecture is
67
+ unchanged.
68
+
69
+ PRODUCT_SOURCE_CHANGED: NO
70
+ READINESS_WORKFLOW_ARCHITECTURE_CHANGED: NO
71
+ At the time of this packed-acceptance correction, formal v0.10.1 readiness had
72
+ not yet run; local packed regression was validation evidence only.
73
+
74
+ ### Local exact-packed-candidate evidence
75
+
76
+ One local `0.10.0` tarball was installed and exercised by the existing packed
77
+ observation, Viewer/project, v0.9 annotation, and v0.10 workflow smokes. The
78
+ updated `runPackedViewerSmoke.mjs` passed on Windows and wrote
79
+ `viewer-smoke-summary.json`; its `projectCheckBaselineContextReplay` section
80
+ records check exit 0/PASS, comparable/zero differences, contract PASS, zero
81
+ blockers, both context matches, real baseline/candidate scroll to 240,
82
+ immutable baseline/source/configuration, and current-only alias advancement.
83
+ Exact local tarball identity and summaries are retained in project-local
84
+ workflow evidence.
85
+
86
+ Validation after this correction: typecheck PASS; lint PASS; 1,527 unit tests PASS; 302 browser tests PASS; security 170 unit + 78 browser tests PASS; the nested PWA hard-gate invocation PASS; build PASS; docs check PASS. No hosted workflow or formal readiness run was started.