Skip to content

P1: Navigate screen recording markers in timeline - #19

Merged
FernandoAbishai merged 2 commits into
mainfrom
feature/p1-timeline-markers
Oct 23, 2026
Merged

FernandoAbishai merged 2 commits into
mainfrom
feature/p1-timeline-markers

Conversation

@FernandoAbishai

@FernandoAbishai FernandoAbishai commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Problem and behavior

Recording markers were persisted beside screen takes but invisible while cutting video. Timeline Editor now shows small, accessible marker pins on the time ruler and lets the user click a pin to seek directly to that occurrence in the edited output.

  • Projects screen-source marker events onto Cutmark's actual renderer-rounded timeline clock. A duplicated source range yields separate pins; trimmed-away ranges disappear. Markers on camera-only clips are excluded because paired camera/screen offsets are not yet verified.
  • Reuses existing safe take metadata resolution, including renamed files, and bounds event reads by the playable source movie's actual duration.
  • Holds marker data in an in-memory, per-source cache. A new draft revision recalculates output positions without rereading unchanged logs, and a changed log or source file invalidates the cache.
  • Rejects event-log symlink paths that escape the session, keeps malformed/torn JSONL lines from being displayed, and bounds reader and UI memory (16 KiB max line, 600 markers per source, 320 evenly distributed visible pins per timeline). File reads observe task cancellation.
  • Keeps recording, take files, immutable edit recipes, camera timing, and existing rendering/publishing behavior unchanged.

Validation

  • Local Xcode 27.1 focused suites: 33 tests passed, including mixed 30/60 fps, trim/reorder/duplicate, camera-only exclusion, real 2s synthetic renamed screen MOV, log cache invalidation, redirected log folder rejection, oversized/torn line recovery, and event/UI count limits.
  • Ruler screenshots inspected at 60 and 100 pixels/second in both dark and light appearance. Pins are visible and aligned with the timeline labels.
  • Complete ./test.sh --quiet on exact commit c02cb9a: 513 Python/MCP tests (11 skipped), 654 Swift tests, 10 timing-sensitive Swift tests passed.
  • Independent read-only review: no confirmed remaining must-fix; reader/resource risks addressed and regression-tested.
  • git diff --check and Swift syntax parsing: passed.

CI build timeout correction

The first PR CI attempt (run 39899631840) passed the full test job, but the app build was canceled by the existing 10-minute job timeout. Swift Release compilation itself completed successfully in 273.25s. The optional Metal-powered search helper was then running with its output redirected to a build log; GitHub terminated the entire job after 10 minutes, before packaging/signature verification. This was a CI timeout, not a reported compiler failure.

Commit 70b028c gives the macOS build job a bounded 25-minute window and records start/end timing for the Metal helper stage. Previous successful main run 39897937952 took approximately 7 minutes for the same job, with variable cold-build overhead. Bash syntax, workflow YAML structure, and git diff --check passed. The current-head GitHub test/build checks remain the final merge gate.

Review / next steps

This is the second small P1 slice after deterministic direct rendering. No automatic edits or publish action were added. Real-device clicking in a session with recorded screen markers remains an interactive UI smoke gate; renderer-clock projection and synthetic media were tested. CI must pass for this exact head before merge. No release requested.

@FernandoAbishai
FernandoAbishai marked this pull request as ready for review October 23, 2026 06:54
Copilot AI balanced review requested due to automatic review settings October 23, 2026 06:54
@FernandoAbishai
FernandoAbishai merged commit d19bef1 into main Oct 23, 2026
2 checks passed

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-23T06:55:25.652528Z 70b028c Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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.

2 participants