Perseus v1.0.15 — forensic context accounting, @speculate, @profile, @bandit
Waves 4–5: forensic context accounting, speculative prefetch, per-model memory profiles, adaptive directive selection — plus every finding from the independent adversarial reviews of those features, fixed in the same release. 30 MCP tools.
⚠️ Breaking:@queryshell execution now enforces thePERSEUS_ALLOW_DANGEROUSenv gate in addition torender.allow_query_shell(#616). This was always the documented posture; config-only setups mustexport PERSEUS_ALLOW_DANGEROUS=1to restore@queryexecution.
✨ Enhancements
perseus prompt-size/@budget --forensic(#606) — byte-exact per-directive attribution of the rendered prompt, tokenizer-accurate counts (tiktoken when available),--since <ref>historical diffing, and@budgetthresholds enforced against the measured render. Exposed read-only as theperseus_budgetMCP tool.@speculate(#607) — speculative context prefetch via next-intent prediction. Default off; reuses the reactive prefetch path so trust gates apply identically, and speculation failures can never break the primary render.- Recall-first memory posture +
@profileper-model context profiles (#553, #608) — memory posture defaults toon_demand(byte-stable pointer block instead of always-injected dumps);@profileselects posture/limits by model (read-onlyperseus_profileMCP tool); AGENTS.md renders dedup memory sections with relevance gating. @bandit(#605) — adaptive, outcome-driven directive selection: scores directives by observed outcome feedback and adapts which ones render over time.- Observability metadata block (#511) — opt-in
<!-- perseus:meta ... -->render header (version, context hash, span id) for tracers like Langfuse/LangSmith. (1.0.14, first tagged release to include it) - Quoted + named macro arguments — directive macros accept quoted multi-word args and
key="value"named args, backward compatibly. (1.0.14)
🐛 Fixes
@tier:Nno longer leaks into directive resolver args, modifier parsing, cache keys, or (for unquoted commands) the executed command itself; quote-aware@tier:Nparsing (#631).@bandithardening from independent review: abort-safe context, capped arms ledger with eviction, guarded config parsing, pre-scan/decision coherence with prefetch cost charging (#622–#625).@profilescan is fence-aware and column-0 anchored; multiple@profilelines get visible first-wins banners; memory dedup matches only exact Perseus-generated headers (#627).@budgetdeclarations inside@include'd files surface as a not-enforced warning, cache-independently;static.tokensclamped and flagged (#626).@memory mode=searchno longer silently drops vault hits or misreports why — distinct "vault unreachable" vs "no matches" reporting (#539). (1.0.14)- Wave-3 merge-review follow-ups:
compare_digeston bytes,do_POSThost guard,@servicesno-redirect, env-fingerprint scoping, prefetch cache key, identity file permissions (#609–#614).
Includes the previously untagged 1.0.14 changes — v1.0.13 was the last tagged release. Full details in CHANGELOG.md.
Install: pip install -U perseus-ctx