Skip to content

Conversation

@deathbyknowledge
Copy link
Owner

  • Replace time-based drains with marker-based reads:
    • Only treat PS1 as completion (never PS2)
    • Regex-parse PS1 to extract exit code; centralize cleanup
    • Micro-poll while waiting; strip ANSI
  • Add long-timeout bailout for incomplete input:
    • On overall timeout: send '\n' -> wait -> send ^D -> wait
    • Make ^D safe via set -o ignoreeof
  • Startup path: run container with sleep infinity; attach via exec(TTY)
  • Remove drain()/clean_terminal_output(); add strip_markers_and_extract_exit_code()
  • Tests: stronger 200 assert msg; add base64 pipe case; formatting
  • Misc: doc comments; slight stop behavior tweak (Stopped → NotStarted)
  • Deps: add const_format and lazy_static
  • Timeouts now return 504
  • Already-stopped sandbox now returns NotStarted

- Replace time-based drains with marker-based reads:
  - Only treat PS1 as completion (never PS2)
  - Regex-parse PS1 to extract exit code; centralize cleanup
  - Micro-poll while waiting; strip ANSI
- Add long-timeout bailout for incomplete input:
  - On overall timeout: send '\n' -> wait -> send ^D -> wait
  - Make ^D safe via `set -o ignoreeof`
- Startup path: run container with `sleep infinity`; attach via exec(TTY)
- Remove `drain()`/`clean_terminal_output()`; add `strip_markers_and_extract_exit_code()`
- Tests: stronger 200 assert msg; add base64 pipe case; formatting
- Misc: doc comments; slight stop behavior tweak (`Stopped` → NotStarted)
- Deps: add `const_format` and `lazy_static`
- Timeouts now return 504
- Already-stopped sandbox now returns NotStarted
@deathbyknowledge deathbyknowledge merged commit 5dd98b9 into main Aug 7, 2025
1 check passed
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