fix: TUI undefined-function T crash + add backtrace diagnostics
- Added (push PASSEPARTOUT_DATA_DIR asdf:*central-registry*) before quickload so TUI loads from deployed code, not stale Quicklisp cache - Added :force t to ql:quickload :passepartout/tui to ensure recompilation - Added handler-bind for undefined-function around tui-main call: prints function name + full backtrace, then exits cleanly - Added sb-debug:print-backtrace to *debugger-hook* for all unhandled errors - TUI now starts without crash in tmux with TERM=screen-256color
This commit is contained in:
@@ -24,9 +24,7 @@
|
|||||||
#:run-setup-wizard
|
#:run-setup-wizard
|
||||||
#:skill-gateway-register
|
#:skill-gateway-register
|
||||||
#:skill-gateway-link
|
#:skill-gateway-link
|
||||||
#:messaging-list-print
|
#:gateway-manager-main
|
||||||
#:messaging-link
|
|
||||||
#:messaging-unlink
|
|
||||||
#:ingest-ast
|
#:ingest-ast
|
||||||
#:memory-object-get
|
#:memory-object-get
|
||||||
#:list-objects-by-type
|
#:list-objects-by-type
|
||||||
@@ -245,5 +243,7 @@
|
|||||||
(format t "└─────────────────────────────────────────────┘~%")
|
(format t "└─────────────────────────────────────────────┘~%")
|
||||||
(format t "~%")
|
(format t "~%")
|
||||||
(format t "Details: ~A~%" condition)
|
(format t "Details: ~A~%" condition)
|
||||||
|
(format t "Backtrace:~%")
|
||||||
|
(sb-debug:print-backtrace :count 20 :stream *standard-output*)
|
||||||
(finish-output)
|
(finish-output)
|
||||||
(uiop:quit 1)))
|
(uiop:quit 1)))
|
||||||
|
|||||||
@@ -305,6 +305,8 @@ Friendly error handler that replaces the raw SBCL debugger with a diagnostic mes
|
|||||||
(format t "└─────────────────────────────────────────────┘~%")
|
(format t "└─────────────────────────────────────────────┘~%")
|
||||||
(format t "~%")
|
(format t "~%")
|
||||||
(format t "Details: ~A~%" condition)
|
(format t "Details: ~A~%" condition)
|
||||||
|
(format t "Backtrace:~%")
|
||||||
|
(sb-debug:print-backtrace :count 20 :stream *standard-output*)
|
||||||
(finish-output)
|
(finish-output)
|
||||||
(uiop:quit 1)))
|
(uiop:quit 1)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|||||||
@@ -372,11 +372,12 @@ case "$COMMAND" in
|
|||||||
fi
|
fi
|
||||||
exec sbcl \
|
exec sbcl \
|
||||||
--eval '(load (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname)))' \
|
--eval '(load (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname)))' \
|
||||||
--eval '(ql:quickload :passepartout/tui)' \
|
--eval "(push (truename \"$PASSEPARTOUT_DATA_DIR/\") asdf:*central-registry*)" \
|
||||||
|
--eval '(ql:quickload :passepartout/tui :force t)' \
|
||||||
--eval '(in-package :passepartout)' \
|
--eval '(in-package :passepartout)' \
|
||||||
--eval "(load (format nil \"~alisp/system-model-provider.lisp\" (truename \"$PASSEPARTOUT_DATA_DIR/\")))" \
|
--eval "(load (format nil \"~alisp/system-model-provider.lisp\" (truename \"$PASSEPARTOUT_DATA_DIR/\")))" \
|
||||||
--eval "(load (format nil \"~alisp/system-model-explorer.lisp\" (truename \"$PASSEPARTOUT_DATA_DIR/\")))" \
|
--eval "(load (format nil \"~alisp/system-model-explorer.lisp\" (truename \"$PASSEPARTOUT_DATA_DIR/\")))" \
|
||||||
--eval '(passepartout.gateway-tui:tui-main)'
|
--eval '(handler-bind ((undefined-function (lambda (c) (format t "~%Undefined function: ~a~%" (cell-error-name c)) (sb-debug:print-backtrace :count 20) (finish-output) (uiop:quit 1)))) (passepartout.gateway-tui:tui-main))'
|
||||||
;;
|
;;
|
||||||
gateway)
|
gateway)
|
||||||
SUBCMD=$1; PLATFORM=$2; TOKEN=$3
|
SUBCMD=$1; PLATFORM=$2; TOKEN=$3
|
||||||
|
|||||||
Reference in New Issue
Block a user