Repository navigation
Watched takes of any length, with a lock while recording - #11
Conversation
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
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 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".
| "SetRecordDirectory", | ||
| "SetVideoSettings", | ||
| "SetStreamServiceSettings", |
There was a problem hiding this comment.
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 👍 / 👎.
Stacked on #10.
Why:
obs-record-clipblocks for at most 50 s, so Codex had to record the Siftable demo with bare start and stop calls and no monitoring.What
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.RecordStateChanged) and flags the unrequested stop.obs-record-clipnow runs on the samestartTake/markTake/stopTakecode (moved tosrc/tools/takes.ts).lock: falseturns it off):SetProfileParameter, recording directory, video settings, stream service. This applies throughobs-call-requestandobs-batchtoo.obs-take-stopjoins theOBS_MCP_CONFIRM_LIVElist.record-demoprompt: new optionalstepsargument (one per line). The steps become a take with a chapter per step.coreis now 85; core read-only is 39.Tests
npm run checkpasses: 151 unit, 11 e2e.lock: falseNo live recording has been run; that's still gated on approval.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Vjn8uBEa4mJshaQU3pFuqX