v0.33.0
Magic Context v0.33.0
Memory Mural (new)
Your project's memory pool now renders into a compact image — the mural — injected alongside the text memories. Memories that don't fit the text budget are no longer invisible: they're compressed into short cues and packed into a single PNG that costs a fraction of the tokens the same content would as text (a typical wall carries 300+ memories for ~450 image tokens).
- Deterministic: selection and layout are algorithms, not LLM calls — renders happen instantly at natural history folds.
- A daily
compress-cuesdreamer task compresses each memory into its cue once; new memories trickle in. - Vision-gated: only injected when the active model supports images (checked per model, fail-closed).
- Opt-in:
experimental.mural.enabled: true. Works on OpenCode and Pi.
Faster Pi startup (#242)
The plugin bundle no longer parses its embedded QuickJS sandbox at import time. The entry shrank 8.3MB → 1.25MB and module import dropped to ~150ms (from multiple seconds on cold starts). Historian/dreamer subagent spawns get the same speedup.
Reliability fixes
- Pi subagents no longer fail silently with certain user extensions (#238): a child that exits cleanly but produces no output now triggers an automatic isolated retry, instead of burning every fallback model.
- Pi subagents work with direct-API OpenAI keys (#237): provider translation now retries the untranslated form when
openai-codexhas no key. - TUI survives plugin auto-updates (#236): updates now rewrite the plugin spec to an exact version in both server and TUI configs, and never touch the active install directory mid-session.
- Subagent extension allowlist (#235):
pi.subagent_extensions(user config only) restricts which extensions load into subagent children. - Tool auto-reclaim is now pressure-gated (#239): the age-based sweep only runs when context pressure actually crossed the execute threshold, never on unrelated folds, and skips tool outputs under 250 tokens and the newest todo state.
- No synthetic todos for disabled todowrite: sessions whose OpenCode config removes the
todowritetool no longer receive Magic Context's synthetic todo-state pairs. - Threshold clamp visibility (#241): when
execute_threshold_tokensexceeds 80% of the active model's context window,/ctx-statusand the sidebar now say so explicitly instead of silently clamping.
Performance
A multi-night audit pass across the transform pipeline landed dozens of fixes, including: warm-pass historian trigger cost down 220× (2.4s → 10ms on large sessions), tag scans cached with automatic invalidation (300× on warm passes), message-index and marker-reconciler hot paths tightened, and FTS index rows for deleted sessions now swept (privacy + size).
Storage
This release carries schema migrations v54–v68 (applied automatically). Both OpenCode and Pi plugins must be updated together — older plugin versions refuse a newer database rather than risk corruption.
Internal
Groundwork for the Rust transform engine continues behind the scenes (not user-facing in this release).