@dailephd/my-frontend-observer 0.9.1 → 0.10.0

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 (104) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/README.md +17 -9
  3. package/dist/application/visualChangeAgentHandoffService.d.ts +28 -0
  4. package/dist/application/visualChangeAgentHandoffService.js +111 -0
  5. package/dist/application/visualChangeAgentHandoffService.js.map +1 -0
  6. package/dist/application/visualChangeProjectWorkflowService.d.ts +95 -0
  7. package/dist/application/visualChangeProjectWorkflowService.js +376 -0
  8. package/dist/application/visualChangeProjectWorkflowService.js.map +1 -0
  9. package/dist/application/visualChangeReviewService.d.ts +50 -0
  10. package/dist/application/visualChangeReviewService.js +69 -0
  11. package/dist/application/visualChangeReviewService.js.map +1 -0
  12. package/dist/application/visualChangeWorkflowPersistenceService.d.ts +26 -0
  13. package/dist/application/visualChangeWorkflowPersistenceService.js +15 -0
  14. package/dist/application/visualChangeWorkflowPersistenceService.js.map +1 -0
  15. package/dist/artifacts/visualChangeWorkflowArtifactReader.d.ts +9 -0
  16. package/dist/artifacts/visualChangeWorkflowArtifactReader.js +47 -0
  17. package/dist/artifacts/visualChangeWorkflowArtifactReader.js.map +1 -0
  18. package/dist/artifacts/visualChangeWorkflowArtifactWriter.d.ts +20 -0
  19. package/dist/artifacts/visualChangeWorkflowArtifactWriter.js +41 -0
  20. package/dist/artifacts/visualChangeWorkflowArtifactWriter.js.map +1 -0
  21. package/dist/cli.js +510 -508
  22. package/dist/cli.js.map +1 -1
  23. package/dist/domain/visualChangeAgentHandoff.d.ts +82 -0
  24. package/dist/domain/visualChangeAgentHandoff.js +80 -0
  25. package/dist/domain/visualChangeAgentHandoff.js.map +1 -0
  26. package/dist/domain/visualChangeAgentHandoffSerialization.d.ts +2 -0
  27. package/dist/domain/visualChangeAgentHandoffSerialization.js +11 -0
  28. package/dist/domain/visualChangeAgentHandoffSerialization.js.map +1 -0
  29. package/dist/domain/visualChangeCycle.d.ts +8 -0
  30. package/dist/domain/visualChangeCycle.js +7 -0
  31. package/dist/domain/visualChangeCycle.js.map +1 -0
  32. package/dist/domain/visualChangeWorkflow.d.ts +125 -0
  33. package/dist/domain/visualChangeWorkflow.js +109 -0
  34. package/dist/domain/visualChangeWorkflow.js.map +1 -0
  35. package/dist/domain/visualChangeWorkflowIdentity.d.ts +5 -0
  36. package/dist/domain/visualChangeWorkflowIdentity.js +24 -0
  37. package/dist/domain/visualChangeWorkflowIdentity.js.map +1 -0
  38. package/dist/index.d.ts +21 -1
  39. package/dist/index.js +12 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/projectWorkflow/projectPaths.d.ts +3 -0
  42. package/dist/projectWorkflow/projectPaths.js +7 -0
  43. package/dist/projectWorkflow/projectPaths.js.map +1 -1
  44. package/dist/viewer/assets/index-DglJ6f28.css +1 -0
  45. package/dist/viewer/assets/index-DsODREY5.js +9 -0
  46. package/dist/viewer/index.html +2 -2
  47. package/dist/viewer/sw.js +1 -1
  48. package/dist/viewerServer/evidence/classify.d.ts +3 -1
  49. package/dist/viewerServer/evidence/classify.js +10 -0
  50. package/dist/viewerServer/evidence/classify.js.map +1 -1
  51. package/dist/viewerServer/evidence/handles.js +1 -0
  52. package/dist/viewerServer/evidence/handles.js.map +1 -1
  53. package/dist/viewerServer/evidence/projection.d.ts +5 -0
  54. package/dist/viewerServer/evidence/projection.js +19 -0
  55. package/dist/viewerServer/evidence/projection.js.map +1 -1
  56. package/dist/viewerServer/evidence/visualChangeWorkflowView.d.ts +31 -0
  57. package/dist/viewerServer/evidence/visualChangeWorkflowView.js +36 -0
  58. package/dist/viewerServer/evidence/visualChangeWorkflowView.js.map +1 -0
  59. package/dist/viewerServer/httpServer.js +323 -1
  60. package/dist/viewerServer/httpServer.js.map +1 -1
  61. package/dist/viewerServer/referenceApproval.d.ts +22 -0
  62. package/dist/viewerServer/referenceApproval.js +42 -0
  63. package/dist/viewerServer/referenceApproval.js.map +1 -0
  64. package/dist/viewerServer/referenceVisualChangeAuthoring.d.ts +28 -0
  65. package/dist/viewerServer/referenceVisualChangeAuthoring.js +134 -0
  66. package/dist/viewerServer/referenceVisualChangeAuthoring.js.map +1 -0
  67. package/dist/viewerServer/runtimeVisualChangeAuthoring.d.ts +33 -0
  68. package/dist/viewerServer/runtimeVisualChangeAuthoring.js +81 -0
  69. package/dist/viewerServer/runtimeVisualChangeAuthoring.js.map +1 -0
  70. package/dist/viewerServer/visualChangeAuthoring.d.ts +46 -0
  71. package/dist/viewerServer/visualChangeAuthoring.js +63 -0
  72. package/dist/viewerServer/visualChangeAuthoring.js.map +1 -0
  73. package/dist/viewerServer/visualChangeHandoff.d.ts +23 -0
  74. package/dist/viewerServer/visualChangeHandoff.js +31 -0
  75. package/dist/viewerServer/visualChangeHandoff.js.map +1 -0
  76. package/dist/viewerServer/visualChangeReview.d.ts +30 -0
  77. package/dist/viewerServer/visualChangeReview.js +46 -0
  78. package/dist/viewerServer/visualChangeReview.js.map +1 -0
  79. package/docs/ARCHITECTURE.md +17 -5
  80. package/docs/CI_CD.md +12 -1
  81. package/docs/COMMANDS.md +18 -4
  82. package/docs/CONTRACTS.md +38 -4
  83. package/docs/CURRENT_STATE.md +23 -9
  84. package/docs/PROJECT_OVERVIEW.md +21 -16
  85. package/docs/QUICKSTART.md +7 -3
  86. package/docs/RELEASE.md +15 -12
  87. package/docs/ROADMAP.md +6 -5
  88. package/docs/SECURITY.md +25 -3
  89. package/docs/WORKFLOWS.md +28 -2
  90. package/docs/plans/v0.10-implementation-plan.md +1509 -0
  91. package/docs/reports/v0.10-batch1-visual-change-workflow-foundation.md +102 -0
  92. package/docs/reports/v0.10-batch2-project-composition-check-recording.md +103 -0
  93. package/docs/reports/v0.10-batch3-viewer-visual-change-workspace.md +93 -0
  94. package/docs/reports/v0.10-batch4-actual-frontend-entry.md +59 -0
  95. package/docs/reports/v0.10-batch5-reference-driven-entry.md +238 -0
  96. package/docs/reports/v0.10-batch6-coding-agent-handoff.md +85 -0
  97. package/docs/reports/v0.10-batch7-correction-review-acceptance.md +145 -0
  98. package/docs/reports/v0.10-batch8-integrated-acceptance.md +109 -0
  99. package/docs/reports/v0.10-implementation-completeness-documentation-reconciliation.md +344 -0
  100. package/docs/reports/v0.10-pre-release-readiness.md +120 -0
  101. package/docs/reports/v0.10-release-preparation.md +70 -0
  102. package/package.json +1 -1
  103. package/dist/viewer/assets/index-BN41MI7m.css +0 -1
  104. package/dist/viewer/assets/index-CkKXnlrI.js +0 -9
@@ -1,5 +1,17 @@
1
1
  # Architecture
2
2
 
3
+ ## v0.10 visual workflow boundaries
4
+
5
+ `VisualChangeWorkflowArtifact` (`1.0.0`) is the only new persisted v0.10
6
+ family. It owns frozen scope, explicit activation/restoration, immutable
7
+ attempt and review revisions, and optional references to governance results.
8
+ The Viewer is the human workflow entry; `checkProject` remains the canonical
9
+ evaluator. `VisualChangeAgentHandoff` (`1.0.0`) is a generated, non-persisted
10
+ transfer contract. An external human or coding agent edits source. Optional
11
+ orchestrator metadata is traceability only and Observer never imports or runs
12
+ the orchestrator. Human acceptance is separate from baseline/reference
13
+ governance and never rewrites prior workflow evidence.
14
+
3
15
  ## v0.8.1 project workflow
4
16
 
5
17
  Versioned project configuration (`1.0.0` compatibility plus current `1.1.0`
@@ -21,7 +33,7 @@ the workflow result remain in memory/presentation.
21
33
  ## Current package architecture
22
34
 
23
35
  The current repository is one published TypeScript ESM package
24
- (`@dailephd/my-frontend-observer@0.9.0`). The CLI remains
36
+ (`@dailephd/my-frontend-observer@0.9.1`). The CLI remains
25
37
  `my-frontend-observer`; the npm scope does not rename the product or artifact
26
38
  identities.
27
39
 
@@ -369,7 +381,7 @@ lab code in this repository - those remain separate sibling-repository
369
381
  responsibilities per the Milestone 6 ownership split in
370
382
  `docs/PROJECT_MILESTONES.md`.
371
383
 
372
- ## v0.7 (released as `0.7.0`), v0.8 (released as `0.8.0`), and planned v0.9–v0.10 reference-evidence architecture constraints
384
+ ## v0.7-v0.10 reference-evidence architecture constraints
373
385
 
374
386
  The external visual-reference capability (v0.7) is released as package
375
387
  version `0.7.0` - see "v0.7 Prompt 1" through "v0.7 Prompt 8" below for the
@@ -378,9 +390,9 @@ extends the existing v0.1-v0.6 evidence architecture rather than becoming a
378
390
  UI-only feature or a parallel visual-comparison stack. v0.8 (interactive
379
391
  viewer) is released as package version `0.8.0`. v0.9 (structured visual
380
392
  annotation) is released as package version `0.9.0` - see "v0.9 visual
381
- annotation architecture" below. v0.10 (full graphical human-LLM
382
- workflow) remains future and unimplemented. The constraints below applied to
383
- v0.9 and still apply to v0.10.
393
+ annotation architecture" below. v0.10 (full graphical human-LLM workflow) is
394
+ implemented and documentation-reconciled but remains unreleased. The
395
+ constraints below apply to both v0.9 and v0.10.
384
396
 
385
397
  The evidence domains remain distinct:
386
398
 
package/docs/CI_CD.md CHANGED
@@ -1,6 +1,17 @@
1
1
  # CI/CD
2
2
 
3
- CI interprets `check` as PASS `0`, FAIL `1`, REVIEW_REQUIRED `2`, or BLOCKED `3`. The released package is `@dailephd/my-frontend-observer@0.9.1`; its CLI remains `my-frontend-observer`. Packed readiness installs one exact tarball and runs `runPackedViewerSmoke.mjs` as the single project/viewer smoke owner for `init`, `capture`, bounded `check --json` REVIEW_REQUIRED and unchanged-contract FAIL-to-PASS, alias-aware project `view`, and viewer security. `runPackedObservationSmoke.mjs` remains the lower-level legacy observation smoke.
3
+ CI interprets `check` as PASS `0`, FAIL `1`, REVIEW_REQUIRED `2`, or BLOCKED `3`. The current package is `@dailephd/my-frontend-observer@0.10.0`; its CLI remains `my-frontend-observer`. Packed readiness installs one exact tarball and runs `runPackedViewerSmoke.mjs` as the single project/viewer smoke owner for `init`, `capture`, bounded `check --json` REVIEW_REQUIRED and unchanged-contract FAIL-to-PASS, alias-aware project `view`, and viewer security. `runPackedObservationSmoke.mjs` remains the lower-level legacy observation smoke.
4
+
5
+ The same matrix now also runs `runPackedV010WorkflowSmoke.mjs`. It installs the
6
+ same SHA-verified candidate into a clean consumer and exercises installed
7
+ actual/reference workflow creation, activation, handoff, immutable correction
8
+ attempts, PASS-only acceptance, project-aware Viewer discovery, and standalone
9
+ read-only behavior. Its bounded summary is uploaded with the existing matrix
10
+ summary artifact. The candidate job still owns exactly one `npm pack`; no
11
+ second v0.10 candidate or matrix exists. Formal v0.10 exact-candidate readiness
12
+ passed on Windows, Linux, and macOS.
13
+ All four packed smokes, security checks, and PWA gates passed against the same
14
+ candidate. Run 35789033295 records that readiness result.
4
15
 
5
16
  ## Gate isolation invariant
6
17
 
package/docs/COMMANDS.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Commands
2
2
 
3
+ ## v0.10 visual workflow operations
4
+
5
+ v0.10 adds no CLI command. Project-aware `view` exposes the Visual changes
6
+ workspace for actual/reference entry, explicit activation, bounded handoff,
7
+ Run check, correction/review, acceptance, governance-result recording, and
8
+ explicit restore. These are guarded local HTTP/UI actions backed by canonical
9
+ application owners, not new command-line subcommands. Standalone `view --root`
10
+ remains inspection-only.
11
+
12
+ Every handoff names `check <baseline> --json` as the exact post-edit machine
13
+ operation. It captures a fresh candidate and runs the existing canonical
14
+ comparison, contract, and configured reference-fidelity owners.
15
+
3
16
  ## v0.8.1 common workflow
4
17
 
5
18
  `init --url <loopback-url> [--viewport WIDTHxHEIGHT] [--target id=selector ... | --targets-file file] [--default-baseline alias] [--replace]` creates schema-`1.1.0` project configuration; schema `1.0.0` remains readable and forbids `acceptance`. Schema `1.1.0` may add exactly:
@@ -948,12 +961,13 @@ Options:
948
961
  - `--help` — show `view` usage.
949
962
 
950
963
  The server binds only to `127.0.0.1` (never `0.0.0.0`), serves only the
951
- built viewer application assets plus the bounded, read-only `/api/*`
964
+ built viewer application assets plus bounded `/api/*`
952
965
  endpoints described above, and never exposes the supplied evidence root as a
953
966
  generic static directory or arbitrary filesystem path. With `--root` it
954
- accepts no write methods and writes nothing. Without `--root`, the only
955
- writes are the three v0.9 authoring routes above, which create new immutable
956
- artifacts and never modify existing ones. On success,
967
+ accepts no write methods and writes nothing. Without `--root`, the guarded
968
+ project-aware authoring routes create only new immutable artifacts and workflow
969
+ revisions through canonical owners; they never edit target source or rewrite
970
+ existing evidence. On success,
957
971
  prints the viewer URL and keeps running (serving the viewer) until
958
972
  interrupted. On invalid syntax, a missing/non-directory `--root`, an
959
973
  invalid `--port`, an invalid `--bindings-file`, an invalid `--context-file`
package/docs/CONTRACTS.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # Contracts
2
2
 
3
+ ## Visual-change workflow artifact (`1.0.0`, v0.10 Batch 1)
4
+
5
+ `my-frontend-observer/visual-change-workflow` is the immutable Observer-owned history envelope for one frozen visual-change request. It records a deterministic `visualChangeRequestId`, a fresh `visualChangeWorkflowId`, optional forward-only `supersedesVisualChangeWorkflowId`, exact references to existing canonical evidence, zero to twenty bounded attempt records, optional activation/governance result references, producer metadata, and creation provenance.
6
+
7
+ The two entry modes are exactly `actual-frontend` and `reference`. Reference mode stores validated explicit runtime binding declarations in canonical `bindings.json`; the manifest pins its SHA-256 and declaration count. Actual mode never writes that file. Project-relative evidence references must remain contained portable paths; source artifacts and media are referenced rather than copied.
8
+
9
+ Request identity hashes semantic scope only. It excludes timestamps and operational storage locations. Workflow instance identity is fresh for every explicit persistence. Attempt identity is deterministic over the visual-change request ID and candidate observation ID. Human review state is exactly `pending`, `correction-requested`, `accepted`, or `abandoned`; this foundation validates structure but does not implement the later acceptance rule or execute checks.
10
+
11
+ The v0.10 Batch 2 application composition explicitly activates either the frozen per-change contract or the frozen approved reference and workflow-owned bindings in project acceptance. Activation and restoration preserve unrelated configuration, use compensating atomic writes across mutable project configuration and immutable workflow revisions, and refuse acceptance drift. A workflow check resolves an alias only when its catalog identity and artifact location exactly match the frozen baseline, then invokes the existing `checkProject` owner once. Only a canonical result containing both baseline and candidate summaries can append a pending attempt revision; the snapshot is a bounded direct projection of that result and does not repeat evaluation.
12
+
13
+ The v0.10 Batch 3 Viewer exposes bounded workflow inspection at `GET /api/visual-changes/:handle/view` in both standalone and project-aware sessions. Create, activate, check, and restore POST operations are project-aware only, reuse the existing in-memory authoring capability and request guards, accept no filesystem paths, and delegate to the Batch 2 application service. Every new response is `no-store`. Successful immutable mutations return the exact new workflow ID so the Viewer can refresh and reselect that revision without guessing. The Viewer protocol remains `1.3.0`.
14
+
15
+ The v0.10 Batch 4 actual-frontend entry route promotes only explicitly selected, saved, confirmed, canonically promotable runtime intent without activating project acceptance. It freezes the exact resulting contract instance with the saved annotation, source observation, and configured persistent baseline contract through the Batch 2 workflow-creation owner. Repeated equivalent starts share `contractRequestId` while receiving fresh contract, visual-change request, and workflow instance identities. Activation remains a later explicit workflow action.
16
+
17
+ Reference entry freezes only an exact approved reference, an annotation authored
18
+ against that exact instance, an exact baseline observation, and explicitly
19
+ authored valid bindings. Adequacy, compatibility, complete required-region
20
+ coverage, and canonical binding evaluation fail closed. Imported references,
21
+ inferred bindings, and session bindings are not executable workflow scope.
22
+
23
+ `VisualChangeAgentHandoff` uses handoff kind
24
+ `my-frontend-observer/visual-change-agent-handoff` and version `1.0.0`. It is a
25
+ bounded non-artifact transfer contract and is never discovered or persisted as
26
+ Observer evidence. It includes confirmed scope, Observer-owned bounded context,
27
+ optional unchanged supplemental context, the exact post-edit check instruction,
28
+ and optional non-authoritative orchestrator correlation.
29
+
30
+ The current cycle is derived from the latest attempt. A pending attempt blocks
31
+ another check or handoff until explicit correction, acceptance, or abandonment.
32
+ Only the latest canonical PASS may be accepted. Review changes only the latest
33
+ attempt's review object in a fresh workflow revision. Governance references may
34
+ be recorded only after acceptance and only for already-persisted canonical
35
+ approval results; they do not perform approval or change project configuration.
36
+ No existing evidence schema changed for v0.10.
37
+
3
38
  ## Current contracts
4
39
 
5
40
  The observation artifact contract is published in the current
@@ -490,7 +525,7 @@ blockers; on the canonical worktree, `npm run typecheck`, `npm run lint`,
490
525
  `npm test` (627 tests), `npm run test:browser` (120 tests), `npm run
491
526
  test:security`, `npm run build`, and `npm run check:docs` all pass.
492
527
 
493
- ## v0.7 external visual-reference contract direction (released as `0.7.0`; v0.8 viewer released as `0.8.0`; v0.9 released as `0.9.0`; v0.10 still future)
528
+ ## v0.7 external visual-reference contract direction (preserved through implemented, unreleased v0.10)
494
529
 
495
530
  External visual-reference support is released as package version `0.7.0`
496
531
  (see "v0.7 Prompt 1" through "v0.7 Prompt 8" below for the exact contract).
@@ -498,9 +533,8 @@ The exact public type names, artifact kinds, schema versions, persistence
498
533
  layout, and command/programmatic entry points were designed during v0.7
499
534
  implementation from current repository precedent, following the constraints
500
535
  below. v0.8 (released as package version `0.8.0` - see
501
- `docs/CURRENT_STATE.md`) has preserved them. v0.9 (implemented, not yet
502
- released) preserves them too. v0.10 remains future and must continue to
503
- preserve them.
536
+ `docs/CURRENT_STATE.md`) has preserved them. v0.9 is released and preserves
537
+ them. The implemented, unreleased v0.10 workflow preserves them too.
504
538
 
505
539
  **Distinct evidence domain**: an external reference is desired-design evidence,
506
540
  not an `ObservationArtifact` and not the "before" side of a v0.4
@@ -1,6 +1,18 @@
1
1
  # Current State
2
2
 
3
- v0.9.1 is released and published as `@dailephd/my-frontend-observer@0.9.1`.
3
+ v0.10.0 is the current release of `@dailephd/my-frontend-observer`.
4
+ Formal Windows, Linux, and macOS exact-candidate readiness, security checks,
5
+ and PWA gates passed before release. The package version is `0.10.0`.
6
+
7
+ The full Visual Change workflow supports actual-frontend and approved-reference
8
+ entry, structured intent, explicit activation, bounded coding-agent handoff,
9
+ immutable check attempts and correction, PASS-only human acceptance, and
10
+ separate governance. The Viewer discovers installed-package workflow evidence.
11
+ Observer never edits source or performs automatic approval. Schemas remain
12
+ independently versioned: observation `1.2.0`, comparison `1.0.0`, frontend
13
+ contract `1.0.0`, evaluation `1.0.0`, bounded-agent-context `1.0.0`,
14
+ external-reference `1.0.0`, visual annotation `1.0.0`, visual-change workflow
15
+ `1.0.0`, handoff `1.0.0`; Viewer protocol remains `1.3.0`.
4
16
  v0.9 (Human Visual Annotation and Design-Intent Capture) adds structured visual
5
17
  annotation to the project-aware viewer. It passed integrated real-Chromium
6
18
  acceptance and final exact-candidate pre-release readiness on Windows, Linux
@@ -1195,14 +1207,15 @@ npm package.
1195
1207
  implemented.) A CLI surface for Prompt 8's correction workflow specifically
1196
1208
  remains unimplemented by design (programmatic-only, library-level use is
1197
1209
  the current supported entry point) - see "v0.7 Prompt 8 status" above.
1198
- The full graphical human-LLM workflow (v0.10) remains future and
1199
- unimplemented. Structured visual annotation (v0.9) is implemented and
1200
- released as `0.9.0` - see "v0.9 status" above.
1210
+ The full graphical human-LLM workflow is released as `0.10.0`. Structured
1211
+ visual annotation (v0.9) is
1212
+ implemented and released as `0.9.0` - see "v0.9 status" above.
1201
1213
 
1202
1214
  ## Next target
1203
1215
 
1204
- v0.1-v0.9 are implemented, validated, and released (`0.1.0`, `0.2.0`,
1205
- `0.3.0`, `0.4.0`, `0.5.0`, `0.6.0`, `0.7.0`, `0.8.0`, `0.8.1`, `0.9.0`). v0.7 (End-to-End
1216
+ v0.1-v0.10 are implemented, validated, and released (`0.1.0`, `0.2.0`,
1217
+ `0.3.0`, `0.4.0`, `0.5.0`, `0.6.0`, `0.7.0`, `0.8.0`, `0.8.1`, `0.9.0`,
1218
+ `0.9.1`, `0.10.0`). v0.7 (End-to-End
1206
1219
  Coding-Agent Frontend Change Review) is fully implemented and released: the
1207
1220
  external-reference artifact foundation, explicit reference
1208
1221
  regions/relationships, selected design requirements/tolerance
@@ -1233,6 +1246,7 @@ for the completeness audit, and
1233
1246
  for the cross-platform readiness validation that preceded this release.
1234
1247
 
1235
1248
  v0.9 (structured visual annotation) is released as
1236
- `@dailephd/my-frontend-observer@0.9.0` - see "v0.9 status" above. The next
1237
- target is v0.10 (full graphical human-LLM workflow), which remains future and
1238
- unimplemented - see `docs/ROADMAP.md`.
1249
+ `@dailephd/my-frontend-observer@0.9.0` - see "v0.9 status" above. v0.10.0 is
1250
+ the current release. Its formal exact-candidate readiness passed on Windows,
1251
+ Linux, and macOS, including installed-package, security, and PWA gates. See
1252
+ `docs/reports/v0.10-release-preparation.md` for release-preparation evidence.
@@ -1,10 +1,8 @@
1
1
  # Project Overview
2
2
 
3
- The repository contains the complete v0.9.1 release, published as
4
- `@dailephd/my-frontend-observer@0.9.1` under the MIT license. It hardens
5
- independent PWA security acceptance while preserving the structured visual
6
- annotation added to the v0.8.1 project workflow (`init`,
7
- `capture`, `check`, project-aware `view`).
3
+ The repository contains the v0.10.0 release of
4
+ `@dailephd/my-frontend-observer` under the MIT license. It completes the Visual
5
+ Change workflow on the project workflow (`init`, `capture`, `check`, Viewer).
8
6
 
9
7
  `my-frontend-observer` is the rendered browser/runtime evidence producer in
10
8
  the my-dev-kit ecosystem. It addresses the gap between source-level evidence
@@ -32,14 +30,15 @@ Comparison; v0.5, Executable Frontend Contracts and Explicit Change Scope;
32
30
  v0.6, Bounded Agent Context and Native my-dev-kit Ecosystem Integration;
33
31
  v0.7, End-to-End Coding-Agent Frontend Change Review; v0.8, Interactive
34
32
  Local Observation Viewer; v0.8.1, Project Workflow CLI and Human-Readable
35
- Evidence Aliases; and v0.9, Human Visual Annotation and Design-Intent Capture,
36
- are released and published to npm. The current package version is `0.9.1` as
33
+ Evidence Aliases; v0.9, Human Visual Annotation and Design-Intent Capture; and
34
+ v0.10.0, Full Visual Human–LLM Frontend Change Workflow, are released and
35
+ published to npm. The current package version is `0.10.0` as
37
36
  `@dailephd/my-frontend-observer` (observation schema `1.2.0`, comparison schema
38
37
  `1.0.0`, frontend contract schema `1.0.0`, evaluation artifact schema `1.0.0`,
39
38
  bounded-agent-context schema `1.0.0`, external-reference schema `1.0.0`,
40
- visual annotation schema `1.0.0`). The released package was validated as a
41
- packed npm tarball in a clean consumer environment across Windows, Linux, and
42
- macOS.
39
+ visual annotation schema `1.0.0`, visual-change workflow schema `1.0.0`,
40
+ handoff `1.0.0`; Viewer protocol `1.3.0`). Exact-candidate readiness passed
41
+ on Windows, Linux, and macOS.
43
42
 
44
43
  The released low-level command surface remains artifact-oriented: a real
45
44
  `observe` command launches Chromium, enforces loopback-only safety, captures
@@ -97,7 +96,7 @@ artifact identifiers during ordinary use. Existing low-level commands remain
97
96
  supported. The frozen plan is
98
97
  `docs/plans/v0.8.1-cli-usability-patch-plan.md`.
99
98
 
100
- The latest published release is v0.9.1. v0.9 added structured
99
+ v0.9 added structured
101
100
  visual annotation to the project-aware viewer for both runtime observations and
102
101
  external references. People draw marks, explicitly associate them, and confirm
103
102
  structured intent. Selected confirmed runtime intent can become a normal
@@ -112,7 +111,7 @@ The repository-owned deterministic demo and its four tutorial scenarios
112
111
  with the release. They are release support and documentation, not product
113
112
  behavior, and they are not shipped in the npm package.
114
113
 
115
- The v0.9.1 maintenance release hardens the
114
+ The v0.9.1 maintenance release hardened the
116
115
  PWA server-down hard acceptance test so the gate is reproducible from a fresh
117
116
  browser profile and fresh test-owned state. PWA hard/security acceptance no
118
117
  longer depends on prior test order or persistent browser state, and
@@ -121,9 +120,11 @@ longer depends on prior test order or persistent browser state, and
121
120
  production PWA defect. No production behavior changed. The frozen concrete plan
122
121
  is `docs/plans/v0.9.1-implementation-plan.md`.
123
122
 
124
- v0.10 remains future and unimplemented and completes the visual human-LLM
125
- workflow on top of the v0.9 annotation model and v0.8.1 high-level acceptance
126
- surface.
123
+ v0.10.0 completes the Visual Change workflow on top of the v0.9 annotation
124
+ model and v0.8.1 high-level acceptance surface. It supports actual-frontend
125
+ and approved-reference entry, explicit activation, bounded coding-agent
126
+ handoff, immutable correction history, PASS-only human acceptance, and
127
+ separate governance. Installed-package and Viewer support are included.
127
128
 
128
129
  The revised dependency path reaches practical coding-agent use before graphical
129
130
  interaction and keeps later visual work on the same canonical evidence system:
@@ -141,7 +142,8 @@ runtime observation and stable identity
141
142
  → structured visual annotation on runtime screenshots and external references
142
143
  (released as 0.9.0)
143
144
  → full visual human-LLM workflow with actual-frontend-driven and
144
- reference-driven entry modes (planned v0.10)
145
+ reference-driven entry modes (implemented, documentation-reconciled,
146
+ unreleased v0.10)
145
147
  ```
146
148
 
147
149
  The implemented reference model is not a second observer or a
@@ -184,6 +186,9 @@ Repository-local authorities and navigation:
184
186
  precondition proof, and isolated-gate validation. It does not authorize a
185
187
  production PWA change unless the corrected experiment demonstrates a real
186
188
  product defect.
189
+ - [plans/v0.10-implementation-plan.md](plans/v0.10-implementation-plan.md)
190
+ is the frozen planning authority for the completed v0.10 implementation;
191
+ current evidence and reconciliation are recorded in the v0.10 reports.
187
192
  - [reports/v0.9-architecture-retrieval.md](reports/v0.9-architecture-retrieval.md)
188
193
  preserves the bounded current-source retrieval that grounded the v0.9 plan.
189
194
 
@@ -80,9 +80,13 @@ approve a reference or prove every aesthetic requirement. See
80
80
  [CONTRACTS.md](CONTRACTS.md) and [WORKFLOWS.md](WORKFLOWS.md).
81
81
 
82
82
  `my-frontend-observer view --no-open` starts the loopback-only viewer over managed
83
- project evidence. Use `view --root observations --no-open` for standalone roots.
84
- The viewer is inspect-only. Its `--bindings-file` and `--context-file` inputs do
85
- not create a second evaluator or automatic source-owner mapping.
83
+ project evidence. The v0.10.0 project-aware Viewer also owns the explicit
84
+ Visual Change workflow: visual entry, activation, handoff, check,
85
+ review/correction, acceptance, and separate
86
+ governance-result recording. Use `view --root observations --no-open` for
87
+ standalone roots; that mode remains inspect-only. The `--bindings-file` and
88
+ `--context-file` inputs do not create a second evaluator or automatic
89
+ source-owner mapping. The installed package includes the Visual Change surface.
86
90
 
87
91
  To validate this repository itself, rather than the target application:
88
92
 
package/docs/RELEASE.md CHANGED
@@ -1,26 +1,29 @@
1
1
  # Release
2
2
 
3
- `v0.9.1` (PWA Hard-Gate Isolation and Reproducible Security Acceptance) is
4
- released and published to npm as `@dailephd/my-frontend-observer`. This
5
- maintenance release adds
6
- structured visual annotation of runtime observations and external references
7
- to the project-aware viewer, selected promotion of confirmed runtime intent
8
- into canonical change contracts, and selected materialization of confirmed
9
- reference intent into new imported reference revisions, with final
10
- Windows/Linux/macOS readiness and the MIT license.
3
+ `v0.10.0` (Full Visual Human–LLM Frontend Change Workflow) is the current
4
+ release state. Formal exact-candidate readiness passed on Windows, Linux, and
5
+ macOS, including installed-package workflow smokes and security/PWA gates.
6
+
7
+ `v0.9.1` (PWA Hard-Gate Isolation and Reproducible Security Acceptance) is the
8
+ previous maintenance release, published to npm as
9
+ `@dailephd/my-frontend-observer`. It hardened isolated PWA security acceptance
10
+ without changing production behavior.
11
11
 
12
12
  The CLI remains `my-frontend-observer`; package identity and product identity
13
13
  are intentionally distinct. Canonical artifact schemas remain versioned
14
14
  independently from the npm package version.
15
15
 
16
16
  Observation, comparison, frontend contract, evaluation artifact,
17
- bounded-agent-context, external-reference, visual annotation, and package
18
- version all remain separate: package version is `0.9.1`; observation schema is
17
+ bounded-agent-context, external-reference, visual annotation,
18
+ visual-change-workflow, handoff, Viewer protocol, and package version all
19
+ remain separate: package version is `0.10.0`; observation schema is
19
20
  `1.2.0`, comparison schema is `1.0.0`, frontend contract schema is `1.0.0`,
20
21
  evaluation artifact schema is `1.0.0`, bounded-agent-context schema is
21
22
  `1.0.0`, external-reference schema is `1.0.0`, and visual annotation schema is
22
- `1.0.0` - none of which changes automatically with the package version. v0.9
23
- introduced the visual annotation schema and bumped no existing schema.
23
+ `1.0.0`, visual-change-workflow schema is `1.0.0`, handoff version is `1.0.0`,
24
+ and Viewer protocol is `1.3.0` - none changes automatically with the package
25
+ version. v0.9 introduced the visual annotation schema and bumped no existing
26
+ schema.
24
27
 
25
28
  Prior releases: `v0.8.1` (Project Workflow CLI and Human-Readable Evidence
26
29
  Aliases), `v0.8.0` (Interactive Local Observation Viewer), `v0.7.0` (End-to-End
package/docs/ROADMAP.md CHANGED
@@ -1,10 +1,7 @@
1
1
  # Roadmap
2
2
 
3
- v0.9.1 status: released and published to npm as
4
- `@dailephd/my-frontend-observer@0.9.1`. It is a bounded maintenance patch that
5
- corrects the PWA hard-gate test-isolation defect discovered after the v0.9.0
6
- release. No production PWA regression has been demonstrated. v0.10 remains
7
- future work.
3
+ Current release: v0.10.0, Full Visual Human–LLM Frontend Change Workflow.
4
+ The v0.9.1 PWA hard-gate isolation maintenance release is preserved in history.
8
5
 
9
6
  This is a version-level specification, not an implementation checklist.
10
7
  Concrete steps and sequencing are designed only when a version begins, after
@@ -944,6 +941,10 @@ product/package behavior while proving the stronger test-isolation invariant.
944
941
 
945
942
  ## v0.10 — Full Visual Human–LLM Frontend Change Workflow
946
943
 
944
+ Current status: released as `0.10.0`. The frozen implementation authority
945
+ remains
946
+ `docs/plans/v0.10-implementation-plan.md`.
947
+
947
948
  Objective/problem: complete the visual communication branch by combining the
948
949
  already operational coding-agent loop with graphical inspection, external design
949
950
  references, structured annotation, and the v0.8.1 project-level acceptance
package/docs/SECURITY.md CHANGED
@@ -219,10 +219,12 @@ protect against other software already running as the same user.
219
219
  `content-type: application/json`, identity `content-encoding` only, a
220
220
  256 KiB (`262144` byte) body limit, valid JSON, and a closed request shape
221
221
  with unknown fields rejected.
222
- - **Exactly three `POST` routes**: `POST /api/annotations`,
222
+ - **Exactly three v0.9 `POST` routes**: v0.9 introduced
223
+ `POST /api/annotations`,
223
224
  `POST /api/annotations/:handle/promote-contract`, and
224
225
  `POST /api/annotations/:handle/materialize-reference`. `PUT`, `PATCH`, and
225
- `DELETE` stay unsupported everywhere. Any other `POST` returns `405`.
226
+ `DELETE` stay unsupported everywhere. The implemented, unreleased v0.10
227
+ routes extend this same gate as described below.
226
228
  - **No permissive CORS**: no `Access-Control-Allow-*` headers are sent, so a
227
229
  page from any other origin cannot read the capability or send a JSON
228
230
  authoring request. A real-Chromium test proves this for all three routes.
@@ -249,12 +251,32 @@ protect against other software already running as the same user.
249
251
  `.tmp-*` directories, so a partially written artifact is never presented as
250
252
  evidence.
251
253
 
254
+ ## v0.10 Visual Change authoring boundary
255
+
256
+ v0.10 extends only the project-aware guarded `POST` surface. It adds explicit
257
+ reference approval and actual/reference workflow creation, plus workflow
258
+ activation, canonical check, restore, handoff preparation, human review, and
259
+ recording of already-existing governance results. Every route reuses the same
260
+ exact Host, Origin, memory-only capability token, JSON content type,
261
+ compression rejection, body limit, closed request-shape, serialized-write,
262
+ path-containment, and `no-store` controls. Standalone `view --root` remains
263
+ read-only, and the service worker continues to cache no `/api/` response.
264
+
265
+ The additional surface does not grant source-edit or external-process
266
+ authority. Observer never edits target source, executes a coding agent, invokes
267
+ my-dev-kit, or contacts/controls an orchestrator. Optional orchestrator fields
268
+ are bounded traceability metadata only. Handoffs are generated in memory and
269
+ are not a persisted evidence family. Review acceptance requires the latest
270
+ canonical Observer check to be PASS; it cannot approve a baseline/reference or
271
+ restore project acceptance. Governance recording can reference only a
272
+ separately persisted canonical approval and does not perform that approval.
273
+
252
274
  ## Not yet addressed
253
275
 
254
276
  Certificate-failure-specific handling, permission-prompt-specific handling
255
277
  (Chromium's default deny-all applies; no permission is ever explicitly
256
278
  granted), and any non-loopback/remote browsing mode remain unimplemented and
257
- out of scope. `@dailephd/my-frontend-observer@0.9.0` is published to npm, and a
279
+ out of scope. `@dailephd/my-frontend-observer@0.10.0` is the current release. A
258
280
  pre-release readiness CI workflow (Windows/Linux/macOS packed-candidate
259
281
  validation, now covering the v0.8 viewer alongside every earlier version's
260
282
  packed behavior) exists (see `docs/CI_CD.md`). The v0.7 external-reference/
package/docs/WORKFLOWS.md CHANGED
@@ -685,11 +685,37 @@ repository. The run result's `status` must be `passed` and its
685
685
  `cleanupErrors` must be empty. The demo and scenarios are not in the npm
686
686
  package. See `examples/v09-demo/README.md` for details and maintenance notes.
687
687
 
688
- ## Visual workflow progression (v0.9 implemented, v0.10 future)
688
+ ## Complete v0.10 visual-change workflow (implemented, unreleased)
689
689
 
690
690
  The sequence on top of the v0.7/v0.8 foundation above preserves the current
691
691
  engines and lets graphical interfaces consume rather than invent the reference
692
- model. v0.9 is released as `0.9.0`. v0.10 is still future:
692
+ model. v0.9 is released as `0.9.0`; v0.10 is implemented in the repository
693
+ and remains unreleased.
694
+
695
+ Actual-frontend entry starts in project-aware `view`: open a runtime
696
+ observation, draw and explicitly associate a mark, author and confirm runtime
697
+ intent, save it, select confirmed intent, and create an inactive visual-change
698
+ workflow. Reference entry opens one exact approved reference, saves confirmed
699
+ reference intent against that instance, selects an exact baseline observation,
700
+ authors explicit region-to-runtime bindings, and creates an inactive reference
701
+ workflow.
702
+
703
+ Both modes then share the same human-controlled loop:
704
+
705
+ ```text
706
+ explicit Activate
707
+ -> Prepare handoff
708
+ -> external actor edits source outside Observer
709
+ -> Run check (the canonical check <baseline> --json operation)
710
+ -> immutable pending attempt
711
+ -> Request correction, Accept latest PASS, or Abandon
712
+ -> optional governance recording only after a separate canonical approval
713
+ -> optional explicit Restore acceptance
714
+ ```
715
+
716
+ The controlling invariants are `DRAW != DECIDE`, `CONFIRM !=
717
+ PROMOTE/MATERIALIZE`, `PROMOTE/MATERIALIZE != ACTIVATE`, `PASS != ACCEPT`, and
718
+ `ACCEPT != GOVERNANCE`.
693
719
 
694
720
  ```text
695
721
  stable targets and bounded runtime behavior