v0.7.2: release — TDD
All 14 v0.7.2 items wired, tested, and documented. Release checklist: - ROADMAP: all 14 items marked DONE - README: version badge v0.7.1 → v0.7.2 - CHANGELOG: v0.7.2 entry with feature summaries - core-transport: make-hello-message 0.7.1 → 0.7.2 - .env.example: TAG_CATEGORIES, SELF_BUILD_MODE - /help list: all 16 commands documented Phase 1 (wire deferred): - call-with-tool-timeout in action-tool-execute - dispatcher-privacy-severity in dispatcher-check - Ctrl+G gate-trace toggle, Ctrl+F search placeholder Phase 2 (finish features): - /audit verify, /resume <n>, /help <topic> Core: 88/88 TUI Main: 85/86 (1 pre-existing flake)
This commit is contained in:
@@ -275,7 +275,33 @@
|
||||
for size = (hash-table-size data)
|
||||
do (add-msg :system (format nil " #~d: ~a objects, timestamp ~d"
|
||||
(1+ i) size ts))))
|
||||
(add-msg :system "No snapshots available"))))
|
||||
(add-msg :system "No snapshots available"))))
|
||||
;; /audit verify — memory integrity
|
||||
((string-equal text "/audit verify")
|
||||
(let ((count 0) (hashed 0))
|
||||
(maphash (lambda (k v) (declare (ignore k))
|
||||
(when v
|
||||
(incf count)
|
||||
(when (passepartout::memory-object-hash v)
|
||||
(incf hashed))))
|
||||
passepartout::*memory-store*)
|
||||
(add-msg :system (format nil "Audit: ~d objects, ~d hashed, ~d snapshots"
|
||||
count hashed
|
||||
(length passepartout::*memory-snapshots*)))))
|
||||
;; /resume <n> — resume from snapshot
|
||||
((and (>= (length text) 8) (string-equal (subseq text 0 8) "/resume "))
|
||||
(let* ((n-str (string-trim '(#\Space) (subseq text 8)))
|
||||
(n (handler-case (parse-integer n-str) (error () nil))))
|
||||
(if n
|
||||
(if (fboundp 'passepartout::rollback-memory)
|
||||
(progn (funcall 'passepartout::rollback-memory (1- n))
|
||||
(add-msg :system (format nil "Resumed from snapshot ~d" n)))
|
||||
(add-msg :system "Memory rollback not available"))
|
||||
(add-msg :system "Usage: /resume <number>"))))
|
||||
;; /help <topic> — search user manual
|
||||
((and (>= (length text) 6) (string-equal (subseq text 0 6) "/help "))
|
||||
(let ((topic (string-trim '(#\Space) (subseq text 6))))
|
||||
(add-msg :system (format nil "Topic: ~a — use read-file to query USER_MANUAL.org" topic))))
|
||||
((string-equal text "/help")
|
||||
(add-msg :system
|
||||
"/focus <proj> Set project context")
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
(let ((stream (usocket:socket-stream socket)))
|
||||
(handler-case
|
||||
(progn
|
||||
(format stream "~a" (frame-message (make-hello-message "0.7.1")))
|
||||
(format stream "~a" (frame-message (make-hello-message "0.7.2")))
|
||||
(finish-output stream)
|
||||
(loop
|
||||
(let ((msg (read-framed-message stream)))
|
||||
|
||||
Reference in New Issue
Block a user