v0.8.0: TUI simplification — process-key-event, with-frame, inline reader

Replace queue-based key dispatch with process-key-event (inline in reader,
zero latency between keypress and render).
Add with-frame to cl-tty.backend (error-safe begin-sync/end-sync wrapper).
Use with-frame in redraw instead of manual begin-sync/end-sync.
Add initial render before main loop (UI appears before first read-event).
Remove position-cursor (replaced by inline block cursor in view-input).
Remove input-string/input-insert-char/input-delete-char wrappers.
Remove :input-buffer/:cursor-pos from state (managed by text-input widget).
passepartout script: set *debugger-hook* nil and failure-behaviour :warn
before quickload to survive compile warnings; remove cache-clear line.
This commit is contained in:
2026-05-18 20:55:22 -04:00
parent f783b45ac7
commit b61191bec2
4 changed files with 91 additions and 86 deletions

View File

@@ -395,11 +395,10 @@ case "$COMMAND" in
stty -icanon -echo -ixon 2>/dev/null || true
# Ensure COLORTERM is set for modern backend detection
export COLORTERM="${COLORTERM:-truecolor}"
# Clear stale cache
find ~/.cache/common-lisp -name "*.fasl" -path "*passepartout*" -o -name "*.fasl" -path "*cl-tty*" -delete 2>/dev/null
sbcl --noinform \
--load "$HOME/quicklisp/setup.lisp" \
--eval '(push (truename "'"$PASSEPARTOUT_DATA_DIR"'/") asdf:*central-registry*)' \
--eval '(setf *debugger-hook* nil uiop:*compile-file-failure-behaviour* :warn)' \
--eval '(ql:quickload :passepartout/tui)' \
--eval '(in-package :passepartout)' \
--eval '(passepartout.channel-tui:tui-main)'