fix dialog navigation and sidebar data construction

Dialog: use consistent cl-tty.dialog: prefix for all select accessors.
The :cl-tty.select and :cl-tty.dialog packages each define their own
SELECT class with separate accessor generic functions. Mixing prefixes
caused "no applicable method" errors. Now all 14 references use
cl-tty.dialog: (make-select, select-filter, select-next, etc.)

Sidebar: fix sidebar-lines append arguments. Each item must be a
proper list of cons cells, not a bare cons. Replaced all quoted
'("x" . :y) with (list (cons "x" :y)). Also fixed the quoted
cons call that was never evaluated.

Bash script: add --disable-debugger and --eval '(uiop:quit 0)' to
the tui sbcl invocation. Prevents the debugger from entering raw
terminal mode on error and ensures clean exit.

cl-tty: delete stale select-package.lisp and select.lisp orphan files
(not tangled by any current org file).
This commit is contained in:
2026-05-20 12:07:56 -04:00
parent 9492e00318
commit 0629f8c6d3
3 changed files with 32 additions and 31 deletions

View File

@@ -217,10 +217,10 @@ and current sidebar mode (:auto/:visible/:hidden)."
(dotimes (r panel-rows)
(cl-tty.backend:draw-text fb hpad (+ panel-top r) "│" (theme-color :input-prompt) nil))
;; Render text-input widget (word-wrap + cursor)
(let ((ln (make-layout-node)))
(setf (layout-node-x ln) (+ hpad 2)
(layout-node-y ln) (1+ panel-top)
(layout-node-width ln) prompt-w)
(let ((ln (cl-tty.layout:make-layout-node)))
(setf (cl-tty.layout:layout-node-x ln) (+ hpad 2)
(cl-tty.layout:layout-node-y ln) (1+ panel-top)
(cl-tty.layout:layout-node-width ln) prompt-w)
(setf (cl-tty.input:text-input-layout-node input) ln)
(cl-tty.box:render input fb))
;; Hint bar at h-2
@@ -266,7 +266,7 @@ and current sidebar mode (:auto/:visible/:hidden)."
(dot-color (if (st :connected) :dot-connected :dot-disconnected)))
(append
;; Gate Trace
'("GATE TRACE" . :accent)
(list (cons "GATE TRACE" :accent))
(if last-gt
(mapcan (lambda (g)
(let* ((name (getf g :gate))
@@ -283,23 +283,23 @@ and current sidebar mode (:auto/:visible/:hidden)."
(cons (format nil " ~a" reason) :dim))
(list (cons (format nil " ~a ~a" glyph name) color)))))
last-gt)
'((cons " (none)" :dim)))
(list (cons " (none)" :dim)))
;; Rules
'("" nil)
'("RULES" . :accent)
(list (cons "" nil))
(list (cons "RULES" :accent))
(list (cons (format nil " ~d active" (or (st :rule-count) 0)) :agent-fg))
(list (cons (format nil " ~d blocked" blocked)
(if (> blocked 0) :error :dim)))
(if (> blocked 0) :error :dim)))
;; Cost
'("" nil)
'("COST" . :accent)
(list (cons "" nil))
(list (cons "COST" :accent))
(list (cons (format nil " $~,2f" (or (st :session-cost) 0.0)) :status-fg))
;; Files
'("" nil)
'("FILES" . :accent)
'(" (not yet)" . :dim)
(list (cons "" nil))
(list (cons "FILES" :accent))
(list (cons " (not yet)" :dim))
;; spacer
'("" nil)
(list (cons "" nil))
;; Version footer — rendered at h-2, not in the loop
(list (cons (format nil "~a ~a" dot ver-label) dot-color)))))