Skip to content

Watched takes of any length, with a lock while recording - #11

Merged
Tom-R-Main merged 2 commits into
mainfrom
improve/record-session
Sep 24, 2026
Merged

Tom-R-Main merged 2 commits into
mainfrom
improve/record-session

Conversation

@Tom-R-Main

Copy link
Copy Markdown
Owner

Stacked on #10.

Why: obs-record-clip blocks for at most 50 s, so Codex had to record the Siftable demo with bare start and stop calls and no monitoring.

What

  • Four new tools:
    • obs-take-start: preflight, start recording and wait for OBS to confirm, start the monitor from Watch the take while it records #10, optional first chapter. Only one take runs at a time.
    • obs-take-mark: a chapter in the file and in the take log. A rejected chapter doesn't stop the take.
    • obs-take-status (read-only): length, size and monitor findings so far.
    • obs-take-stop (destructive): stops recording, runs the ffprobe/ffmpeg checks, reports the monitor, writes <name>.take.json, compares the file's length with how long the take ran.
      • If OBS already stopped on its own, it still reports the file (the path comes from RecordStateChanged) and flags the unrequested stop.
  • obs-record-clip now runs on the same startTake/markTake/stopTake code (moved to src/tools/takes.ts).
  • Lock during a take (on by default, lock: false turns it off):
    • Refused: profile or scene-collection switches, create/remove, SetProfileParameter, recording directory, video settings, stream service. This applies through obs-call-request and obs-batch too.
    • Stopping and pausing are never refused.
    • The lock runs before the live-action confirmation, so a refused call never asks the user first.
  • Confirmation: obs-take-stop joins the OBS_MCP_CONFIRM_LIVE list.
  • record-demo prompt: new optional steps argument (one per line). The steps become a take with a chapter per step.
  • Tool counts: 163 total. core is now 85; core read-only is 39.

Tests

  • npm run check passes: 151 unit, 11 e2e.
  • New tests cover:
    • the full start → mark → status → stop flow with a take log and the subscription released
    • refusing a second take
    • preflight failure
    • lock refusals, including inside a batch, while stop still works; unlocked after stop; lock: false
    • OBS stopping on its own
    • no-take errors
    • confirmation declined keeps the take running
  • The timing-sensitive files passed 4 repeated runs. The live read-only suite still passes.

No live recording has been run; that's still gated on approval.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Vjn8uBEa4mJshaQU3pFuqX

obs-take-start preflights, starts recording, waits for OBS to confirm, and
starts the take monitor; obs-take-mark adds a chapter to the file and the
take log; obs-take-status reports the take so far; obs-take-stop stops,
checks the file, and writes the take log. obs-record-clip now runs on the
same code, so a take and a clip report the same way.

While a take records, tools that switch the profile or scene collection or
change output, video, recording directory, or stream service settings refuse
to run, including through obs-call-request and obs-batch. Stopping is never
refused, and lock: false turns the lock off. With OBS_MCP_CONFIRM_LIVE,
obs-take-stop asks first. The record-demo prompt takes a list of steps and
records them as a take with a chapter per step.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vjn8uBEa4mJshaQU3pFuqX
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 24, 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-09-24T00:55:11.485333Z ba80ea8 PR opened
ℹ️ 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.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ba80ea8da6

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tools/takes.ts
Comment on lines +265 to +267
"SetRecordDirectory",
"SetVideoSettings",
"SetStreamServiceSettings",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Block SetOutputSettings during locked takes

When a take uses the default lock: true, SetOutputSettings is absent from this request set and obs-set-output-settings is likewise absent from LOCKED_TOOLS. Consequently, the explicit tool and obs-call-request/obs-batch can still change an output's configuration while the recording is active, bypassing the advertised lock and potentially altering or disrupting the captured result.

Useful? React with 👍 / 👎.

@Tom-R-Main
Tom-R-Main changed the base branch from improve/take-monitor to main September 24, 2026 05:11
@Tom-R-Main
Tom-R-Main merged commit 34c9042 into main Sep 24, 2026
4 checks passed
@Tom-R-Main
Tom-R-Main deleted the improve/record-session branch September 24, 2026 05:13
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