- KEY_ENTER (343) and KEY_BACKSPACE (263) were not handled in on-key
causing Enter/Backspace to silently fail in tests using ncurses keycodes
- Escape (27) was not matched for streaming interrupt in on-key
- theme-color test expected keyword :white but function returns hex string
Bug fixes:
- Fix box() calls: set color-pair before box, pass ACS default chtype integers
- Fix markdown functions: move to passepartout.channel-tui package where
Croatoan is imported; use add-attributes/remove-attributes instead of
:bold/:underline kwargs to add-string; call theme-color in gate-trace-lines
to convert theme keys to Croatoan colors
- Fix sandbox: remove dex:get/dex:post from restricted symbols
(blocked neuro-provider from loading)
- Export *log-lock* from passepartout (was unbound in jailed skill packages)
- Fix configure: always deploy to XDG, skip cp when source==dest
- Fix bash crash handler format string (~~ escaping)
- Revert test reorder in 28 files (caused package leakage in skill loader)
Design cleanup:
- Extract tui-run-screen from tui-main for clean separation
- Remove inject-stimulus alias
- Merge *backend-registry* into *probabilistic-backends*
- Fix read-framed-message whitespace DoS (4096-iteration max)
- Add *read-eval* nil to dispatcher-approvals-process read-from-string
- TUI agent-responds: hardened to detect and FAIL on cascade/exhausted
responses (previously a separate WARN-only test that let real
cascade failures slip through)
- New TUI cascade-parsing test: /eval *provider-cascade* on screen,
checks for clean keywords (no cl-dotenv quote artifacts)
- Pre-warm step: sbcl --eval '(ql:quickload :passepartout/tui)'
before launching tmux, cuts TUI startup from ~120s to ~10s
- Removed test_agent_not_cascade_failure (absorbed into agent-responds)
- New integration test: test-provider-cascade-parsing verifies
PROVIDER_CASCADE entries are keywords without quotes, matching
registered backends — catches the exact cl-dotenv quote bug
- Fixed stop-daemon ghost symbol (removed export) and paren bug
- Contract section updated with numbered Phase 2/3 items