Skip to content

feat(shell): add script execution and stabilize interactive state - #130

Merged
tfcace merged 5 commits into
masterfrom
fix/state
Nov 14, 2026
Merged

tfcace merged 5 commits into
masterfrom
fix/state

Conversation

@tfcace

@tfcace tfcace commented Nov 14, 2026

Copy link
Copy Markdown
Owner

Make shell state ownership explicit so commands, editor input, completions, and agent turns recover consistently from cancellation, errors, and process exit.

  • Add script-file and piped-stdin execution, positional arguments, launch options, and login/interactive startup handling.
  • Preserve exit statuses, run EXIT traps at shell shutdown, and make interrupted stdin reads terminate even midway through a line.
  • Correct background-job, signal, PTY, and terminal-stream handling.
  • Preserve typeahead across commands and editor sessions, and prevent queued input from answering permission prompts.
  • Keep agent sessions through cancellation and reconnects without replaying prompts already delivered.
  • Share shell lexing across parsing, completion, and startup filtering.
  • Make completion fetching asynchronous, bounded, and responsive to changes in PATH and the working directory.
  • Improve editor state, Unicode handling, history/context selection, and streamed Markdown, including aligned tables.
  • Load compatible startup statements before unsupported syntax and report what could not be loaded.

Make shell state ownership explicit so commands, editor input,
completions, and agent turns recover consistently from cancellation,
errors, and process exit.

- Add script-file and piped-stdin execution, positional arguments,
  launch options, and login/interactive startup handling.
- Preserve exit statuses, run EXIT traps at shell shutdown, and make
  interrupted stdin reads terminate even midway through a line.
- Correct background-job, signal, PTY, and terminal-stream handling.
- Preserve typeahead across commands and editor sessions, and prevent
  queued input from answering permission prompts.
- Keep agent sessions through cancellation and reconnects without
  replaying prompts already delivered.
- Share shell lexing across parsing, completion, and startup filtering.
- Make completion fetching asynchronous, bounded, and responsive to
  changes in PATH and the working directory.
- Improve editor state, Unicode handling, history/context selection,
  and streamed Markdown, including aligned tables.
- Load compatible startup statements before unsupported syntax and
  report what could not be loaded.
- Document compatibility limits and gate releases on E2E tests for
  Linux and macOS, with portable fixtures and assertions.

Validated locally with the macOS and Ubuntu 26.04 test suites,
including E2E, go vet, golangci-lint, and targeted race checks.
Confirmed the partial-input signal regression fails before the fix
and passes afterward.
Comment thread internal/executor/executor.go Fixed
@tfcace
tfcace merged commit 5c8b9ac into master Nov 14, 2026
14 checks passed
@tfcace
tfcace deleted the fix/state branch November 14, 2026 03:53
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