This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+9 more
Affected surfaces
Summary
AI summaryUpdates ✨ Enhancements, 🐛 Fixes, and 1.0.14 across a mixed release.
Full changelog
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
Breaking Changes
- `@query` shell execution now requires the `PERSEUS_ALLOW_DANGEROUS=1` environment variable in addition to `render.allow_query_shell`; configurations without this env var will no longer allow @query execution.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About tcconnally/perseus](https:
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]