@dailephd/my-frontend-observer 0.9.0 → 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.
- package/CHANGELOG.md +25 -0
- package/README.md +17 -7
- package/dist/application/visualChangeAgentHandoffService.d.ts +28 -0
- package/dist/application/visualChangeAgentHandoffService.js +111 -0
- package/dist/application/visualChangeAgentHandoffService.js.map +1 -0
- package/dist/application/visualChangeProjectWorkflowService.d.ts +95 -0
- package/dist/application/visualChangeProjectWorkflowService.js +376 -0
- package/dist/application/visualChangeProjectWorkflowService.js.map +1 -0
- package/dist/application/visualChangeReviewService.d.ts +50 -0
- package/dist/application/visualChangeReviewService.js +69 -0
- package/dist/application/visualChangeReviewService.js.map +1 -0
- package/dist/application/visualChangeWorkflowPersistenceService.d.ts +26 -0
- package/dist/application/visualChangeWorkflowPersistenceService.js +15 -0
- package/dist/application/visualChangeWorkflowPersistenceService.js.map +1 -0
- package/dist/artifacts/visualChangeWorkflowArtifactReader.d.ts +9 -0
- package/dist/artifacts/visualChangeWorkflowArtifactReader.js +47 -0
- package/dist/artifacts/visualChangeWorkflowArtifactReader.js.map +1 -0
- package/dist/artifacts/visualChangeWorkflowArtifactWriter.d.ts +20 -0
- package/dist/artifacts/visualChangeWorkflowArtifactWriter.js +41 -0
- package/dist/artifacts/visualChangeWorkflowArtifactWriter.js.map +1 -0
- package/dist/cli.js +510 -508
- package/dist/cli.js.map +1 -1
- package/dist/domain/visualChangeAgentHandoff.d.ts +82 -0
- package/dist/domain/visualChangeAgentHandoff.js +80 -0
- package/dist/domain/visualChangeAgentHandoff.js.map +1 -0
- package/dist/domain/visualChangeAgentHandoffSerialization.d.ts +2 -0
- package/dist/domain/visualChangeAgentHandoffSerialization.js +11 -0
- package/dist/domain/visualChangeAgentHandoffSerialization.js.map +1 -0
- package/dist/domain/visualChangeCycle.d.ts +8 -0
- package/dist/domain/visualChangeCycle.js +7 -0
- package/dist/domain/visualChangeCycle.js.map +1 -0
- package/dist/domain/visualChangeWorkflow.d.ts +125 -0
- package/dist/domain/visualChangeWorkflow.js +109 -0
- package/dist/domain/visualChangeWorkflow.js.map +1 -0
- package/dist/domain/visualChangeWorkflowIdentity.d.ts +5 -0
- package/dist/domain/visualChangeWorkflowIdentity.js +24 -0
- package/dist/domain/visualChangeWorkflowIdentity.js.map +1 -0
- package/dist/index.d.ts +21 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/projectWorkflow/projectPaths.d.ts +3 -0
- package/dist/projectWorkflow/projectPaths.js +7 -0
- package/dist/projectWorkflow/projectPaths.js.map +1 -1
- package/dist/viewer/assets/index-DglJ6f28.css +1 -0
- package/dist/viewer/assets/index-DsODREY5.js +9 -0
- package/dist/viewer/index.html +2 -2
- package/dist/viewer/sw.js +1 -1
- package/dist/viewerServer/evidence/classify.d.ts +3 -1
- package/dist/viewerServer/evidence/classify.js +10 -0
- package/dist/viewerServer/evidence/classify.js.map +1 -1
- package/dist/viewerServer/evidence/handles.js +1 -0
- package/dist/viewerServer/evidence/handles.js.map +1 -1
- package/dist/viewerServer/evidence/projection.d.ts +5 -0
- package/dist/viewerServer/evidence/projection.js +19 -0
- package/dist/viewerServer/evidence/projection.js.map +1 -1
- package/dist/viewerServer/evidence/visualChangeWorkflowView.d.ts +31 -0
- package/dist/viewerServer/evidence/visualChangeWorkflowView.js +36 -0
- package/dist/viewerServer/evidence/visualChangeWorkflowView.js.map +1 -0
- package/dist/viewerServer/httpServer.js +323 -1
- package/dist/viewerServer/httpServer.js.map +1 -1
- package/dist/viewerServer/referenceApproval.d.ts +22 -0
- package/dist/viewerServer/referenceApproval.js +42 -0
- package/dist/viewerServer/referenceApproval.js.map +1 -0
- package/dist/viewerServer/referenceVisualChangeAuthoring.d.ts +28 -0
- package/dist/viewerServer/referenceVisualChangeAuthoring.js +134 -0
- package/dist/viewerServer/referenceVisualChangeAuthoring.js.map +1 -0
- package/dist/viewerServer/runtimeVisualChangeAuthoring.d.ts +33 -0
- package/dist/viewerServer/runtimeVisualChangeAuthoring.js +81 -0
- package/dist/viewerServer/runtimeVisualChangeAuthoring.js.map +1 -0
- package/dist/viewerServer/visualChangeAuthoring.d.ts +46 -0
- package/dist/viewerServer/visualChangeAuthoring.js +63 -0
- package/dist/viewerServer/visualChangeAuthoring.js.map +1 -0
- package/dist/viewerServer/visualChangeHandoff.d.ts +23 -0
- package/dist/viewerServer/visualChangeHandoff.js +31 -0
- package/dist/viewerServer/visualChangeHandoff.js.map +1 -0
- package/dist/viewerServer/visualChangeReview.d.ts +30 -0
- package/dist/viewerServer/visualChangeReview.js +46 -0
- package/dist/viewerServer/visualChangeReview.js.map +1 -0
- package/docs/ARCHITECTURE.md +17 -5
- package/docs/CI_CD.md +33 -1
- package/docs/COMMANDS.md +19 -5
- package/docs/CONTRACTS.md +38 -4
- package/docs/CURRENT_STATE.md +92 -11
- package/docs/DEVELOPMENT.md +32 -2
- package/docs/PROJECT_MILESTONES.md +28 -0
- package/docs/PROJECT_OVERVIEW.md +36 -14
- package/docs/QUICKSTART.md +7 -3
- package/docs/RELEASE.md +15 -11
- package/docs/ROADMAP.md +55 -2
- package/docs/SECURITY.md +25 -3
- package/docs/WORKFLOWS.md +29 -3
- package/docs/plans/v0.10-implementation-plan.md +1509 -0
- package/docs/plans/v0.9.1-implementation-plan.md +468 -0
- package/docs/reports/v0.10-batch1-visual-change-workflow-foundation.md +102 -0
- package/docs/reports/v0.10-batch2-project-composition-check-recording.md +103 -0
- package/docs/reports/v0.10-batch3-viewer-visual-change-workspace.md +93 -0
- package/docs/reports/v0.10-batch4-actual-frontend-entry.md +59 -0
- package/docs/reports/v0.10-batch5-reference-driven-entry.md +238 -0
- package/docs/reports/v0.10-batch6-coding-agent-handoff.md +85 -0
- package/docs/reports/v0.10-batch7-correction-review-acceptance.md +145 -0
- package/docs/reports/v0.10-batch8-integrated-acceptance.md +109 -0
- package/docs/reports/v0.10-implementation-completeness-documentation-reconciliation.md +344 -0
- package/docs/reports/v0.10-pre-release-readiness.md +120 -0
- package/docs/reports/v0.10-release-preparation.md +70 -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
- package/dist/viewer/assets/index-BN41MI7m.css +0 -1
- package/dist/viewer/assets/index-CkKXnlrI.js +0 -9
package/docs/ROADMAP.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Roadmap
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
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.
|
|
5
5
|
|
|
6
6
|
This is a version-level specification, not an implementation checklist.
|
|
7
7
|
Concrete steps and sequencing are designed only when a version begins, after
|
|
@@ -890,8 +890,61 @@ seven implementation prompts, and batch gates live in
|
|
|
890
890
|
version-level decisions above plus current repository inspection; this roadmap
|
|
891
891
|
intentionally does not duplicate batch-by-batch instructions.
|
|
892
892
|
|
|
893
|
+
## v0.9.1 — PWA Hard-Gate Isolation and Reproducible Security Acceptance
|
|
894
|
+
|
|
895
|
+
Current status: released as `0.9.1`. The concrete implementation plan remains
|
|
896
|
+
frozen in `docs/plans/v0.9.1-implementation-plan.md`.
|
|
897
|
+
This patch is maintenance work over the released v0.9.0 codebase and does not
|
|
898
|
+
change the v0.9 product capability model.
|
|
899
|
+
|
|
900
|
+
Objective/problem: make the PWA server-down hard acceptance proof genuinely
|
|
901
|
+
self-contained. The released test in `tests/browser/pwaHardening.test.ts`
|
|
902
|
+
passes in the normal full-file/full-suite order but fails when selected alone
|
|
903
|
+
because it can inherit service-worker/cache state from earlier tests and from a
|
|
904
|
+
fixed persistent Chromium profile. That is a test-isolation defect. It is not
|
|
905
|
+
evidence that the released PWA serves stale evidence or otherwise violates the
|
|
906
|
+
runtime safety contract.
|
|
907
|
+
|
|
908
|
+
Required capabilities: the hard gate must create and own fresh disposable
|
|
909
|
+
evidence state, a fresh viewer server, a fresh persistent Chromium profile, a
|
|
910
|
+
fresh BrowserContext, and its page; independently establish service-worker
|
|
911
|
+
registration and activation; prove that the current page is controlled by the
|
|
912
|
+
worker; prove the application shell needed for offline reload is precached;
|
|
913
|
+
prove `/api/` evidence responses are absent from Cache Storage; prove live
|
|
914
|
+
evidence is visible before shutdown; prove the server/network is actually
|
|
915
|
+
unavailable after shutdown; reload from the precached shell; then prove an
|
|
916
|
+
explicit unavailable state is shown and previously fetched evidence is absent.
|
|
917
|
+
All owned resources must be cleaned up even on failure.
|
|
918
|
+
|
|
919
|
+
Constraints and contracts: the hard/security acceptance experiment must not
|
|
920
|
+
depend on another `it()`, test order, a previously warmed Cache Storage, or a
|
|
921
|
+
profile retained under `.my-dev-kit-workflow`. Tests explicitly designated
|
|
922
|
+
`HARD GATE`, `SECURITY GATE`, or `ACCEPTANCE GATE` must be independently
|
|
923
|
+
runnable from fresh state. The dedicated isolated hard-gate command and the
|
|
924
|
+
normal full browser/security suites must exercise the same product behavior.
|
|
925
|
+
|
|
926
|
+
Exclusions: no production PWA/service-worker semantic change is authorized
|
|
927
|
+
merely to make the test green; no new user-facing feature, evidence schema,
|
|
928
|
+
CLI command, package dependency, tutorial behavior, or v0.10 capability belongs
|
|
929
|
+
in this patch. If the corrected clean-state experiment exposes a genuine
|
|
930
|
+
runtime defect, implementation must stop and reclassify the work as a product
|
|
931
|
+
defect before changing production behavior.
|
|
932
|
+
|
|
933
|
+
Acceptance: the PWA hard gate passes when run by itself from a fresh process and
|
|
934
|
+
fresh temporary profile, passes in the complete `pwaHardening.test.ts` file,
|
|
935
|
+
and passes in the normal browser/security validation chain. The test must prove
|
|
936
|
+
its own service-worker control, shell-cache, API-cache-exclusion, network-down,
|
|
937
|
+
and stale-evidence-absence prerequisites rather than infer them from another
|
|
938
|
+
test. Temporary browser profiles and evidence roots must be removed after both
|
|
939
|
+
success and failure. Release-readiness validation must preserve the v0.9.0
|
|
940
|
+
product/package behavior while proving the stronger test-isolation invariant.
|
|
941
|
+
|
|
893
942
|
## v0.10 — Full Visual Human–LLM Frontend Change Workflow
|
|
894
943
|
|
|
944
|
+
Current status: released as `0.10.0`. The frozen implementation authority
|
|
945
|
+
remains
|
|
946
|
+
`docs/plans/v0.10-implementation-plan.md`.
|
|
947
|
+
|
|
895
948
|
Objective/problem: complete the visual communication branch by combining the
|
|
896
949
|
already operational coding-agent loop with graphical inspection, external design
|
|
897
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**:
|
|
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.
|
|
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.
|
|
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
|
-
##
|
|
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
|
|
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
|
|
@@ -764,7 +790,7 @@ external-reference services.
|
|
|
764
790
|
|
|
765
791
|
## Current release workflow
|
|
766
792
|
|
|
767
|
-
The published package is `@dailephd/my-frontend-observer@0.9.
|
|
793
|
+
The published package is `@dailephd/my-frontend-observer@0.9.1`; install it
|
|
768
794
|
with npm and use the `my-frontend-observer` CLI. The ordinary workflow is
|
|
769
795
|
`init`, `capture baseline`, `check baseline`, then `view`. Existing sections
|
|
770
796
|
below retain the historical low-level and viewer workflows for compatibility.
|