Eliminates COMMON-LISP-USER::DEFSKILL and other package-related
STYLE-WARNINGs during compilation. Files affected:
- gateway-messaging, programming-repl, programming-standards,
system-memory, system-archivist
Remaining warnings are cross-skill references (vault functions)
and minor same-file forward refs — category 2 per ROADMAP.
Root cause: config inner cond had )))) (4 closes) but needed ))) (3).
The 4th ) prematurely closed the outer cond config clause, making
(t (cond ...)) a bare function call to T instead of the cond default.
Also fixed chat-render coordinate bug (:y 1 :x y -> :y y :x 1)
Added backtrace diag (handler-bind all errors, sb-debug to stderr)
Added asdf central-registry push + :force t for stale-cache prevention
- 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
- handler-case had (log-message ...) and t as malformed clauses instead of return value
- This caused the error clause to fall outside handler-case, making c undefined
- Wrapped success path in progn: write-file + log-message + return t
- Error clause (error (c) ...) now properly inside handler-case
- Both bugs fixed by same structural change
- Separated test code from programming-lisp.org and programming-org.org into tests/ directory (was tangled to main lisp/, causing LOADER ERROR because export hadn't run yet)
- Added eval-when to load fiveam before test defpackage
- Renamed t→tag in lambda parameters in system-archivist, programming-org
- Renamed t→obj-type in let binding in system-memory
- Fixed missing lambda close paren in org-privacy-tag-p (SOME called with 1 arg)
proto-get was using getf which does eq comparison, so :EXPLANATION
from the LLM response didn't match :explanation in the policy gate.
Now iterates the plist and compares uppercased strings.
Two more naming drifts in the think() function. Added aliases:
- context-assemble-global-awareness → context-awareness-assemble
- context-get-system-logs → context-logs
Both are called from think() in core-loop-reason but had the wrong names.
Another naming drift: the think function in core-loop-reason calls
find-triggered-skill but the actual function was skill-triggered-find
in core-skills. This crashed the daemon on every user-input signal.
- Remove push of deleted XDG dir from TUI/daemon subcommands (quicklisp
local-projects symlink covers it)
- check_dependencies now only checks sbcl/git/curl/emacs (not nc/socat),
and runs apt-get update only when packages are actually missing
- PASSEPARTOUT_DATA_DIR now respects environment variable (was hardcoded to XDG)
- Daemon subcommand loads model-router and embedding-gateway lisp files
- TUI subcommand uses correct package name (passepartout.gateway-tui)
- Symlink created to ~/.local/bin/passepartout for PATH access
- Quicklisp local-projects symlink for ql:quickload without manual ASDF push
Add (setf (function-keys-enabled-p input-win) t) and for chat-win,
otherwise Croatoan returns raw escape sequences instead of :up,
:down, :ppage, :npage keywords.
Also symlink project into quicklisp/local-projects so
ql:quickload :passepartout/tui works without manual ASDF push.
New file: org/system-embedding-gateway.org / lisp/system-embedding-gateway.lisp.
- Pluggable backends via *embedding-backend* hook and EMBEDDING_PROVIDER env var
- :hashing (default) — FNV-1a hashing trick, zero dependencies
- :ollama — POST /api/embeddings to local Ollama (nomic-embed-text)
- *embedding-queue* tracks pending objects; embed-all-pending drains queue
with store-wide scan as fallback
- embed-queue-object called after ingest-ast to mark objects for embedding
- Deleted old stub system-embeddings.org (hashing-only, no provider switching)
- Exported embedding symbols from defpackage
Also:
- Added (in-package :passepartout) to system-model-router.org (was missing,
caused CL-USER::DEFSKILL error on daemon start)
- Added system-embedding-gateway to skill-loader exclusion list
- Updated ROADMAP