fix(record): make capture opt-in and preserve PTY control #30

Merged
ober merged 1 commit from record-opt-in into main 2026-09-01 20:25:08 -04:00
Owner

Summary

  • make recording autostart opt-in via JSH_RECORD=1 while preserving ,record start
  • keep recorded foreground commands responsive by propagating PTY resizes, draining input bursts, and forwarding raw-mode Ctrl-C/Ctrl-\/Ctrl-Z to the foreground process group
  • add default-off, manual-start SSH, and Ctrl-C regression coverage
  • document opt-in behavior and bump version to 0.5.7

Verification

  • jerboa_verify jsh.ss: no compile issues
  • jerboa_security_scan changed lines: no findings
  • bash test/test-record-wiring.sh: PASS=26 FAIL=0
  • make test: 691 unit + 25 search-ui + 26 record wiring tests passed
  • make binary: passed on macOS
  • smoke: JSH_RECORD unset reports not recording with no autostart banner
  • manual PTY: ssh dead-host output returned unmangled; Ctrl-C returned prompt; live resize propagated 40x100 and delivered SIGWINCH to the foreground child

Follow-up

jerboa-shell must restore record to its default feature aggregates only after this PR is merged, so default builds do not temporarily re-enable automatic recording.

## Summary - make recording autostart opt-in via JSH_RECORD=1 while preserving ,record start - keep recorded foreground commands responsive by propagating PTY resizes, draining input bursts, and forwarding raw-mode Ctrl-C/Ctrl-\\/Ctrl-Z to the foreground process group - add default-off, manual-start SSH, and Ctrl-C regression coverage - document opt-in behavior and bump version to 0.5.7 ## Verification - jerboa_verify jsh.ss: no compile issues - jerboa_security_scan changed lines: no findings - bash test/test-record-wiring.sh: PASS=26 FAIL=0 - make test: 691 unit + 25 search-ui + 26 record wiring tests passed - make binary: passed on macOS - smoke: JSH_RECORD unset reports not recording with no autostart banner - manual PTY: ssh dead-host output returned unmangled; Ctrl-C returned prompt; live resize propagated 40x100 and delivered SIGWINCH to the foreground child ## Follow-up jerboa-shell must restore record to its default feature aggregates only after this PR is merged, so default builds do not temporarily re-enable automatic recording.
fix(record): make capture opt-in and preserve PTY control
All checks were successful
version-policy / required (pull_request) Successful in 3m52s
required-ci / required (pull_request) Successful in 15m2s
4d7eddcef3
ober scheduled this pull request to auto merge when all checks succeed 2026-09-01 20:23:55 -04:00
ober merged commit e30afc3a6f into main 2026-09-01 20:25:08 -04:00
ober referenced this pull request from a commit 2026-09-01 20:25:10 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ober/jerboa-shell-extras!30
No description provided.