Skip to content

Ship FreeCut v1 Editor Hardening and Shortcut Controls - #30

Merged
lightninglu10 merged 64 commits into
codepress-mainfrom
v1-release-integration-final
Aug 27, 2026
Merged

Ship FreeCut v1 Editor Hardening and Shortcut Controls#30
lightninglu10 merged 64 commits into
codepress-mainfrom
v1-release-integration-final

Conversation

@lightninglu10

@lightninglu10 lightninglu10 commented Aug 27, 2026

Copy link
Copy Markdown

Summary

This release integration brings FreeCut’s core editing experience to a releasable v1 baseline: reliable source playback and seeking, faster cutting and ripple workflows, atomic lock and linked-clip behavior, safer exports, and discoverable host-configurable shortcuts. It combines the independently reviewed work from PRs #25#29 and publishes the editor surface as version 0.3.9 for CodePress to consume.

Technical details

  • Hardens preview ownership and source identity so stale hover frames, overlays, same-ID relinks, and canvas caches cannot mask the active timeline picture while audio continues from another source.
  • Makes clip clicks, Razor splits, ripple delete, linked cohort drag, and grouped track locks deterministic and atomic, including nested/malformed group ancestry and asynchronous source/freeze-frame revalidation.
  • Preserves the first export/render failure, drains every started encode, closes samples exactly once, and keeps selected-stream duration and final-frame behavior fail-closed.
  • Adds a centralized runtime shortcut ownership graph, host settings port with epoch/retry fencing, conflict notices, remappable labels, platform-aware aliases, and interactive-control guards.
  • Reconciles the five reviewed source branches onto codepress-main without importing unrelated ancestry: 54 source commits retain -x provenance, with overlap decisions recorded in the integration manifest.
  • Bumps only @quantfive/freecut-editor-surface from 0.3.8 to 0.3.9. The deterministic tarball SHA-256 is 27855709f334dcac4eda5adc7771c9b0a1fd0b5f47e9a3844c391218ac9ba77c.

Test plan

  • Run the focused union for preview/playback, export, lock invariants, linked drag, shortcuts, host settings, and runtime import-boundary behavior.
  • Run repository check/build, boundaries, dependency contracts, changed-health, edge budgets, provenance, publish guards, and the complete seven-stage pre-push hook.
  • Build the 0.3.9 package twice and verify byte-identical archives; install it into a fresh consumer and run the package smoke test.
  • Run portable Node, Chromium, lifecycle, media, audio, and redaction contracts.
  • Run combined exact-head browser QA for load/seek/playback, Razor/ripple, lock and linked-drag matrices, shortcut remapping, host settings, export-through-EOF, responsive layout, and zero console/network errors.
  • Obtain an independent exact-head review of the complete integration diff and verification evidence.

Open items

  • This PR intentionally remains draft and unverified until the combined exact-head browser QA and final integration review pass.
  • The full serial Vitest run passed 5,246/5,248 assertions; two fixed 5-second checker timing budgets exceeded only under sustained machine contention. An interleaved same-machine approved-head/final-head benchmark showed both trees degraded together with no consistent integrated regression, while focused semantic parity passed on both. The durable manifest records the raw timings and unchanged thresholds.

Demo

Shared-edge rolling trim

Selected and hovered shared-edge rolling trim handle

Post-drag contiguous rolling-trim result

Keyboard focus, lock, and timeline overflow

Keyboard-focused locked clip root with visible locked state and independent timeline scrollbar

Responsive editor and host surface

Standalone editor at 390x844 Host surface at 390px
390x844 standalone editor with reachable preview, playback, compact timeline, and core toolbar 390px host surface with Media drawer open and core state closed

Desktop geometry

1440 desktop editor geometry with inline panels and meters

Interaction recording

Open and close the mobile drawer, then perform a rolling-trim interaction

Full-quality WebM

(cherry picked from commit b011124)
(cherry picked from commit 93d57a2)
(cherry picked from commit 8388082)
(cherry picked from commit dc40a83)
(cherry picked from commit 026c62d)
@lightninglu10 lightninglu10 self-assigned this Aug 27, 2026
@lightninglu10

Copy link
Copy Markdown
Author

Exact-head frontend QA: FAIL

QA at 925ebf37b01692c4b066407a9ee6a8563fd8028f passed load/seek/playback, LOCK49, DRAG45, shortcuts/host settings, moving-audio export through EOF, and the 0.3.9 package consumer. It found four release blockers that are now assigned to separate fix workflows:

  • contiguous rolling-trim affordance missing at an adjacent cut;
  • clip roots and section scrollbars not keyboard accessible;
  • core editor controls clipped at 390px;
  • unexpected product warnings/errors and request-abort classification.

Frontend QA report

Verification result

Published artifact manifest

(cherry picked from commit f22464674582b2afe987cbb3486ddc60fd7d53ea)
(cherry picked from commit c9494a515e27074482bf7ba8bbd1998f4fc8ced3)
(cherry picked from commit bec5c41eea03db70b08ec4506e2a6a72c458e37b)
(cherry picked from commit e0bd5e66011fdb7646c8be2b8939a172dd68bc30)
@lightninglu10
lightninglu10 marked this pull request as ready for review August 27, 2026 22:40
@codepress-reviewer-dev

Copy link
Copy Markdown

Starting initial review of cf81dce4 from baseline aedf4d70... 👀

View automation run

@codepress-reviewer-dev codepress-reviewer-dev Bot 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 reviewed shortcut and embedded-surface changes have a sound ownership shape: runtime registration is centralized, platform aliases are resolved before registration, and host-owned shortcut settings remain behind a versioned port with replacement fencing.

I am leaving this as a comment rather than approving. The PR itself still lists the combined exact-head browser QA as incomplete, and this release integration spans 200 changed files with a large set of omitted/truncated source patches. The focused paths inspected here do not produce an actionable defect, but the outstanding exact-head QA and remaining integration surface need completion before a merge-ready determination.

Coverage

This review is partial because some textual changes were not fully supplied or inspected. The automation will not submit an approval until those paths are reviewed.

  • scripts/runtime-hotkey-import-boundary.mjs (patch_too_large)
  • src/config/hotkeys.test.ts (patch_too_large)
  • src/config/hotkeys.ts (patch_too_large)
  • src/config/runtime-hotkey-registration-coverage.test.ts (diff_budget_exceeded)
  • src/features/editor/components/editor.tsx (diff_budget_exceeded)
  • src/features/editor/components/media-sidebar.tsx (diff_budget_exceeded)
  • src/features/editor/components/preview-area.tsx (diff_budget_exceeded)
  • src/features/editor/components/properties-sidebar/index.tsx (diff_budget_exceeded)
  • src/features/editor/components/toolbar.tsx (diff_budget_exceeded)
  • src/features/editor/components/workspace-switcher.tsx (diff_budget_exceeded)
  • ... and 157 more pending file(s)
Reviewed `aedf4d70`...`cf81dce4`. Diff collection and GitHub posting were handled by the automation.

View automation run

@codepress-reviewer-dev

Copy link
Copy Markdown

Review head cf81dce4b701c48a8448c80055c59c582d6c2773; round 1; 33 reviewed file(s), 167 pending/skipped file(s). 0 subsystem record(s) retained; 0 omitted.

View automation run

@lightninglu10
lightninglu10 merged commit 62bd1a9 into codepress-main Aug 27, 2026
3 checks passed
Sign up for free to 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