Skip to content

feat: publish host-backed FreeCut editor surface - #5

Merged
lightninglu10 merged 5 commits into
stagingfrom
freecut-frontend-package-5319
Aug 17, 2026
Merged

feat: publish host-backed FreeCut editor surface#5
lightninglu10 merged 5 commits into
stagingfrom
freecut-frontend-package-5319

Conversation

@lightninglu10

@lightninglu10lightninglu10 commented Aug 17, 2026

Copy link
Copy Markdown

Summary

  • Add the versioned @quantfive/freecut-editor-surface browser/package entry for the merged FreeCutEditorSurface and typed host contract.
  • Produce a deterministic 0.1.0 tarball with CSS, declarations, and host-disabled worker/model outputs excluded from the consumer artifact.
  • Add a fake-host consumer smoke test that mounts the real editor surface and verifies bounded capability behavior.

Verification

  • Package build, type/check/lint, host tests, standalone app build, provenance, boundary/dependency/wrapper/edge checks, reproducibility, consumer smoke, and diff checks were run.
  • Repository format remains blocked by the existing baseline set of unrelated files; stale Fallow allowlists remain unchanged.

Refs quantfive/codepress#5319

@lightninglu10lightninglu10 self-assigned this Aug 17, 2026
@lightninglu10
lightninglu10 marked this pull request as ready for review August 17, 2026 16:17
@codepress-reviewer-dev

Copy link
Copy Markdown

Starting initial review of 60ac3e54 from baseline f9abfb25... 👀

View automation run

@codepress-reviewer-devcodepress-reviewer-devBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The host-backed package boundary and deterministic packaging approach are appropriate for this release. One release gate needs fixing before publish:

  • vite.editor-package.test.config.ts:8 — The purported consumer smoke test imports the package by name, but a clean checkout does not install or link @quantfive/freecut-editor-surface: the root project has no workspace declaration for packages/freecut-editor, and the test config supplies no alias for that package. The test consequently cannot verify a clean consumer install. The publish workflow also never invokes it, so a broken package entry/export can still be published. Please build and pack the artifact, install that tarball into a temporary consumer fixture, and run the smoke test from there as a required pre-publish step. That both makes the test runnable and validates the artifact consumers receive.
Reviewed `f9abfb25`...`60ac3e54`. Diff collection and GitHub posting were handled by the automation.

View automation run

@codepress-reviewer-dev

codepress-reviewer-devBot commented Aug 17, 2026

Copy link
Copy Markdown

Review head fd487df20218fbf89e8f61f79a99b56a88524c99; round 3; 19 reviewed file(s), 0 pending/skipped file(s). 1 subsystem record(s) retained; 0 omitted.

View automation run

@lightninglu10
lightninglu10 marked this pull request as draft August 17, 2026 16:29

@codepress-reviewer-devcodepress-reviewer-devBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The consumer verification is now on the right boundary: the workflow builds the deterministic tarball, installs that artifact into an isolated temporary fixture, and runs the real smoke test before npm publish. This exercises package resolution and the published export path without relying on an undeclared workspace link or local alias.

The package boundary and release-gate shape remain appropriate for this release. No blocking issues found in the follow-up diff.

Reviewed `60ac3e54`...`fd487df2`. Diff collection and GitHub posting were handled by the automation.

View automation run

@lightninglu10

Copy link
Copy Markdown
Author

@codepress /judge-verification can you judge this verification?

Local Verification

PR Head SHA:fd487df20218fbf89e8f61f79a99b56a88524c99

Verifier revision binding

Behavioral Contract Results

#Effect that must be observedRequired evidenceResultHow it was observed
B1A clean consumer resolves the versioned FreeCut browser entry from the packed artifact and mounts the host-backed editorlive-execution✅ PASSThe final @quantfive/freecut-editor-surface@0.1.0 tarball was installed into a temporary fixture with no workspace declaration or source alias; the fixture ran the real smoke test: 1 file / 1 test passed.
B2The published entry renders the real LoadedEditor surface and keeps host capability gates boundedlive-execution✅ PASSThe installed-package smoke rendered FreeCutEditorSurface; it observed at least two toolbars, the Preview area region, Timeline, and properties-clip-panel-host, plus one host load and the disabled timeline.add capability. editor-surface.tsx imports and renders LoadedEditor; the existing host suite passed 10/10.
B3The artifact has stable metadata and a reproducible package boundary with no forbidden app/bootstrap/raw-source dependencieslive-execution✅ PASSTwo independent package runs produced the same 5,856,910-byte tarball SHA-256 6d502871a0fe42771de755205e0980aebaba4d05104e695f8ec60f209e608540; package-script boundary checks, precise generated-entry scans, tar listing checks, and provenance verification passed.
B4Publishing cannot proceed without testing the exact packed artifact as a consumercode-inspection✅ PASSactionlint passed and .github/workflows/publish-editor-surface.yml runs npm run test:editor-surface:consumer -- --artifact ... after deterministic packing and before private npm publish.

Diff Trigger Inventory

SurfaceLocationContract item
Versioned consumer-facing browser entry and host contract exportspackages/freecut-editor/package.json, packages/freecut-editor/src/index.ts, src/features/editor/host/index.ts1, 2
Real host-backed editor mountsrc/features/editor/host/editor-surface.tsx1, 2
Installed-artifact consumer fixture and smoke assertionsscripts/test-editor-surface-consumer.mjs, packages/freecut-editor/consumer-smoke.test.tsx, vite.editor-package.test.config.ts1, 2
Deterministic build, tar packaging, and forbidden-dependency boundaryscripts/package-editor-surface.mjs, packages/freecut-editor/dist/**2, 3
Provenance/dependency inventoriesprovenance/freecut-baseline.json, provenance/dependency-inventory.json3
Required pre-publish artifact consumer gate.github/workflows/publish-editor-surface.yml4
Quality and regression surfaceroot check/lint/build scripts and src/features/editor/host/*.test.tsx2, 3

FreeCut has no codepress_documentation/verification/GRAPH.md, no feature-slug graph, and no scripts/verification-checks.sh; therefore there are no declared graph outgoing edges for this package-only diff. The repository-owned boundary, dependency-contract, wrapper-health, changed-health, and edge-budget checks were run as the relevant available verification graph-equivalent checks.

Verification Contract Results

#AssertionPlaneEvidenceResultDetails
1The exact tarball installs in a clean non-workspace consumer and the package-name import mounts the editorlocallive-execution✅ PASSnpm run test:editor-surface:consumer -- --artifact artifacts/freecut-editor-surface-0.1.0.tgz; temporary fixture installed 141 packages, then Vitest reported 1 file / 1 test passed. Final fixture run log: /tmp/codepress-qa-verifier-runs/pr5-fd487df2-1786984594-79133/consumer-final-artifact.log.
2The package smoke reaches the real LoadedEditor surface and observes bounded host behaviorlocallive-execution✅ PASSSmoke assertions observed toolbar(s), Preview area, Timeline, properties panel, host.load() exactly once, capabilityForCommand('move_item') === 'timeline.move', and disabled timeline.add; source inspection confirms FreeCutEditorSurface renders LoadedEditor; host tests passed 10/10.
3Package metadata, exports, tar boundary, and forbidden consumer dependencies are correctlocallive-execution✅ PASSPackage @quantfive/freecut-editor-surface@0.1.0; main/module=./dist/index.js, types=./dist/index.d.ts, ./style.css=./dist/style.css, peer React/React DOM, private registry https://npm.pkg.github.com; required dist files present; no src, node_modules, aliases, raw paths, App, RouterProvider, WorkspaceGate, FileSystemDirectoryHandle bootstrap, or headless imports.
4Artifact reproducibility and provenance remain stablelocallive-execution✅ PASSIndependent package runs matched byte-for-byte and SHA-256 6d502871a0fe42771de755205e0980aebaba4d05104e695f8ec60f209e608540; npm run verify:provenance passed with license, dependency inventory, asset inventory, and verification-only checks.
5Type, lint, check, host regression, standalone build, and repository boundary checks passlocaltest-suite✅ PASSnpm run check, npm run lint, public declaration compile, host tests (10/10), npm run build, check:boundaries, check:deps-contracts, check:legacy-lib-imports, check:deps-wrapper-health (46 wrappers / 0 unused), check:changed-health (19 changed files / 0 introduced), and check:edge-budgets all passed.
6The publish workflow gates private publication on the packed consumer smoke and the committed diff is cleanlocaltest-suite✅ PASSactionlint .github/workflows/publish-editor-surface.yml and git diff --check f9abfb2519f6d9077adcd7d1f4601eae74379690..HEAD passed; workflow order is pack → installed-consumer smoke → npm publish to GitHub Packages.

Artifact Metadata

  • Package: @quantfive/freecut-editor-surface
  • Version: 0.1.0
  • Artifact: artifacts/freecut-editor-surface-0.1.0.tgz
  • SHA-256: 6d502871a0fe42771de755205e0980aebaba4d05104e695f8ec60f209e608540
  • Size: 5,856,910 bytes
  • Registry: private GitHub Packages npm registry (https://npm.pkg.github.com); no public access flag and no publish was attempted.
  • Required package files: dist/index.js, dist/index.d.ts, dist/style.css, README.md, LICENSE, package metadata.

Supplementary repository baseline findings

These checks were run and recorded but are not introduced by the package diff: targeted formatting for the 9 package/consumer files passed; the repository-wide npm run format:check still reports 169 existing files. npm run check:unused-exports reports 129 findings (119 allowlisted, 10 new-to-allowlist, 3 stale) outside the changed-health surface; npm run check:unused-class-members reports 83 findings (83 allowlisted, 0 new, 2 stale). npm run check:changed-health reports zero introduced dead-code, complexity, or duplication findings for the 19 changed files. These baseline findings do not affect the package contract above.

Overall: ✅ PASS — PENDING JUDGE

Verification artifacts

  • Consumer smoke log: /tmp/codepress-qa-verifier-runs/pr5-fd487df2-1786984594-79133/consumer-final-artifact.log
  • Package/reproducibility log: /tmp/codepress-qa-verifier-runs/pr5-fd487df2-1786984594-79133/package-second.log
  • Check logs: /tmp/codepress-qa-verifier-runs/pr5-fd487df2-1786984594-79133/

@codepress-dev

Copy link
Copy Markdown

👋 Hey @lightninglu10! Spawning a verification judge session to help with your request. View session

@codepress-dev

Copy link
Copy Markdown

@Terminal@lightninglu10

Dispatched by judge-verification.

This judgment is READY TO MERGE at the current head. If the PR is still a draft, transition it to ready for review now with the guarded readiness transaction: codepress-policy ready-for-review --repo . --pr 5 (or node packages/delivery-policy/dist/cli.js ready-for-review --repo . --pr 5 when the CLI is not on PATH). It re-validates current-head QA and judge evidence, reconciles the delivery-status marker, and marks the PR ready so the native reviewer can dispatch. Do not call gh pr ready directly, and do not merge; merge authorization still requires the reviewer gate.

Verification Judgment — PR #5 (local)

Verdict: ✅ READY TO MERGE

PR Head SHA:fd487df20218fbf89e8f61f79a99b56a88524c99

Summary: The local report covers the material behavior introduced by the diff: a clean consumer can install the packed package and mount the host-backed editor, the published boundary exposes stable metadata and no forbidden app/bootstrap dependencies, deterministic packaging is reproducible, and publication is gated on the exact packed-artifact smoke test. The current head matches the verified head, and the code audit found no contradictory behavior or material coverage gap.

Revision binding

  • Classification: SAME-SHA LATE BINDING
  • Report head:fd487df20218fbf89e8f61f79a99b56a88524c99
  • Live PR head:fd487df20218fbf89e8f61f79a99b56a88524c99
  • Audited checkout: clean detached checkout at fd487df20218fbf89e8f61f79a99b56a88524c99
  • Concrete evidence: The report captured git rev-parse HEAD -> fd487df20218fbf89e8f61f79a99b56a88524c99; git status --porcelain -> (empty). The live GitHub PR head is the same full SHA. My detached audit checkout resolved to the same SHA with an empty status, and git diff --check f9abfb2519f6d9077adcd7d1f4601eae74379690..HEAD passed.
  • Rows carried forward: none
  • Rows reverified at live head: none
  • Rows still requiring verification: none
  • Publication timing: GitHub records the report comment at 2026-08-17T16:44:25Z naming this SHA; the live PR remains at the same SHA (OPEN, draft, base staging). No later head change is present in the live PR record. This timing supports publication ordering only; verifier checkout provenance is established by the captured revision/status lines above.

Diff trigger inventory

SurfaceLocationCoverage
Versioned consumer-facing package metadata, browser entry, and host contract exportspackages/freecut-editor/package.json, packages/freecut-editor/src/index.ts, packages/freecut-editor/src/index.d.ts, src/features/editor/host/index.ts, src/features/editor/host/context-provider.tsx1, 2, 3, 5
Real host-backed editor mount and bounded host capability/runtime behavior exposed by the entrysrc/features/editor/host/editor-surface.tsx, src/features/editor/host/controller.ts, src/features/editor/host/runtime.ts1, 2, 5
Installed-artifact consumer fixture and real smoke assertionsscripts/test-editor-surface-consumer.mjs, packages/freecut-editor/consumer-smoke.test.tsx, packages/freecut-editor/consumer-smoke.setup.ts, vite.editor-package.test.config.ts1, 2, 5, 6
Deterministic build, tar packaging, generated boundary, and package provenancevite.editor-package.config.ts, scripts/package-editor-surface.mjs, provenance/dependency-inventory.json, provenance/freecut-baseline.json3, 4, 5
Pre-publication workflow ordering, tag/version guard, and private registry publication.github/workflows/publish-editor-surface.yml, package.json3, 6

FreeCut has no codepress_documentation/verification/GRAPH.md and no scripts/verification-checks.sh, so there are no declared outgoing verification edges to add for this diff.

Per-item

#Verifier saidJudgmentEvidence
1PASS✅ PASSThe exact @quantfive/freecut-editor-surface@0.1.0 tarball was installed in a temporary non-workspace consumer with no source alias, and the real package-name smoke test passed (1 file / 1 test).
2PASS✅ PASSThe installed-package smoke reached the real FreeCutEditorSurface, observed the editor toolbars, Preview area, Timeline, and properties panel, and checked one host load plus the disabled timeline.add capability. The source entry renders LoadedEditor; the host regression suite passed 10/10 and covers unsupported-command gating and host-mode persistence/media boundaries.
3PASS✅ PASSPackage metadata points main/module/types and ./style.css at the generated boundary, React remains peer-only, the required dist files and package metadata are present, and the report's packed tar listing found no src or node_modules content and no forbidden aliases/bootstrap dependencies.
4PASS✅ PASSTwo independent package runs matched byte-for-byte at 5,856,910 bytes with SHA-256 6d502871a0fe42771de755205e0980aebaba4d05104e695f8ec60f209e608540; provenance verification also passed.
5PASS✅ PASSThe report records passing check, lint, public declaration compilation, standalone build, host tests, boundary/dependency/legacy-import/wrapper-health/changed-health/edge-budget checks; its changed-health result is 19 changed files with 0 introduced findings. My live-head detached audit also passed the reported diff check.
6PASS✅ PASSactionlint and the workflow audit passed; the workflow deterministically packs the artifact, runs test:editor-surface:consumer against that exact tarball, and only then invokes private GitHub Packages publication.

Overall status check

  • Verifier said: PASS
  • Result: READY TO MERGE

What stood up

  • The consumer evidence exercises the installed tarball rather than a workspace alias or source import.
  • The package entry is wired to the existing LoadedEditor surface, while the host contract keeps authority, persistence, and media resolution outside the package.
  • The packaging script and workflow enforce the artifact boundary, reproducibility, and pre-publish consumer gate.

@lightninglu10
lightninglu10 marked this pull request as ready for review August 17, 2026 16:50
@codepress-reviewer-dev

Copy link
Copy Markdown

Starting new changes review of fd487df2 from baseline fd487df2... 👀

View automation run

@codepress-reviewer-devcodepress-reviewer-devBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary

No reviewable text diff was found for the selected incremental range.

Findings

None

Verdict

Leaving a comment because there were no included text patches to review.

@lightninglu10

Copy link
Copy Markdown
Author

@codepress /judge-verification can you judge this verification?

Local Verification

PR Head SHA:4979b4889effd28eb6c680579f24cb9f8f8b979c

Verifier revision binding

Behavioral Contract Results

#Effect that must be observedRequired evidenceResultHow it was observed
B1A clean consumer resolves the versioned FreeCut browser entry from the packed artifact and mounts the host-backed editorlive-execution✅ PASSThe exact @quantfive/freecut-editor-surface@0.1.0 tarball was installed into a temporary fixture with no workspace declaration or source alias; the real smoke test passed 1 file / 1 test.
B2The published entry renders the real LoadedEditor surface and keeps host capability gates boundedlive-execution✅ PASSThe installed-package smoke observed toolbars, Preview area, Timeline, properties panel, one host load, and disabled timeline.add; editor-surface.tsx imports/renders LoadedEditor; host tests passed 10/10.
B3The artifact has stable metadata and a reproducible package boundary with no forbidden app/bootstrap/raw-source dependencieslive-execution✅ PASSTwo independent package runs matched at 5,856,910 bytes and SHA-256 6d502871a0fe42771de755205e0980aebaba4d05104e695f8ec60f209e608540; package boundary, tar listing, precise generated-entry scan, and provenance passed.
B4Publishing cannot proceed without testing the exact packed artifact as a consumercode-inspection✅ PASSactionlint passed; workflow order is deterministic pack -> installed-artifact consumer smoke -> private npm publish.
B5The repository check does not falsely type-check the package-name smoke from a non-consumer roottest-suite✅ PASSThe root check boundary was corrected; exact-head npm run check passed on 2,427 files, while the smoke remains linted and is required in the isolated packed-consumer fixture.

Diff Trigger Inventory

SurfaceLocationContract item
Versioned consumer browser entry and host contract exportspackages/freecut-editor/package.json, packages/freecut-editor/src/index.ts, src/features/editor/host/index.ts1, 2
Real host-backed editor mountsrc/features/editor/host/editor-surface.tsx1, 2
Installed-artifact consumer fixture and smoke assertionsscripts/test-editor-surface-consumer.mjs, packages/freecut-editor/consumer-smoke.test.tsx, vite.editor-package.test.config.ts1, 2
Deterministic build, tar packaging, and forbidden-dependency boundaryscripts/package-editor-surface.mjs, packages/freecut-editor/dist/**2, 3
Provenance/dependency inventoriesprovenance/freecut-baseline.json, provenance/dependency-inventory.json3
Required pre-publish artifact consumer gate.github/workflows/publish-editor-surface.yml4
Root check boundary for package-name consumer smokepackage.json5

FreeCut has no codepress_documentation/verification/GRAPH.md, no feature-slug graph, and no scripts/verification-checks.sh; there are no declared graph outgoing edges for this package-only diff. The available repository-owned boundary, dependency-contract, wrapper-health, changed-health, and edge-budget checks were run.

Verification Contract Results

#AssertionPlaneEvidenceResultDetails
1The exact tarball installs in a clean non-workspace consumer and the package-name import mounts the editorlocallive-execution✅ PASSnpm run test:editor-surface:consumer built and packed the artifact, installed 141 packages in a temporary fixture, and passed 1 file / 1 test. Log: /tmp/codepress-qa-verifier-runs/pr5-4979b488-1786985613-47129/consumer-smoke.log.
2The package smoke reaches the real LoadedEditor surface and observes bounded host behaviorlocallive-execution✅ PASSSmoke assertions observed toolbar(s), Preview area, Timeline, properties panel, host.load() once, capabilityForCommand('move_item') === 'timeline.move', and disabled timeline.add; source confirms the real LoadedEditor render; host suite 10/10.
3Package metadata, exports, tar boundary, and forbidden consumer dependencies are correctlocallive-execution✅ PASSPackage @quantfive/freecut-editor-surface@0.1.0; ESM/types/style exports, React peers, Node >=22, and private registry metadata are correct; required dist files are present; no source, node_modules, aliases, raw paths, App, RouterProvider, WorkspaceGate, FileSystemDirectoryHandle bootstrap, or headless imports.
4Artifact reproducibility and provenance remain stablelocallive-execution✅ PASSIndependent package runs matched byte-for-byte at SHA 6d502871a0fe42771de755205e0980aebaba4d05104e695f8ec60f209e608540 and size 5,856,910; npm run verify:provenance passed.
5Type, lint, check, host regression, standalone build, and repository boundary checks passlocaltest-suite✅ PASSnpm run check, npm run lint, public declaration compile, host tests (10/10), npm run build, boundaries, dependency contracts, legacy imports, wrapper health (46/0), changed health (19 changed / 0 introduced), edge budgets, and targeted formatting all passed.
6The publish workflow gates the packed consumer and the committed diff is cleanlocaltest-suite✅ PASSactionlint and git diff --check f9abfb2519f6d9077adcd7d1f4601eae74379690..HEAD passed; workflow gates private publish on the artifact smoke.

Artifact Metadata

  • Package: @quantfive/freecut-editor-surface
  • Version: 0.1.0
  • Artifact: artifacts/freecut-editor-surface-0.1.0.tgz
  • SHA-256: 6d502871a0fe42771de755205e0980aebaba4d05104e695f8ec60f209e608540
  • Size: 5,856,910 bytes
  • Registry: private GitHub Packages npm registry (https://npm.pkg.github.com); no public publish was attempted.

Supplementary repository baseline findings

Targeted formatting for package/consumer files passed. Repository-wide npm run format:check still reports 169 existing files. check:unused-exports reports 129 findings (119 allowlisted, 10 new-to-allowlist, 3 stale), and check:unused-class-members reports 83 findings (83 allowlisted, 0 new, 2 stale). check:changed-health reports zero introduced findings for the changed files. These unrelated baseline findings do not affect the package contract.

Overall: ✅ PASS — PENDING JUDGE

Verification artifacts

  • Consumer smoke: /tmp/codepress-qa-verifier-runs/pr5-4979b488-1786985613-47129/consumer-smoke.log
  • Reproducibility: /tmp/codepress-qa-verifier-runs/pr5-4979b488-1786985613-47129/package-second.log
  • Check logs: /tmp/codepress-qa-verifier-runs/pr5-4979b488-1786985613-47129/

@codepress-dev

Copy link
Copy Markdown

👋 Hey @lightninglu10! Spawning a verification judge session to help with your request. View session

@codepress-dev

Copy link
Copy Markdown

@Terminal@lightninglu10

Dispatched by judge-verification.

This judgment is READY TO MERGE at the current head. If the PR is still a draft, transition it to ready for review now with the guarded readiness transaction: codepress-policy ready-for-review --repo . --pr 5 (or node packages/delivery-policy/dist/cli.js ready-for-review --repo . --pr 5 when the CLI is not on PATH). It re-validates current-head QA and judge evidence, reconciles the delivery-status marker, and marks the PR ready so the native reviewer can dispatch. Do not call gh pr ready directly, and do not merge; merge authorization still requires the reviewer gate.

Verification Judgment — PR #5 (local)

Verdict: ✅ READY TO MERGE

PR Head SHA:4979b4889effd28eb6c680579f24cb9f8f8b979c

Summary: The report establishes safety for the current PR head. It exercises the exact packed artifact in a clean consumer, reaches the real host-backed editor surface, checks the bounded host contract, proves the package boundary and reproducibility, and gates publication on the installed-artifact smoke. The live head matches the verified head, and the diff audit found no contradictory behavior or material coverage gap.

Revision binding

  • Classification: SAME-SHA LATE BINDING
  • Report head:4979b4889effd28eb6c680579f24cb9f8f8b979c
  • Live PR head:4979b4889effd28eb6c680579f24cb9f8f8b979c
  • Audited checkout: clean detached checkout at 4979b4889effd28eb6c680579f24cb9f8f8b979c
  • Concrete evidence: The report captured git rev-parse HEAD -> 4979b4889effd28eb6c680579f24cb9f8f8b979c; git status --porcelain -> (empty); GitHub reports the same full SHA as PR feat: publish host-backed FreeCut editor surface #5's live head. My detached audit checkout resolved to that SHA with empty status, and git diff --check f9abfb2519f6d9077adcd7d1f4601eae74379690..HEAD passed.
  • Rows carried forward: none
  • Rows reverified at live head: none
  • Rows still requiring verification: none
  • Publication timing: The latest head commit was recorded at 2026-08-17T16:53:08Z; the canonical verification report comment 5317952761 was created at 2026-08-17T16:57:19Z naming this same SHA. GitHub still reports the PR at this SHA with no later head change. This establishes publication ordering only; verifier checkout provenance is established by the captured revision/status lines above.

Diff trigger inventory

SurfaceLocationCoverage
Versioned package metadata, browser entry, and host contract exportspackages/freecut-editor/package.json, packages/freecut-editor/src/index.ts, src/features/editor/host/index.ts1, 2, 3, 5
Real host-backed editor mount and bounded capability/runtime behaviorsrc/features/editor/host/editor-surface.tsx, src/features/editor/host/runtime.ts, src/features/editor/host/controller.ts, src/features/editor/components/editor.tsx1, 2
Installed-artifact consumer fixture, smoke assertions, and root check boundaryscripts/test-editor-surface-consumer.mjs, packages/freecut-editor/consumer-smoke.test.tsx, packages/freecut-editor/consumer-smoke.setup.ts, vite.editor-package.test.config.ts, package.json1, 2, 5
Deterministic build, tar packaging, generated boundary, and provenancescripts/package-editor-surface.mjs, vite.editor-package.config.ts, provenance/dependency-inventory.json, provenance/freecut-baseline.json3, 4, 5
Pre-publication workflow ordering, private registry guard, and release-tag validation.github/workflows/publish-editor-surface.yml4, 6
Repository check, lint/format coverage, host regression, and committed-diff hygienepackage.json, src/features/editor/host/*.test.tsx5, 6

FreeCut has no codepress_documentation/verification/GRAPH.md and no scripts/verification-checks.sh; there are no declared outgoing verification edges for this diff.

Per-item

#Verifier saidJudgmentEvidence
1PASS✅ PASSThe exact @quantfive/freecut-editor-surface@0.1.0 tarball was installed in a temporary non-workspace consumer with no source alias or workspace declaration, and the real package-name smoke test passed (1 file / 1 test). It observed the published browser entry mounting the editor surface.
2PASS✅ PASSThe package smoke observed toolbars, the Preview area region, Timeline, the properties panel, and one host.load() call. The audited entry imports and renders LoadedEditor; the host controller checks capability mappings before calling the host, and the report records the host regression suite passing 10/10, including unsupported-command gating and host-mode persistence/media boundaries.
3PASS✅ PASSThe package metadata points to the generated ESM/type/style boundary, keeps React as peer dependencies, and targets the private GitHub Packages registry. The packaging boundary verifies required outputs and rejects source, node_modules, aliases, raw filesystem paths, app/router/bootstrap, and headless dependencies. Two independent artifacts matched at 5,856,910 bytes with SHA-256 6d502871a0fe42771de755205e0980aebaba4d05104e695f8ec60f209e608540.
4PASS✅ PASSThe report records byte-for-byte agreement between independent package runs and a passing provenance verification. The workflow builds the deterministic artifact before the consumer gate and publishes only the versioned artifact.
5PASS✅ PASSThe current check boundary excludes the package-name consumer smoke that cannot resolve a package installed only in a separate fixture, while lint and formatting still include the smoke files and the isolated fixture runs the actual package-name test. The report records exact-head npm run check passing on 2,427 files, plus lint, declaration compilation, build, host tests, boundary/dependency/health/edge checks, and zero introduced changed-health findings.
6PASS✅ PASSactionlint and the committed diff check passed. The workflow's order is deterministic pack -> installed-artifact consumer smoke -> private npm publish, with release-tag/version validation and private-registry permissions visible in the audited source.

Overall status check

  • Verifier said: PASS
  • Result: READY TO MERGE

What stood up

  • The consumer evidence exercises the installed tarball rather than a workspace alias or source import.
  • The package entry is wired to the existing LoadedEditor surface, while host capabilities, persistence, and media resolution remain bounded by the host contract.
  • The packaging script and workflow enforce the artifact boundary, reproducibility, and pre-publication consumer gate.

@lightninglu10
lightninglu10 merged commit 87aee5c into stagingAug 17, 2026
3 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@lightninglu10