Uh oh!
There was an error while loading. Please reload this page.
Add caption commands and FreeCut caption UI - #3
Conversation
lightninglu10
commented
Aug 17, 2026
@codepress /judge-verification can you judge this verification? Local VerificationPR:#3 — Add caption commands and FreeCut caption UI Verifier revision binding
Behavioral Contract Results
Diff Trigger Inventory
The FreeCut worktree does not contain the generated verification graph artifact; the PR3/FreeCut integration documentation was used for the available integration seam. No additional runtime consumer was identified in this PR9A diff. Verification Contract Results
Visual EvidenceThe following artifacts are deterministic real-app host-load captures only. They do not show the caption editor because the current production host does not mount it. Local QA outputs:
Blocker Qualification
Frontend QAStatus: BLOCKED The real-app report and artifact manifest are at Overall: ❌ FAIL — NOT READY TO MERGEThe PR9A caption command adapter and bounded validation contracts pass focused live and static verification. The draft must remain unmerged/unready until the real FreeCut editor shell mounts |
👋 Hey @lightninglu10! Spawning a verification judge session to help with your request. View session |
Dispatched by judge-verification. Work the Path to merge below. Reuse healthy exact-head verification environments; do not redeploy or restart unless stale or unhealthy. Continue only when there is meaningful work to clear the blocker. If the path is already satisfied, the same blocker remains, or another judge pass would add no useful evidence, stop and report that instead of submitting another verification report. Verification Judgment — PR #3 (local)Verdict: ❌ NOT READY TO MERGE PR Head SHA: Summary: The caption adapter and frame-native document contracts have credible exact-head live and focused-test evidence, but the PR is not safe to merge as a FreeCut caption UI change. Revision binding
Diff trigger inventory
Per-item
Overall status check
Path to merge
Becomes Dispatch: yes What stood up
|
@codepress /judge-verification can you judge this verification? Local VerificationPR: #3 — Add caption commands and FreeCut caption UI Verifier revision binding
Behavioral Contract Results
Diff Trigger Inventory
The generated verification graph artifact is not present in this FreeCut worktree. The PR3/FreeCut integration documentation and the existing editor route/properties seam were used. The corrected diff adds one production editor host and no PR9B/9C/later-PR surfaces. Verification Contract Results
Visual EvidenceThese deterministic real-app captures show the production editor route and the corrected reachable caption UI. Frontend QA artifacts:
Blocker Qualification
Frontend QAStatus: PASS The real-app report and artifact manifest are at /tmp/frontend-qa/pr9a-caption-ui-5319/editor-route-196f1212/. Visual evidence was uploaded above. The capture intentionally uses an empty project and contains no user media/provider details. Overall: PASS — VERIFIED; DRAFT RETAINED FOR TRUSTED REVIEWThe identified production reachability defect is fixed at the exact new head. PR9A command, validation, timing, and UI contracts pass fresh verification. The PR is intentionally still draft and unmerged pending the trusted CodePress judgment and all repository merge gates. Scope remains PR9A only; transcript persistence/conversion, cross-system E2E, agent tools, local media, and rendering/export remain excluded. |
👋 Hey @lightninglu10! Spawning a verification judge session to help with your request. View session |
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: Verification Judgment — PR #3 (local)Verdict: ✅ READY TO MERGE PR Head SHA: Summary: The current PR head is safe to merge based on exact-head revision binding, the inspected diff, the verifier's live command evidence and focused checks, and the durable real-app UI captures. The production reachability blocker is fixed: Revision binding
Diff trigger inventory
Per-item
Overall status check
What stood up
|
196f121 to
80bc2c4Compare@codepress /judge-verification can you judge this verification? Local VerificationPR:#3 — Add caption commands and FreeCut caption UI Verifier revision binding
Behavioral Contract Results
Diff Trigger Inventory
PR9A intentionally does not add transcript persistence/conversion, PR9C cross-system E2E, timestamp-capability backend gating, agent tools, local media, or rendering/export. Verification Contract Results
Durable Command TranscriptThe exact-head host event transcript is published as a standalone durable capture: host command transcript. It records the observed sequence Visual EvidenceThese deterministic captures use a media-free host snapshot and contain no user media, provider credentials, or provider details.
Frontend QA artifact manifest (exact head, local): Frontend QAStatus: PASS The browser run exercised the merged host-backed Blocker Qualification
Overall: PASS — EXACT-HEAD QA COMPLETE; DRAFT RETAINED FOR TRUSTED REVIEWThe revised PR9A is narrowly scoped to the merged host-backed caption UI and command slice. Do not merge or launch PR9C from this handoff. |
👋 Hey @lightninglu10! Spawning a verification judge session to help with your request. View session |
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: Verification Judgment — PR #3 (local)Verdict: ✅ READY TO MERGE PR Head SHA: Summary: The verification report is bound to the live PR head with captured clean-checkout evidence, and the diff’s material caption command, document-bridge, host-surface, UI, and package behaviors are covered by focused tests and real host-surface captures. The intentionally unrun broad staging baseline is explicitly outside the required PR9A gate. The current PR head is safe to merge; it remains a draft pending the guarded readiness transition. Revision binding
Diff trigger inventory
Per-item
Overall status check
What stood up
|
Starting initial review of |
There was a problem hiding this comment.
The host-backed caption ownership boundary is the right shape: the panel projects the authoritative host document and submits through the existing edit path. I found one lossless-translation issue that needs correction before this can merge.
- Critical — caption background opacity is lost on the host/native round trip (
src/features/editor/host/document.ts:254). The contract acceptsbackground_opacity, but the host-to-native conversion writes onlybackgroundColor; the native-to-frame conversion reconstructs a cue style without opacity. Consequently, projecting a valid caption cue through these bridge functions silently removes its opacity setting. Preserve that field through the native representation, or retain non-representable style fields from the matching authoritative cue, and cover it with a round-trip test.
Review head |
@codepress /judge-verification can you judge this verification? Local VerificationPR:#3 — Add caption commands and FreeCut caption UI Verifier revision binding
Review CorrectionThe requested lossless bridge fix is included in this head. Caption Behavioral Contract Results
Diff Trigger Inventory
Verification Contract Results
Visual EvidenceCaptures are deterministic, media-free, and contain no user media, provider credentials, or provider details. Frontend QA report: Frontend QAStatus: PASS The browser run exercised the merged host-backed Blocker Qualification
Overall: PASS — EXACT-HEAD REVIEW FIX VERIFIED; DRAFT RETAINED FOR TRUSTED REVIEWThe revised PR9A remains one narrowly scoped host-backed caption UI/command PR and is not merged. |
👋 Hey @lightninglu10! Spawning a verification judge session to help with your request. View session |
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: Verification Judgment — PR #3 (local)Verdict: ✅ READY TO MERGE PR Head SHA: Summary: The report is bound to the live PR head with verifier-side clean-checkout capture, and the exact-head diff’s caption command, validation, atomic edit, frame/native bridge, host-surface, UI, and package behaviors are covered by focused tests and durable host-backed browser evidence. The requested Revision binding
Diff trigger inventory
Per-item
Overall status check
What stood up
|
Starting new changes review of |
There was a problem hiding this comment.
The prior blocker is resolved.
background_opacity now travels from the authoritative caption cue into the native text item as backgroundOpacity and is reconstructed on the frame-document return path. The regression test exercises a non-default value (0.35) across that round trip.
The architecture remains sound: host snapshots are still authoritative, and track-level default styles continue to be retained from that authority rather than creating another state owner in the native timeline bridge.
Approved.
Reviewed `80bc2c4e`...`e91e13a1`. Diff collection and GitHub posting were handled by the automation.Uh oh!
There was an error while loading. Please reload this page.
Software Factory statusStatus: READY is effective only when current-head QA and judgment are PASS, the current-head review is APPROVED, required checks pass, and GitHub reports the PR mergeable. Verification history
|
* chore(provenance): add reproducible FreeCut package baseline * feat(editor): add CodePress command adapter boundary * fix(editor): harden fractional frame adapter paths * fix(editor): close adapter boundary review gaps * feat(editor): add host-backed FreeCut surface * fix(editor): guard host mode from audio skim persistence * feat(package): publish host-backed editor surface * chore(package): publish editor surface privately * fix(package): keep private publish guard below quality threshold * fix(package): gate publish on packed consumer smoke * fix(package): keep consumer smoke outside root check * Add caption commands and FreeCut caption UI (#3) * add caption command and editor ui * fix(editor): mount caption editor in production shell * feat(editor): route captions through host surface * fix(editor): preserve caption background opacity * fix(release): fetch full history for editor surface publish (#6) * fix(release): publish editor surface tarball as local file (#7) * feat(editor): add host-backed transcript consumer * fix(editor): keep host-visible sidebar tab across authoritative snapshots Applying a transcript edit installs the authoritative snapshot, and the host runtime reset the active sidebar tab to Media on every install. That unmounted the transcript panel before it could show its applied state or its inline revision-conflict error (the conflict only reached the user through the host notify channel). Preserve the active tab when host mode still shows it (media always, text/transcript per capability and port), and keep resetting tabs host mode does not expose. Cover the applied and conflict outcomes through the real MediaSidebar path. * publish the editor surface to public npm via trusted publishing the package is MIT and built from a public repo, so routing it through a private registry only bought a credential every consumer had to obtain. 0.3.0 is already on npmjs.org with the same bytes it had on github packages. - publishConfig targets registry.npmjs.org with public access, and the packaging guard now enforces that instead of the opposite - the release workflow authenticates with OIDC (id-token: write) rather than a GITHUB_TOKEN with packages: write, so there is no token to rotate, and publishes with --provenance - it also runs on merges into the codepress integration branch, not just on release tags, and no-ops when the version is already published - sync-upstream keeps main a clean mirror of walterlow/freecut and warns when the integration branch falls behind - README drops the registry and token setup consumers no longer need * point the publish and sync workflows at codepress-main the integration branch could not be named codepress: refs/heads/codepress/ is already a directory in the ref namespace (PR #10's bootstrap branch), so git rejects a ref at refs/heads/codepress outright. * drop the stale github packages line from the surface readme the rewrite left the old sentence directly above its replacement, so the readme claimed both registries in consecutive lines.
Summary
Part of #5319, this PR adds the narrow FreeCut caption slice on top of the merged host-backed editor surface: caption tracks, bounded frame-native cues, styles, display toggles, seek/edit affordances, and accessible loading/error/empty states.
The caption panel is mounted through
FreeCutEditorSurfaceand the mergedEmbeddedEditorHostRuntime. It reads authoritative host snapshots and submits canonical caption command batches throughsubmitEdit; it does not create a local project, invent a duration, persist transcript data, or maintain an in-memory 30-second document.The document bridge preserves integer-microsecond timing at the canonical command boundary and frame-native timing in the UI, including caption background opacity through the native text bridge. Caption commands retain validation, atomicity, revision/precondition/conflict, and idempotency semantics.
This PR intentionally excludes PR9B transcript persistence/conversion, PR9C cross-system E2E, timestamp-capability backend gating, agent tools, local media, and rendering/export.
Exact-head verification
stagingat87aee5c9125d3d4f7af30e4cea41a01723b4e3f7e91e13a1f9123ae08b47828c9e1b90456699a3abDeterministic visual evidence:
The PR remains draft and unmerged pending fresh exact-head trusted judgment/native review. No PR9C work has been started.