@dailephd/my-frontend-observer 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +397 -0
- package/LICENSE +21 -0
- package/README.md +255 -0
- package/dist/application/browserCaptureService.d.ts +11 -0
- package/dist/application/browserCaptureService.js +12 -0
- package/dist/application/browserCaptureService.js.map +1 -0
- package/dist/application/comparisonService.d.ts +56 -0
- package/dist/application/comparisonService.js +77 -0
- package/dist/application/comparisonService.js.map +1 -0
- package/dist/application/externalReferencePersistenceService.d.ts +75 -0
- package/dist/application/externalReferencePersistenceService.js +182 -0
- package/dist/application/externalReferencePersistenceService.js.map +1 -0
- package/dist/application/frontendContractEvaluationService.d.ts +49 -0
- package/dist/application/frontendContractEvaluationService.js +112 -0
- package/dist/application/frontendContractEvaluationService.js.map +1 -0
- package/dist/application/frontendContractPersistenceService.d.ts +56 -0
- package/dist/application/frontendContractPersistenceService.js +91 -0
- package/dist/application/frontendContractPersistenceService.js.map +1 -0
- package/dist/application/observationPersistence.d.ts +59 -0
- package/dist/application/observationPersistence.js +79 -0
- package/dist/application/observationPersistence.js.map +1 -0
- package/dist/application/projectCheckService.d.ts +3 -0
- package/dist/application/projectCheckService.js +169 -0
- package/dist/application/projectCheckService.js.map +1 -0
- package/dist/application/projectWorkflowService.d.ts +46 -0
- package/dist/application/projectWorkflowService.js +92 -0
- package/dist/application/projectWorkflowService.js.map +1 -0
- package/dist/application/referenceFidelityEvaluationService.d.ts +28 -0
- package/dist/application/referenceFidelityEvaluationService.js +45 -0
- package/dist/application/referenceFidelityEvaluationService.js.map +1 -0
- package/dist/artifacts/artifactReader.d.ts +19 -0
- package/dist/artifacts/artifactReader.js +36 -0
- package/dist/artifacts/artifactReader.js.map +1 -0
- package/dist/artifacts/artifactWriter.d.ts +25 -0
- package/dist/artifacts/artifactWriter.js +68 -0
- package/dist/artifacts/artifactWriter.js.map +1 -0
- package/dist/artifacts/comparisonArtifactReader.d.ts +18 -0
- package/dist/artifacts/comparisonArtifactReader.js +35 -0
- package/dist/artifacts/comparisonArtifactReader.js.map +1 -0
- package/dist/artifacts/comparisonArtifactWriter.d.ts +41 -0
- package/dist/artifacts/comparisonArtifactWriter.js +67 -0
- package/dist/artifacts/comparisonArtifactWriter.js.map +1 -0
- package/dist/artifacts/externalReferenceArtifactReader.d.ts +18 -0
- package/dist/artifacts/externalReferenceArtifactReader.js +35 -0
- package/dist/artifacts/externalReferenceArtifactReader.js.map +1 -0
- package/dist/artifacts/externalReferenceArtifactWriter.d.ts +44 -0
- package/dist/artifacts/externalReferenceArtifactWriter.js +77 -0
- package/dist/artifacts/externalReferenceArtifactWriter.js.map +1 -0
- package/dist/artifacts/frontendContractArtifactReader.d.ts +24 -0
- package/dist/artifacts/frontendContractArtifactReader.js +47 -0
- package/dist/artifacts/frontendContractArtifactReader.js.map +1 -0
- package/dist/artifacts/frontendContractArtifactWriter.d.ts +34 -0
- package/dist/artifacts/frontendContractArtifactWriter.js +70 -0
- package/dist/artifacts/frontendContractArtifactWriter.js.map +1 -0
- package/dist/artifacts/frontendContractEvaluationArtifactReader.d.ts +17 -0
- package/dist/artifacts/frontendContractEvaluationArtifactReader.js +34 -0
- package/dist/artifacts/frontendContractEvaluationArtifactReader.js.map +1 -0
- package/dist/artifacts/frontendContractEvaluationArtifactWriter.d.ts +32 -0
- package/dist/artifacts/frontendContractEvaluationArtifactWriter.js +58 -0
- package/dist/artifacts/frontendContractEvaluationArtifactWriter.js.map +1 -0
- package/dist/artifacts/types.d.ts +17 -0
- package/dist/artifacts/types.js +2 -0
- package/dist/artifacts/types.js.map +1 -0
- package/dist/browser/chromiumAdapter.d.ts +21 -0
- package/dist/browser/chromiumAdapter.js +204 -0
- package/dist/browser/chromiumAdapter.js.map +1 -0
- package/dist/browser/evidenceCapture.d.ts +62 -0
- package/dist/browser/evidenceCapture.js +500 -0
- package/dist/browser/evidenceCapture.js.map +1 -0
- package/dist/browser/scrollCapture.d.ts +32 -0
- package/dist/browser/scrollCapture.js +163 -0
- package/dist/browser/scrollCapture.js.map +1 -0
- package/dist/browser/types.d.ts +24 -0
- package/dist/browser/types.js +2 -0
- package/dist/browser/types.js.map +1 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.js +2411 -0
- package/dist/cli.js.map +1 -0
- package/dist/domain/boundedAgentContext.d.ts +226 -0
- package/dist/domain/boundedAgentContext.js +355 -0
- package/dist/domain/boundedAgentContext.js.map +1 -0
- package/dist/domain/boundedAgentContextCorrelation.d.ts +74 -0
- package/dist/domain/boundedAgentContextCorrelation.js +441 -0
- package/dist/domain/boundedAgentContextCorrelation.js.map +1 -0
- package/dist/domain/boundedAgentContextIdentity.d.ts +26 -0
- package/dist/domain/boundedAgentContextIdentity.js +69 -0
- package/dist/domain/boundedAgentContextIdentity.js.map +1 -0
- package/dist/domain/boundedAgentContextProjection.d.ts +71 -0
- package/dist/domain/boundedAgentContextProjection.js +477 -0
- package/dist/domain/boundedAgentContextProjection.js.map +1 -0
- package/dist/domain/comparison.d.ts +220 -0
- package/dist/domain/comparison.js +350 -0
- package/dist/domain/comparison.js.map +1 -0
- package/dist/domain/comparisonEngine.d.ts +76 -0
- package/dist/domain/comparisonEngine.js +734 -0
- package/dist/domain/comparisonEngine.js.map +1 -0
- package/dist/domain/comparisonIdentity.d.ts +13 -0
- package/dist/domain/comparisonIdentity.js +46 -0
- package/dist/domain/comparisonIdentity.js.map +1 -0
- package/dist/domain/completion.d.ts +30 -0
- package/dist/domain/completion.js +22 -0
- package/dist/domain/completion.js.map +1 -0
- package/dist/domain/diagnostics.d.ts +17 -0
- package/dist/domain/diagnostics.js +77 -0
- package/dist/domain/diagnostics.js.map +1 -0
- package/dist/domain/evidence.d.ts +29 -0
- package/dist/domain/evidence.js +59 -0
- package/dist/domain/evidence.js.map +1 -0
- package/dist/domain/explicitState.d.ts +40 -0
- package/dist/domain/explicitState.js +54 -0
- package/dist/domain/explicitState.js.map +1 -0
- package/dist/domain/externalReference.d.ts +158 -0
- package/dist/domain/externalReference.js +167 -0
- package/dist/domain/externalReference.js.map +1 -0
- package/dist/domain/externalReferenceApplicability.d.ts +43 -0
- package/dist/domain/externalReferenceApplicability.js +52 -0
- package/dist/domain/externalReferenceApplicability.js.map +1 -0
- package/dist/domain/externalReferenceCompatibility.d.ts +40 -0
- package/dist/domain/externalReferenceCompatibility.js +48 -0
- package/dist/domain/externalReferenceCompatibility.js.map +1 -0
- package/dist/domain/externalReferenceFidelity.d.ts +171 -0
- package/dist/domain/externalReferenceFidelity.js +419 -0
- package/dist/domain/externalReferenceFidelity.js.map +1 -0
- package/dist/domain/externalReferenceIdentity.d.ts +38 -0
- package/dist/domain/externalReferenceIdentity.js +70 -0
- package/dist/domain/externalReferenceIdentity.js.map +1 -0
- package/dist/domain/externalReferenceImage.d.ts +35 -0
- package/dist/domain/externalReferenceImage.js +160 -0
- package/dist/domain/externalReferenceImage.js.map +1 -0
- package/dist/domain/externalReferenceRegionRelationships.d.ts +63 -0
- package/dist/domain/externalReferenceRegionRelationships.js +98 -0
- package/dist/domain/externalReferenceRegionRelationships.js.map +1 -0
- package/dist/domain/externalReferenceRegions.d.ts +65 -0
- package/dist/domain/externalReferenceRegions.js +105 -0
- package/dist/domain/externalReferenceRegions.js.map +1 -0
- package/dist/domain/externalReferenceRequirementIdentity.d.ts +12 -0
- package/dist/domain/externalReferenceRequirementIdentity.js +35 -0
- package/dist/domain/externalReferenceRequirementIdentity.js.map +1 -0
- package/dist/domain/externalReferenceRequirements.d.ts +215 -0
- package/dist/domain/externalReferenceRequirements.js +401 -0
- package/dist/domain/externalReferenceRequirements.js.map +1 -0
- package/dist/domain/externalReferenceRuntimeBinding.d.ts +146 -0
- package/dist/domain/externalReferenceRuntimeBinding.js +183 -0
- package/dist/domain/externalReferenceRuntimeBinding.js.map +1 -0
- package/dist/domain/frontendContractEvaluation.d.ts +57 -0
- package/dist/domain/frontendContractEvaluation.js +454 -0
- package/dist/domain/frontendContractEvaluation.js.map +1 -0
- package/dist/domain/frontendContractEvaluationArtifact.d.ts +65 -0
- package/dist/domain/frontendContractEvaluationArtifact.js +108 -0
- package/dist/domain/frontendContractEvaluationArtifact.js.map +1 -0
- package/dist/domain/frontendContractIdentity.d.ts +39 -0
- package/dist/domain/frontendContractIdentity.js +70 -0
- package/dist/domain/frontendContractIdentity.js.map +1 -0
- package/dist/domain/frontendContracts.d.ts +188 -0
- package/dist/domain/frontendContracts.js +260 -0
- package/dist/domain/frontendContracts.js.map +1 -0
- package/dist/domain/identity.d.ts +21 -0
- package/dist/domain/identity.js +47 -0
- package/dist/domain/identity.js.map +1 -0
- package/dist/domain/referenceCorrectionIdentity.d.ts +40 -0
- package/dist/domain/referenceCorrectionIdentity.js +77 -0
- package/dist/domain/referenceCorrectionIdentity.js.map +1 -0
- package/dist/domain/referenceCorrectionWorkflow.d.ts +160 -0
- package/dist/domain/referenceCorrectionWorkflow.js +165 -0
- package/dist/domain/referenceCorrectionWorkflow.js.map +1 -0
- package/dist/domain/referenceFidelityProjection.d.ts +65 -0
- package/dist/domain/referenceFidelityProjection.js +135 -0
- package/dist/domain/referenceFidelityProjection.js.map +1 -0
- package/dist/domain/relationships.d.ts +210 -0
- package/dist/domain/relationships.js +352 -0
- package/dist/domain/relationships.js.map +1 -0
- package/dist/domain/schema.d.ts +269 -0
- package/dist/domain/schema.js +442 -0
- package/dist/domain/schema.js.map +1 -0
- package/dist/domain/scrollEvidence.d.ts +51 -0
- package/dist/domain/scrollEvidence.js +134 -0
- package/dist/domain/scrollEvidence.js.map +1 -0
- package/dist/index.d.ts +114 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/dist/projectWorkflow/aliasCatalog.d.ts +21 -0
- package/dist/projectWorkflow/aliasCatalog.js +67 -0
- package/dist/projectWorkflow/aliasCatalog.js.map +1 -0
- package/dist/projectWorkflow/checkAcceptance.d.ts +25 -0
- package/dist/projectWorkflow/checkAcceptance.js +55 -0
- package/dist/projectWorkflow/checkAcceptance.js.map +1 -0
- package/dist/projectWorkflow/checkResult.d.ts +85 -0
- package/dist/projectWorkflow/checkResult.js +101 -0
- package/dist/projectWorkflow/checkResult.js.map +1 -0
- package/dist/projectWorkflow/projectConfig.d.ts +43 -0
- package/dist/projectWorkflow/projectConfig.js +84 -0
- package/dist/projectWorkflow/projectConfig.js.map +1 -0
- package/dist/projectWorkflow/projectDiscovery.d.ts +9 -0
- package/dist/projectWorkflow/projectDiscovery.js +20 -0
- package/dist/projectWorkflow/projectDiscovery.js.map +1 -0
- package/dist/projectWorkflow/projectPaths.d.ts +8 -0
- package/dist/projectWorkflow/projectPaths.js +23 -0
- package/dist/projectWorkflow/projectPaths.js.map +1 -0
- package/dist/request/paths.d.ts +14 -0
- package/dist/request/paths.js +33 -0
- package/dist/request/paths.js.map +1 -0
- package/dist/request/request.d.ts +111 -0
- package/dist/request/request.js +464 -0
- package/dist/request/request.js.map +1 -0
- package/dist/safety/policy.d.ts +14 -0
- package/dist/safety/policy.js +81 -0
- package/dist/safety/policy.js.map +1 -0
- package/dist/viewer/assets/index-CN_yb9Uf.css +1 -0
- package/dist/viewer/assets/index-D98S1_2d.js +9 -0
- package/dist/viewer/icons/icon-192.png +0 -0
- package/dist/viewer/icons/icon-512.png +0 -0
- package/dist/viewer/index.html +15 -0
- package/dist/viewer/manifest.webmanifest +1 -0
- package/dist/viewer/registerSW.js +1 -0
- package/dist/viewer/sw.js +1 -0
- package/dist/viewer/workbox-9c191d2f.js +1 -0
- package/dist/viewerServer/context.d.ts +48 -0
- package/dist/viewerServer/context.js +60 -0
- package/dist/viewerServer/context.js.map +1 -0
- package/dist/viewerServer/evidence/classify.d.ts +59 -0
- package/dist/viewerServer/evidence/classify.js +124 -0
- package/dist/viewerServer/evidence/classify.js.map +1 -0
- package/dist/viewerServer/evidence/comparisonView.d.ts +28 -0
- package/dist/viewerServer/evidence/comparisonView.js +43 -0
- package/dist/viewerServer/evidence/comparisonView.js.map +1 -0
- package/dist/viewerServer/evidence/contextSourceView.d.ts +25 -0
- package/dist/viewerServer/evidence/contextSourceView.js +20 -0
- package/dist/viewerServer/evidence/contextSourceView.js.map +1 -0
- package/dist/viewerServer/evidence/discovery.d.ts +31 -0
- package/dist/viewerServer/evidence/discovery.js +78 -0
- package/dist/viewerServer/evidence/discovery.js.map +1 -0
- package/dist/viewerServer/evidence/evaluationView.d.ts +32 -0
- package/dist/viewerServer/evidence/evaluationView.js +50 -0
- package/dist/viewerServer/evidence/evaluationView.js.map +1 -0
- package/dist/viewerServer/evidence/handles.d.ts +21 -0
- package/dist/viewerServer/evidence/handles.js +43 -0
- package/dist/viewerServer/evidence/handles.js.map +1 -0
- package/dist/viewerServer/evidence/index.d.ts +41 -0
- package/dist/viewerServer/evidence/index.js +82 -0
- package/dist/viewerServer/evidence/index.js.map +1 -0
- package/dist/viewerServer/evidence/limits.d.ts +27 -0
- package/dist/viewerServer/evidence/limits.js +28 -0
- package/dist/viewerServer/evidence/limits.js.map +1 -0
- package/dist/viewerServer/evidence/linkedEvidence.d.ts +43 -0
- package/dist/viewerServer/evidence/linkedEvidence.js +151 -0
- package/dist/viewerServer/evidence/linkedEvidence.js.map +1 -0
- package/dist/viewerServer/evidence/mediaResolver.d.ts +16 -0
- package/dist/viewerServer/evidence/mediaResolver.js +85 -0
- package/dist/viewerServer/evidence/mediaResolver.js.map +1 -0
- package/dist/viewerServer/evidence/observationView.d.ts +29 -0
- package/dist/viewerServer/evidence/observationView.js +46 -0
- package/dist/viewerServer/evidence/observationView.js.map +1 -0
- package/dist/viewerServer/evidence/pathSafety.d.ts +11 -0
- package/dist/viewerServer/evidence/pathSafety.js +31 -0
- package/dist/viewerServer/evidence/pathSafety.js.map +1 -0
- package/dist/viewerServer/evidence/projection.d.ts +55 -0
- package/dist/viewerServer/evidence/projection.js +152 -0
- package/dist/viewerServer/evidence/projection.js.map +1 -0
- package/dist/viewerServer/evidence/referenceView.d.ts +133 -0
- package/dist/viewerServer/evidence/referenceView.js +169 -0
- package/dist/viewerServer/evidence/referenceView.js.map +1 -0
- package/dist/viewerServer/httpServer.d.ts +27 -0
- package/dist/viewerServer/httpServer.js +381 -0
- package/dist/viewerServer/httpServer.js.map +1 -0
- package/dist/viewerServer/openBrowser.d.ts +7 -0
- package/dist/viewerServer/openBrowser.js +32 -0
- package/dist/viewerServer/openBrowser.js.map +1 -0
- package/dist/viewerServer/port.d.ts +16 -0
- package/dist/viewerServer/port.js +19 -0
- package/dist/viewerServer/port.js.map +1 -0
- package/dist/viewerServer/viewerService.d.ts +62 -0
- package/dist/viewerServer/viewerService.js +88 -0
- package/dist/viewerServer/viewerService.js.map +1 -0
- package/docs/ARCHITECTURE.md +1286 -0
- package/docs/CI_CD.md +250 -0
- package/docs/COMMANDS.md +972 -0
- package/docs/CONTRACTS.md +1856 -0
- package/docs/CURRENT_STATE.md +1049 -0
- package/docs/DEVELOPMENT.md +202 -0
- package/docs/DOCUMENTATION_PRESERVATION_POLICY.md +50 -0
- package/docs/PROJECT_DESCRIPTION.md +2221 -0
- package/docs/PROJECT_MILESTONES.md +2526 -0
- package/docs/PROJECT_OVERVIEW.md +150 -0
- package/docs/QUICKSTART.md +83 -0
- package/docs/RELEASE.md +27 -0
- package/docs/ROADMAP.md +641 -0
- package/docs/SECURITY.md +218 -0
- package/docs/WORKFLOWS.md +642 -0
- package/docs/plans/v0.8-implementation-plan.md +655 -0
- package/docs/plans/v0.8.1-cli-usability-patch-plan.md +505 -0
- package/docs/reports/v0.7-bounded-fidelity-context-prompt7.md +243 -0
- package/docs/reports/v0.7-implementation-completeness-documentation-reconciliation.md +497 -0
- package/docs/reports/v0.7-pre-release-readiness.md +337 -0
- package/docs/reports/v0.7-reference-binding-prompt5.md +223 -0
- package/docs/reports/v0.7-reference-compatibility-prompt4.md +234 -0
- package/docs/reports/v0.7-reference-correction-workflow-prompt8.md +222 -0
- package/docs/reports/v0.7-reference-fidelity-prompt6.md +216 -0
- package/docs/reports/v0.7-reference-foundation-prompt1.md +151 -0
- package/docs/reports/v0.7-reference-regions-prompt2.md +195 -0
- package/docs/reports/v0.7-reference-requirements-prompt3.md +217 -0
- package/docs/reports/v0.7-release-prep.md +423 -0
- package/docs/reports/v0.8-binding-fidelity-interaction-batch6.md +279 -0
- package/docs/reports/v0.8-bounded-context-correlation-batch7.md +233 -0
- package/docs/reports/v0.8-comparison-contract-inspection-batch4.md +279 -0
- package/docs/reports/v0.8-evidence-index-readers-batch2.md +247 -0
- package/docs/reports/v0.8-implementation-completeness-documentation-reconciliation.md +741 -0
- package/docs/reports/v0.8-integrated-viewer-acceptance-batch8.md +128 -0
- package/docs/reports/v0.8-observation-svg-inspection-batch3.md +223 -0
- package/docs/reports/v0.8-prerelease-readiness-cross-platform-security-code-rot.md +687 -0
- package/docs/reports/v0.8-reference-candidate-inspection-batch5.md +232 -0
- package/docs/reports/v0.8-viewer-runtime-pwa-batch1.md +278 -0
- package/docs/reports/v0.8.1-check-orchestration-prompt2.md +69 -0
- package/docs/reports/v0.8.1-implementation-completeness-documentation-reconciliation.md +114 -0
- package/docs/reports/v0.8.1-prerelease-readiness-cross-platform-security-code-rot.md +170 -0
- package/docs/reports/v0.8.1-project-workflow-foundation-prompt1.md +66 -0
- package/package.json +58 -0
package/docs/CI_CD.md
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
# CI/CD
|
|
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.8.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.
|
|
4
|
+
|
|
5
|
+
A GitHub Actions pre-release readiness workflow exists at
|
|
6
|
+
`.github/workflows/pre-release-readiness.yml` (triggered manually via
|
|
7
|
+
`workflow_dispatch`, by pushing a `validation/**` or `release/**` branch, or
|
|
8
|
+
by a pull request into `master`). It has two phases:
|
|
9
|
+
|
|
10
|
+
1. **candidate** (Linux, Node 24): `npm ci`, install Chromium, typecheck,
|
|
11
|
+
lint, `npm test`, `npm run test:browser`, `npm run test:security`,
|
|
12
|
+
build, `npm run check:docs`, then `npm pack` to produce exactly one
|
|
13
|
+
candidate tarball and its SHA-256, uploaded as build artifacts.
|
|
14
|
+
2. **matrix-smoke** (`windows-latest`, `ubuntu-latest`, `macos-latest`, all
|
|
15
|
+
Node 24): each job downloads the *same* candidate tarball produced by the
|
|
16
|
+
candidate job, independently recomputes and verifies its SHA-256 against
|
|
17
|
+
the candidate job's hash (failing immediately on any mismatch - no job
|
|
18
|
+
ever builds its own tarball), installs Chromium via the installed
|
|
19
|
+
package's own Playwright dependency, and runs
|
|
20
|
+
`scripts/ci/runPackedObservationSmoke.mjs` against the installed
|
|
21
|
+
tarball: four real Chromium observations against a disposable local HTTP
|
|
22
|
+
target - the legacy `--target` CSS shorthand, the structured
|
|
23
|
+
`--targets-file` semantic-target path (`role`+accessible-name and `text`
|
|
24
|
+
locators, landmark evidence), a `--scroll-scenario-file` `window-scroll-by`
|
|
25
|
+
scenario, and a combined `--targets-file` + `--scroll-scenario-file`
|
|
26
|
+
`target-scroll-by` scenario against a nested scrollable container - all
|
|
27
|
+
asserting schema `1.2.0`, real scroll-position movement, derived
|
|
28
|
+
scroll-owner evidence (`document`/`target:<name>`), scenario transition
|
|
29
|
+
evidence, targets-file/scroll-scenario-file path privacy, and target
|
|
30
|
+
immutability.
|
|
31
|
+
|
|
32
|
+
This proves the same packaged candidate installs and performs a real
|
|
33
|
+
observation - CSS-shorthand, semantic-target, and v0.3 scroll-scenario alike
|
|
34
|
+
(both `window-scroll-by` and `target-scroll-by`) - on Windows, Linux, and
|
|
35
|
+
macOS, not just in the source checkout.
|
|
36
|
+
|
|
37
|
+
There is no automated npm publication and no automated GitHub Release
|
|
38
|
+
creation - this workflow is readiness validation only. Package publication
|
|
39
|
+
remains a separate, later, explicit release decision.
|
|
40
|
+
|
|
41
|
+
## v0.2 readiness coverage
|
|
42
|
+
|
|
43
|
+
The packed-candidate readiness gap that previously existed for
|
|
44
|
+
`--targets-file` has been closed: `scripts/ci/runPackedObservationSmoke.mjs`
|
|
45
|
+
now exercises both the legacy CSS-shorthand path and the structured
|
|
46
|
+
semantic `--targets-file` path in the same run, on every platform in the
|
|
47
|
+
matrix. This was proven on `validation/v0.2-pre-release`
|
|
48
|
+
(`2a0718c37cfe6988fc5d9852db455b99aa8238af`), GitHub Actions run
|
|
49
|
+
`31537578062`, which passed on Windows, Linux, and macOS using one
|
|
50
|
+
hash-verified candidate tarball.
|
|
51
|
+
|
|
52
|
+
## v0.3 readiness coverage
|
|
53
|
+
|
|
54
|
+
The packed-candidate readiness gap that previously existed for the v0.3
|
|
55
|
+
`--scroll-scenario-file` public interface - identified during the v0.3
|
|
56
|
+
implementation-completeness audit as `V0_3_READINESS_VALIDATION_GAP_EXISTS`
|
|
57
|
+
- has been closed: `scripts/ci/runPackedObservationSmoke.mjs` now also
|
|
58
|
+
performs a real `window-scroll-by` observation and a real `target-scroll-by`
|
|
59
|
+
observation (against a nested scrollable fixture container, combined with
|
|
60
|
+
`--targets-file`) through the installed tarball, asserting schema `1.2.0`,
|
|
61
|
+
actual scroll movement, `document`/`target:<name>` scroll-owner evidence
|
|
62
|
+
with `derivedFrom` provenance, scenario transition evidence, and that
|
|
63
|
+
neither the `--targets-file` nor the `--scroll-scenario-file` local path is
|
|
64
|
+
ever persisted into the manifest - on every platform in the matrix, using
|
|
65
|
+
the same single hash-verified candidate tarball as the legacy/semantic
|
|
66
|
+
observations. This was proven on `validation/v0.3-pre-release`
|
|
67
|
+
(`e59621c2fb5a6d74f491a63dc79ebe6e8b62c175`), GitHub Actions run
|
|
68
|
+
`31591920744`, which passed on Windows, Linux, and macOS using one
|
|
69
|
+
hash-verified candidate tarball (SHA-256
|
|
70
|
+
`da6cbc18a98d005b84a2f12c06f5c01d390006b53c02176a6c9cdc6d9b9d24d0`) - the
|
|
71
|
+
release candidate for `v0.3.0`.
|
|
72
|
+
|
|
73
|
+
## v0.4 readiness coverage
|
|
74
|
+
|
|
75
|
+
The packed-candidate readiness gap that previously existed for the v0.4
|
|
76
|
+
`compare` public command - identified during the v0.4 implementation/
|
|
77
|
+
documentation audit as `V0_4_READINESS_VALIDATION_GAP_EXISTS` - has been
|
|
78
|
+
closed: `scripts/ci/runPackedObservationSmoke.mjs` now also installs the
|
|
79
|
+
candidate tarball, observes a deterministic before/after fixture through
|
|
80
|
+
the installed `observe`, and runs the installed `compare` against both
|
|
81
|
+
resulting artifacts, asserting (through the *installed package's own*
|
|
82
|
+
exported `isValidComparisonArtifact`/`isValidObservationArtifact`, resolved
|
|
83
|
+
from the consumer's own `node_modules` rather than the source checkout):
|
|
84
|
+
comparison artifact kind/schema `1.0.0`, a `comparable` result with a real
|
|
85
|
+
`moved`+`resized` target difference and a real relationship-family
|
|
86
|
+
transition (`does-not-overlap`→`overlaps` and `left-of`→
|
|
87
|
+
`horizontally-overlapping` simultaneously - the same pair the v0.4
|
|
88
|
+
relationship-family matching regression concerns), an explicit
|
|
89
|
+
`--config-file` non-causal dependency-evidence result, an `incomparable`
|
|
90
|
+
result (differing viewport) with the expected blocking comparability
|
|
91
|
+
reason and no fabricated ordinary differences, comparison-manifest path
|
|
92
|
+
privacy (no absolute operational path leakage), retained (never copied)
|
|
93
|
+
before/after screenshot references, a `manifest.json`-only comparison
|
|
94
|
+
directory, and byte-identical source-observation manifests/screenshots
|
|
95
|
+
before and after comparing - on every platform in the matrix, using the
|
|
96
|
+
same single hash-verified candidate tarball as the legacy/semantic/scroll
|
|
97
|
+
observations. This preserves every pre-existing v0.1-v0.3 packed
|
|
98
|
+
observation proof unchanged and adds the v0.4 proof additively, in the same
|
|
99
|
+
script and the same candidate, per the established same-candidate
|
|
100
|
+
architecture (no second `npm pack`, no per-platform rebuild).
|
|
101
|
+
|
|
102
|
+
## v0.5 readiness coverage
|
|
103
|
+
|
|
104
|
+
The packed-readiness coverage gap identified during the v0.5 implementation-
|
|
105
|
+
completeness audit as `V0_5_READINESS_VALIDATION_GAP_EXISTS` - the packed
|
|
106
|
+
candidate smoke exercised `observe`/`compare` but not `approve-baseline`/
|
|
107
|
+
`save-change-contract`/`evaluate-contract` - has been **corrected locally**:
|
|
108
|
+
`scripts/ci/runPackedObservationSmoke.mjs` now also installs the same
|
|
109
|
+
candidate tarball, observes a deterministic navigation/workspace/rail
|
|
110
|
+
fixture through the installed `observe`, and drives the complete installed
|
|
111
|
+
`approve-baseline` → `save-change-contract` → `observe` (candidate) →
|
|
112
|
+
`compare` → `evaluate-contract` sequence, proving both a fully successful
|
|
113
|
+
contract change (overall `PASS`, `--enforce` still exits `0`) and the
|
|
114
|
+
milestone-signature failure (a locally successful requested/expected-
|
|
115
|
+
dependent change alongside a real protected right-rail regression and a
|
|
116
|
+
real preserved navigation-clipping regression, overall `FAIL`) - including
|
|
117
|
+
`--enforce` producing a nonzero exit for the identical `FAIL` evidence
|
|
118
|
+
(`evaluationRequestId` and `clauseResults` unchanged), full source
|
|
119
|
+
observation/comparison/contract-artifact immutability, no copied
|
|
120
|
+
screenshots, and no repository-root artifact leakage. All product behavior
|
|
121
|
+
under test is invoked through the installed tarball's own executable, never
|
|
122
|
+
imported from the source checkout. This addition is exercised in every
|
|
123
|
+
existing matrix lane (`windows-latest`, `ubuntu-latest`, `macos-latest`)
|
|
124
|
+
because all three already invoke this same script against the same
|
|
125
|
+
candidate tarball - no workflow YAML change was required.
|
|
126
|
+
|
|
127
|
+
This correction has since been proven cross-platform on the validation
|
|
128
|
+
branch `validation/v0.5-pre-release`, first tested at commit
|
|
129
|
+
`90255a9175503664f3e65d4114ee205176b7040a`: GitHub Actions run
|
|
130
|
+
[`31727856546`](https://github.com/dailephd/my-frontend-observer/actions/runs/31727856546)
|
|
131
|
+
passed completely - the candidate job (Linux, Node 24) and all three
|
|
132
|
+
`matrix-smoke` lanes (`windows-latest` Node v24.18.1, `ubuntu-latest` Node
|
|
133
|
+
v24.19.0, `macos-latest` Node v24.18.0) - using one shared candidate
|
|
134
|
+
tarball, `my-frontend-observer-0.4.0.tgz`, SHA-256
|
|
135
|
+
`9533a53e475614cd80a29dfa8b0f85e533e3ad736596579f559479e90e78941a`,
|
|
136
|
+
independently hash-verified by each of the three matrix lanes before any of
|
|
137
|
+
them ran the smoke (no lane built its own tarball). Every lane's
|
|
138
|
+
`smoke-summary.json` reported byte-identical v0.5 evidence: the installed
|
|
139
|
+
candidate's `approve-baseline`/`save-change-contract`/`evaluate-contract`
|
|
140
|
+
`--help` all present, a real successful contract change (overall `PASS`,
|
|
141
|
+
`--enforce` exits `0`), and the real milestone-signature failure (requested/
|
|
142
|
+
expected-dependent `pass`, protected/preserved `fail`, overall `FAIL`,
|
|
143
|
+
identical `evaluationRequestId`/`clauseResults` with `--enforce` exiting `1`
|
|
144
|
+
and without it exiting `0`), plus source-artifact immutability, no copied
|
|
145
|
+
screenshot, no path leakage, and no repository-root leakage - alongside
|
|
146
|
+
every pre-existing v0.1-v0.4 packed observe/compare/scroll assertion, still
|
|
147
|
+
passing unchanged on all three platforms.
|
|
148
|
+
|
|
149
|
+
## v0.6 packed-candidate coverage (released as `0.6.0`)
|
|
150
|
+
|
|
151
|
+
`.github/workflows/pre-release-readiness.yml`'s existing candidate-job steps
|
|
152
|
+
(`npm test`, `npm run test:browser`, `npm run test:security`, `npm run
|
|
153
|
+
build`, `npm run check:docs`) cover the v0.6 bounded-agent-context and
|
|
154
|
+
correlation modules, since they are part of the same `src/`/`tests/unit/`
|
|
155
|
+
tree exercised by `npm test`. `scripts/ci/runPackedObservationSmoke.mjs`
|
|
156
|
+
(the matrix-smoke packed-candidate proof) now also exercises the installed
|
|
157
|
+
package's bounded-agent-context and runtime/static correlation public
|
|
158
|
+
export surface directly - bounded projection, adequacy, omission/
|
|
159
|
+
truncation, deterministic request identity vs. fresh instance identity,
|
|
160
|
+
`correlated`/`ambiguous`/`unavailable` correlation outcomes, v0.5
|
|
161
|
+
scope-inheritance, schema validation, and input immutability - since v0.6
|
|
162
|
+
adds no new CLI command and no disk artifact for the packed candidate to
|
|
163
|
+
observe end-to-end; it is a programmatic export surface only (see
|
|
164
|
+
`docs/CONTRACTS.md`). This closed the readiness gap identified during v0.6
|
|
165
|
+
pre-release validation. The final pre-release candidate
|
|
166
|
+
(`acd067247c447294a611f37f52eab301b6038ab1c6d493ae65e81c2f1279bfd7`) passed
|
|
167
|
+
Windows, Linux, and macOS using that one hash-verified tarball (GitHub
|
|
168
|
+
Actions run `32304059259`) before the `0.6.0` release below.
|
|
169
|
+
|
|
170
|
+
## v0.7 packed-candidate coverage (released as `0.7.0`)
|
|
171
|
+
|
|
172
|
+
The v0.7 pre-release readiness stage identified the same class of gap
|
|
173
|
+
`scripts/ci/runPackedObservationSmoke.mjs` had already closed for every
|
|
174
|
+
prior version: the packed-candidate smoke exercised `observe`/`compare`/
|
|
175
|
+
`approve-baseline`/`save-change-contract`/`evaluate-contract` and the v0.6
|
|
176
|
+
bounded-agent-context/correlation exports, but none of v0.7's new surface.
|
|
177
|
+
This was closed the same way as every prior version's gap - one narrow,
|
|
178
|
+
additive extension to the existing script, never a second parallel
|
|
179
|
+
framework: the installed candidate's `import-reference --help`/
|
|
180
|
+
`approve-reference --help`/`evaluate-reference-fidelity --help`; a real
|
|
181
|
+
external-reference image imported and approved through the installed CLI
|
|
182
|
+
with explicit regions, three requirement kinds (`region-property`,
|
|
183
|
+
`region-relationship`, and both `exact`/`absolute-reference-px` tolerance
|
|
184
|
+
kinds), and a declared `applicability.viewport`; explicit region↔runtime-
|
|
185
|
+
target bindings reusing the existing v0.5 contract-fixture geometry; a
|
|
186
|
+
genuine fidelity `pass` and a genuine fidelity `fail` (each checked with and
|
|
187
|
+
without `--enforce`, mirroring `evaluate-contract`'s own PASS/FAIL/
|
|
188
|
+
`--enforce` proof pattern); an `observe --state-file` explicit-state
|
|
189
|
+
round-trip; and the installed package's programmatic
|
|
190
|
+
`evaluateReferenceCandidateFidelityFromArtifactRoots`/
|
|
191
|
+
`prepareReferenceCorrection`/`reviewReferenceCorrectionAttempt` exports,
|
|
192
|
+
including a `prepareReferenceCorrection` handoff carrying a bounded-agent-
|
|
193
|
+
context artifact (exercising the v0.7 bounded fidelity projection and its
|
|
194
|
+
v0.6 bounded-agent-context integration together) and both a `pass` and a
|
|
195
|
+
`fail` `reviewReferenceCorrectionAttempt` outcome - all resolved from the
|
|
196
|
+
installed package's own `node_modules`, never the source checkout, and all
|
|
197
|
+
re-verified against a re-hash of the pre-existing source observation
|
|
198
|
+
manifest to confirm none of the new calls mutated it.
|
|
199
|
+
|
|
200
|
+
This was proven cross-platform on the validation branch
|
|
201
|
+
`validation/v0.7-pre-release` at commit
|
|
202
|
+
`b2286bdc9550d70fa1047a1f732968a8eca46a1e`: GitHub Actions run
|
|
203
|
+
[`34054085344`](https://github.com/dailephd/my-frontend-observer/actions/runs/34054085344)
|
|
204
|
+
passed completely - the candidate job (Linux, Node 24) and all three
|
|
205
|
+
`matrix-smoke` lanes (`windows-latest` Node v24.19.0, `ubuntu-latest` Node
|
|
206
|
+
v24.20.0, `macos-latest` Node v24.20.0) - using one shared **pre-version-
|
|
207
|
+
bump implementation candidate** tarball, `my-frontend-observer-0.6.0.tgz`
|
|
208
|
+
(package version still `0.6.0` at that point in the readiness stage - the
|
|
209
|
+
version bump to `0.7.0` happened only afterward, during release
|
|
210
|
+
preparation; this tarball itself was never version `0.7.0`), SHA-256
|
|
211
|
+
`0347b1f3cfd5d311e13b405c0c2fbc2f507e250cb63223d58b4d2d31df029414`,
|
|
212
|
+
independently hash-verified by each of the three matrix lanes before any of
|
|
213
|
+
them ran the smoke (no lane built its own tarball). Every lane's
|
|
214
|
+
`smoke-summary-<os>.json` reported the same v0.7 evidence described above,
|
|
215
|
+
alongside every pre-existing v0.1-v0.6 packed assertion, still passing
|
|
216
|
+
unchanged on all three platforms - see
|
|
217
|
+
`docs/reports/v0.7-pre-release-readiness.md` for the complete readiness
|
|
218
|
+
report.
|
|
219
|
+
|
|
220
|
+
## v0.8.1 packaging implications (released as `0.8.1`; formal cross-platform readiness passed)
|
|
221
|
+
|
|
222
|
+
v0.8.1 is released as `@dailephd/my-frontend-observer@0.8.1` - see
|
|
223
|
+
`docs/CURRENT_STATE.md`. `.github/workflows/pre-release-readiness.yml`'s
|
|
224
|
+
matrix now covers it: alongside the pre-existing packed-observation smoke,
|
|
225
|
+
each platform runner also installs the exact candidate tarball and runs
|
|
226
|
+
`scripts/ci/runPackedViewerSmoke.mjs`, proving in real Chromium that the
|
|
227
|
+
installed `view` command binds to loopback only, indexes real evidence,
|
|
228
|
+
renders the SVG target overlay and a reference view, enforces its read-only
|
|
229
|
+
API, rejects path traversal, registers its service worker, never caches
|
|
230
|
+
`/api/` responses as authoritative, and never presents stale evidence once
|
|
231
|
+
the server is stopped.
|
|
232
|
+
|
|
233
|
+
`npm run build` builds both the Node/CLI output (`tsc -p tsconfig.json`) and
|
|
234
|
+
the browser-side viewer application plus its PWA assets (`vite build
|
|
235
|
+
--config viewer/vite.config.ts` into `dist/viewer` - service worker,
|
|
236
|
+
manifest, precached app shell); the existing `files` package allowlist
|
|
237
|
+
(`dist`, `README.md`, `CHANGELOG.md`, `docs`) already includes
|
|
238
|
+
`dist/viewer`, so no separate publish boundary was created for the viewer;
|
|
239
|
+
the existing CLI/library commands (`observe` through
|
|
240
|
+
`evaluate-reference-fidelity`) remain packaged and unchanged; and package
|
|
241
|
+
version stays independent of every schema version, as for every prior
|
|
242
|
+
release.
|
|
243
|
+
|
|
244
|
+
Formal Windows/Linux/macOS cross-platform validation - the same exact
|
|
245
|
+
hash-verified candidate tarball on every platform - and a formal security
|
|
246
|
+
audit (which found and fixed one real finding: a symlinked-media
|
|
247
|
+
evidence-root escape in the viewer's media route) both passed before this
|
|
248
|
+
release - see
|
|
249
|
+
`docs/reports/v0.8-prerelease-readiness-cross-platform-security-code-rot.md`
|
|
250
|
+
for the complete readiness report.
|