127 lines
6.7 KiB
Org Mode
127 lines
6.7 KiB
Org Mode
#+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 <name>~ 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~
|