fix(tui): resolve crash by removing --non-interactive and adding defensive rendering

This commit is contained in:
2026-05-01 18:16:55 -04:00
parent 48520ec517
commit 9191aecab2
7 changed files with 494 additions and 106 deletions

View File

@@ -0,0 +1,9 @@
(load (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname)))
(ql:quickload :croatoan :silent t)
(handler-case
(croatoan:with-screen (scr)
(format t "Screen height: ~s~%" (croatoan:height scr))
(format t "Screen width: ~s~%" (croatoan:width scr))
(finish-output))
(error (c) (format t "Croatoan Error: ~a~%" c)))
(uiop:quit 0)

48
scripts/test-hi.lisp Normal file
View File

@@ -0,0 +1,48 @@
(load (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname)))
(ql:quickload :usocket :silent t)
(defun frame-message (msg)
(let* ((payload (format nil "~s" msg))
(len (length payload)))
(format nil "~6,'0x~a" len payload)))
(defun test-hi ()
(handler-case
(let* ((socket (usocket:socket-connect "127.0.0.1" 9105))
(stream (usocket:socket-stream socket)))
(format t "Connected to daemon.~%")
;; Read HELLO
(let* ((len-buf (make-string 6))
(count (read-sequence len-buf stream)))
(when (= count 6)
(let* ((len (parse-integer len-buf :radix 16))
(msg-buf (make-string len)))
(read-sequence msg-buf stream)
(format t "Received HELLO: ~a~%" msg-buf))))
;; Send HI
(let* ((msg '(:TYPE :EVENT :META (:SOURCE :tui) :PAYLOAD (:SENSOR :user-input :TEXT "hi")))
(framed (frame-message msg)))
(format stream "~a" framed)
(finish-output stream)
(format t "Sent HI.~%"))
;; Wait for response
(loop
(let* ((len-buf (make-string 6))
(count (read-sequence len-buf stream)))
(if (= count 6)
(let* ((len (parse-integer len-buf :radix 16))
(msg-buf (make-string len)))
(read-sequence msg-buf stream)
(format t "Received Response: ~a~%" msg-buf)
(return))
(progn
(format t "Waiting...~%")
(sleep 1)))))
(usocket:socket-close socket))
(error (c) (format t "Error: ~a~%" c))))
(test-hi)
(uiop:quit 0)