v0.17.0
Highlights
Slash commands + shell escape (TUI input)
!<command>— run a shell command locally, inject its output into the conversation as your next message./<command>— control commands aegis executes itself (never sent to the harness):/help,/sessions,/agents,/spawn,/queue new,/enqueue. A human-facing front-end over the same AppBridge surface agents drive via MCP.- Input outline and text turn magenta (
!) / bright blue (/) so a shell escape or command reads as distinct from a plain message.
Live terminals — correctness fixes
- OSC 133 parser now handles ST-terminated sequences (was BEL-only) — fixes command-end detection being swallowed on starship/VTE shells, which made
aegis_term_runalways time out. Strips all OSC noise; ordered output/event stream fixes a same-read capture race. - Marker-injection fallback when shell integration is unavailable; bounded default
run()timeout; reader-crash no longer strands a pending command. - Stops clobbering the user's
PROMPT_COMMAND(array-aware prepend; zsh hook arrays); strips the echoed command from captured output; rejects multi-line commands.
Also
- Status-line tok/s meter; richer chat-input gestures (send-with-interrupt, history recall, idle/working outline);
aegis_handoff(interrupt=…); web protocol v2 (compact-by-default + central persistence).
Full details in CHANGELOG.md.