#+TITLE: Passepartout Changelog #+AUTHOR: Passepartout #+FILETAGS: :changelog:release: All notable changes to Passepartout, extracted from [[file:docs/ROADMAP.org][ROADMAP.org]] DONE items with LOGBOOK timestamps. * v0.6.0 — Time Awareness :LOGBOOK: - Released [2026-05-08 Thu] :END: ** Temporal Memory Filtering (symbolic-time-memory skill) - ~memory-objects-since(timestamp)~ — hash-table walk returning objects with ~version >= timestamp~ - ~memory-objects-in-range(since until)~ — version between two timestamps (inclusive) - ~context-query-with-time~ — extended query with ~:since~ / ~:until~ parameters - 6 tests, 100% pass. Pure Lisp, sub-millisecond, 0 LLM tokens ** Sensor-Time Skill - ~format-time-for-llm~ — TIME: section for system prompt, iso/natural format - ~session-duration~ — session start tracking, included in TIME section - ~sensor-time-tick~ — deadline scanning via cron (~:reflex~ tier), 0 LLM tokens - ~TIME_AWARENESS~ / ~TIME_FORMAT~ / ~DEADLINE_WARNING_MINUTES~ env vars - 13 tests, 100% pass ** System Prompt - TIME section injected at top of ~think()~ via ~fboundp~ guard in ~core-reason.lisp~ - Falls back gracefully when sensor-time skill not loaded * v0.5.1 — Compilation Hardening :LOGBOOK: - Released [2026-05-08 Thu] :END: - Fixed ~defvar~ missing opening paren in ~security-vault.lisp~ - Updated 19 CFFI struct references in ~embedding-native.lisp~ (deprecation fix) - Fixed heartbeat variable scope in ~symbolic-events.lisp~ (~passepartout::~ prefix) - Suppressed ~100 harmless cross-skill STYLE-WARNINGs via bash script filter - ROADMAP: two false errors documented (~symbolic-memory~ lambda, ~gateway-messaging~ deleted) - Test suite: 116/116 (100%) * v0.5.0 — File Reorganization & Token Economics :LOGBOOK: - Released [2026-05-08 Thu] :END: ** File Reorganization (self-repair criterion) - Extracted ~core-context~ → ~symbolic-awareness~ (skill, hot-reloadable) - Extracted heartbeat generation → ~symbolic-events~ (skill) - Relocated 6 utility fragments to correct files - Renamed 6 core files (core-defpackage → core-package, core-communication → core-transport, core-loop → core-pipeline, core-loop-perceive → core-perceive, core-loop-reason → core-reason, core-loop-act → core-act) - Renamed 13 system-* files (system-config → symbolic-config, system-model-provider → neuro-provider, system-actuator-shell → channel-shell, etc.) - Deleted ~system-model.lisp~ (dead code) - Renamed 4 gateway-* files → channel-* - Split ~gateway-messaging.lisp~ (411 lines) → 4 channel-{telegram,signal,discord,slack} files - Deleted ~gateway-messaging.org/.lisp~, renamed 13 ~defskill~/~defpackage~ names to match - Renamed ~gateway-cli-input~ → ~channel-cli-input~ (function + exports) - Removed ~core-context~ filter from ~core-skills.lisp~ - Documented the self-repair criterion in ARCHITECTURE.org, DESIGN_DECISIONS.org, and AGENTS.md - Added hard rule in AGENTS.md: no core additions without permission ** Token Economics (skills, not core) - ~org/tokenizer.org~ → ~lisp/tokenizer.lisp~: ~count-tokens~, ~model-token-ratio~, ~token-cost~, ~provider-token-cost~ — char-ratio heuristic per model family with per-provider pricing (11 tests) - ~org/cost-tracker.org~ → ~lisp/cost-tracker.lisp~: ~cost-track-call~, ~cost-session-total~, ~cost-by-provider~, ~cost-format-budget-status~ — per-call cost logged as ~COST TRACKER: DEEPSEEK call: 0.0002 USD~ (6 tests) - ~org/token-economics.org~ → ~lisp/token-economics.lisp~: ~prompt-prefix-cached~ (sxhash-based IDENTITY+TOOLS caching), ~context-assemble-cached~ (skip heartbeat/delegation, cache on unchanged foveal/scope/memory), ~enforce-token-budget~ (L1→L2→L3 progressive trimming, CONTEXT_MAX_TOKENS env var) (9 tests) - All three loaded as skills via ~skill-initialize-all~, ~fboundp~-guarded in ~think()~ - Full test suite: 116/116 (100%) ** Bug Fixes - Fixed DeepSeek 400 error: removed malformed ~tools~ parameter from cascade requests - Fixed ~UNDEFINED-FUNCTION~ crash in ~think()~ when ~symbolic-awareness~ skill not loaded (~fboundp~ guards) - Fixed gate-trace duplication in TUI responses (~setf~ replaces ~list*~ in ~cognitive-verify~) - Tightened dexador ~connect-timeout~ from 10s → 5s for faster cascade failover * v0.4.3 — Shell Sandboxing & Safety Classification :LOGBOOK: - Released [2026-05-07 Thu] :END: - Added ~bwrap~ sandbox to shell actuator (~--unshare-net~, ~--unshare-ipc~, read-only system bindings) - Fallback to regex-only safety when ~bwrap~ unavailable - Shell safety severity classification: ~:catastrophic~ → ~:dangerous~ → ~:moderate~ → ~:harmless~ - ~:catastrophic~ always HITL regardless of approval count; ~:harmless~ allowed by default - Severity tier feeds into rule learning engine (v0.7.2) * v0.4.2 — Structured Output (LLM → JSON → plist) :LOGBOOK: - Released [2026-05-07 Thu] :END: - Function-calling / tool-use API in ~provider-openai-request~ - LLM returns guaranteed-valid JSON → deterministic ~json-alist-to-plist~ conversion at boundary - ~think()~ wired to use structured tool calls from the LLM - Raw ~read-from-string~ plist parsing kept as fallback for streaming/local models * v0.4.1 — Design Cleanup :LOGBOOK: - Released [2026-05-07 Thu] :END: - Removed ~system-prompt-augment~ mechanism from skill struct and ~defskill~ - Introduced ~*standing-mandates*~ (list of function → string generators) as replacement - Fixed false token-overhead claims in DESIGN_DECISIONS and ROADMAP (3,000-8,000 → ~40) - Updated security vector count 9→10 in README, ARCHITECTURE.org, dispatcher docstring - Rewrote README: added "What is an agent?" section, moved cost claims to DESIGN_DECISIONS - Registered 10 cognitive tools (~search-files~, ~find-files~, ~read-file~, ~write-file~, ~list-directory~, ~run-shell~, ~eval-form~, ~run-tests~, ~org-find-headline~, ~org-modify-file~) - Enforced NO-HARDCODED-CONSTANTS standard with ~.env.example~ entries * v0.4.0 — Production Hardening :LOGBOOK: - Released [2026-05-06 Wed 20:56] :END: - Activated semantic retrieval: wired ~:foveal-vector~ into context assembly; replaced SHA-256 hashing default with trigram Jaccard similarity for offline semantic retrieval - Self-build safety boundary: ~core-*~ path protection; ~SELF_BUILD_MODE~ env var; HITL Flight Plan for core modifications - TUI differentiator visualization: gate trace per action (pass/block/approval), focus map in status bar, rule counter - Expanded theme system: 25-color layered system, ~/theme ~ command (dark/light/solarized/gruvbox) - Gateway QA: Telegram + Signal integration tests; Discord + Slack gateways - Emacs bridge: ~passepartout.el~ over framed TCP protocol, ~M-x passepartout-send-region~, ~M-x passepartout-focus~ - Native embedding inference: CFFI binding to llama.cpp, nomic-embed-text-v1.5 (768-dim), ~EMBEDDING_PROVIDER=native~