Skip to content

fix(ops): honor --help in the 4 recording-batch exporters - #145

Merged
nish3451 merged 2 commits into
mainfrom
fix/recording-exporters-honor-help
Aug 14, 2026
Merged

fix(ops): honor --help in the 4 recording-batch exporters#145
nish3451 merged 2 commits into
mainfrom
fix/recording-exporters-honor-help

Conversation

@nish3451

Copy link
Copy Markdown
Collaborator

Summary

Closes the unreviewed-by-opus item: recording-batch exporters
(teleprompter / rehearsal / cockpit / queue) ignored --help / -h
and silently rewrote their default artifact in prospects/ when asked
for help.

This is the same hazard PR #135 and PR #99 closed for the
growth/ops exporters and the retired broad-service writers.

Changes

All four scripts now follow the established handleHelp /
resolveOutputPath pattern (shared scripts/lib/operator-cli.mjs):

  1. Import handleHelp and resolveOutputPath.
  2. Call handleHelp(args, "Usage: ...") immediately after parsing
    process.argv, before any work, so --help / -h print usage and
    exit 0.
  3. Route every operator-supplied --output= / --html= value through
    resolveOutputPath(..., { fallback }) so paths that escape the
    service repository are refused with a clear error (exit 1, no
    write).
Script Default artifact
scripts/export-recording-cockpit.mjs prospects/recording-cockpit.html
scripts/export-recording-queue.mjs prospects/recording-queue.md
scripts/export-recording-rehearsal-check.mjs prospects/recording-rehearsal-check.{md,html}
scripts/export-recording-teleprompter.mjs prospects/recording-teleprompter.html

scripts/test-active-operator-surfaces.mjs now registers the four
recording-batch scripts in remainingHelpSurface, so the shared
--help / -h loop asserts the same exit-0 + Usage: contract and
confirms no tracked, runtime, or retired artifact is rewritten when
help is asked for.

Verification

  • node scripts/test-active-operator-surfaces.mjs — passes
    (Active operator surface checks passed.).
  • Manual --help / -h probes for each script: exit 0, prints
    usage, no prospects/ artifact created.
  • Manual --output=/tmp/escape-*.md probes: refused with
    Refusing --output=...: the path escapes the repository, exit 1,
    no file written outside the service root.

The recording-cockpit / recording-queue / recording-rehearsal-check /
recording-teleprompter scripts never tested process.argv for --help / -h
and never routed their --output= / --html= flags through the shared
operator CLI safety helpers. Calling any of them with --help ran the
full batch export and silently rewrote the corresponding artifact in
prospects/, the same hazard PR #135 and PR #99 closed for the
growth/ops exporters and the retired broad-service writers.

All four now follow the established handleHelp / resolveOutputPath
pattern (scripts/lib/operator-cli.mjs):

  1. Call handleHelp(args, 'Usage: ...') immediately after parsing
     process.argv, before any work, so --help/-h print usage and exit 0.
  2. Route every operator-supplied --output= / --html= value through
     resolveOutputPath(..., { fallback }) so paths that escape the
     service repository are refused with a clear error.

scripts/test-active-operator-surfaces.mjs now registers the four
recording-batch scripts in remainingHelpSurface, so the shared --help /
-h loop asserts the same exit-0 + 'Usage:' contract and confirms no
tracked, runtime, or retired artifact is rewritten when help is asked
for.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@greptile-apps greptile-apps 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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@nish3451, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 22 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Free

Run ID: ff8ee16a-214c-47b1-906d-0fcbd7c6974c

📥 Commits

Reviewing files that changed from the base of the PR and between fcf5ff3 and 1064cd5.

📒 Files selected for processing (6)
  • .lane/reports/fix-recording-exporters-honor-help.md
  • scripts/export-recording-cockpit.mjs
  • scripts/export-recording-queue.mjs
  • scripts/export-recording-rehearsal-check.mjs
  • scripts/export-recording-teleprompter.mjs
  • scripts/test-active-operator-surfaces.mjs

Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.

Comment @coderabbitai help to get the list of available commands.

@greptile-apps greptile-apps 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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@nish3451
nish3451 merged commit fc44b42 into main Aug 14, 2026
2 checks passed
nish3451 added a commit that referenced this pull request Aug 15, 2026
… on main (PR #145) (#180)

The four recording-batch exporters (teleprompter / rehearsal / cockpit /
queue) that previously ignored --help and rewrote their artifacts in
prospects/ were fixed in a01b261 / fc44b42 (PR #145): handleHelp() runs
before any work, --output= / --html= are routed through
resolveOutputPath(), and scripts/test-active-operator-surfaces.mjs
enforces exit 0 + usage for both --help and -h. Re-verified live against
fresh origin/main: all four probes print usage and exit 0 without writing
any artifact, and the full operator-surface suite passes. No source change
is possible or needed; this report documents the verification.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
nish3451 added a commit that referenced this pull request Aug 17, 2026
… on main (PR #145) (#188)

The four recording-batch exporters (teleprompter / rehearsal / cockpit /
queue) that previously ignored --help and rewrote their artifacts in
prospects/ were fixed in PR #145 (merge fc44b42): handleHelp() runs before
any work, --output= / --html= are routed through resolveOutputPath(), and
scripts/test-active-operator-surfaces.mjs enforces exit 0 + usage for both
--help and -h. Re-verified live against fresh origin/main (4b8e240): the
shared operator-surface suite passes, all four probes print usage and exit
0 for both --help and -h without writing any artifact, and git status shows
no source change. No source change is possible or needed; this report
documents the reverification.
nish3451 added a commit that referenced this pull request Aug 21, 2026
…main by PR #80 (duplicate guard) (#234)

The duplicate-PR guard (PR #80, merged 2026-08-19) is now live on main,
preventing the same-fix duplication pattern at the CI level. The named
duplicate pairs (#36/#44, #39/#49, #40/#52) are functionally superseded:
their underlying fixes are on main via PRs #135, #145, and #178. The
prior 2026-08-15 lane run had concluded the guard existed but was stuck
unmerged; on 2026-08-19 it landed and the item is resolved at the
root-cause level.

Verification-only run (no product or test files touched):
- PR #80 source commit 2091c7a and merge commit 0a9909b are ancestors of origin/main
- scripts/test-pr-duplicates.mjs → 'test-pr-duplicates: ok' (exit 0)
- Superseding PRs #135 (d4f3ef4), #145 (fc44b42), #178 (77f6922) all on main
- Guard workflow runs on pull_request events; not a required status, so existing work never blocks

Co-authored-by: minimax-vps <minimax-vps@nish3451.dev>
nish3451 added a commit that referenced this pull request Aug 21, 2026
… on main (PR #145) (#218)

The four recording-batch exporters (teleprompter / rehearsal / cockpit /
queue) that previously ignored --help and rewrote their artifacts in
prospects/ were fixed in PR #145 (merge fc44b42): handleHelp() runs before
any work, --output= / --html= are routed through resolveOutputPath(), and
scripts/test-active-operator-surfaces.mjs enforces exit 0 + usage for both
--help and -h. Re-verified live against fresh origin/main (6c3d83f): the
shared operator-surface suite passes, all four probes print usage and exit
0 for both --help and -h without writing any artifact, and git status shows
no source change. No source change is possible or needed; this report
documents the reverification.

Co-authored-by: minimax-vps <minimax-vps@MiniMax.local>
Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
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