Skip to content

v0.30.5

Choose a tag to compare

@github-actions github-actions released this 02 Jul 16:18
· 2452 commits to master since this release

v0.30.5

Patch release fixing a Windows-only bug that prevented the Pi historian from ever running, and restoring the dreamer.inject_docs setting.

Pi on Windows: historian and dreamer spawns no longer fail with ENAMETOOLONG

On Windows, every Pi historian, dreamer, and sidekick run failed at spawn with spawn ENAMETOOLONG (#209). The plugin passed the subagent's system prompt — about 60 KB for the historian — as a single command-line argument, and Windows caps the entire process command line at 32,767 characters. The child process never started, so history was never compacted, and long sessions eventually grew past the model's context limit. macOS and Linux were unaffected because their per-argument limits are far higher.

Subagent system prompts are now written to a temporary file and passed to Pi by path, on every platform, so the whole class of command-line size failures is gone rather than patched around. On Windows the user message is also always delivered through stdin, keeping the child's command line small no matter how large the prompts get. Temp files are cleaned up when the run settles, including on spawn failure.

If you are affected: after updating, the historian will start compacting your backlog on its next trigger. Sessions that already overflowed recover once compaction catches up.

Pi: subagents no longer inherit project AGENTS.md / CLAUDE.md

While fixing the spawn path we found that Pi appends project context files (AGENTS.md, CLAUDE.md) to a custom system prompt unless told not to. Magic Context's hidden subagents are focused one-shot workers with purpose-built prompts; your project's agent instructions were being silently appended to all of them. Subagent spawns now pass --no-context-files, so the historian, dreamer, and sidekick receive exactly the prompt they were designed with. You may notice slightly different historian output on Pi as a result — that is the prompt getting cleaner, not a regression.

dreamer.inject_docs: false works again

Setting dreamer.inject_docs to false no longer silently does nothing (#210). When the <project-docs> block moved from the system prompt into the cached history baseline a few releases ago, the setting was left gating the old, retired path — so ARCHITECTURE.md and STRUCTURE.md kept being injected regardless of the config. The flag now gates the real injection site on both OpenCode and Pi. It is independent of whether the dreamer itself is enabled: if you maintain those files by hand but don't want them in context, inject_docs: false now honors that. Changing the setting mid-session takes effect on the next natural context rebuild rather than forcing an immediate one.