- Changed the agents view to list only sessions the daemon is actively holding, and stopped the daemon from auto-restoring on-disk sessions on startup, so a restarted daemon no longer surfaces a wall of weeks-old sessions; sessions come back via
/resumeor--resume(#295). - Changed the kernel install progress line to name the current step and show a percentage instead of a static message (#293).
- Changed the CLI to honor a
--end-of-options separator, so arguments after it are passed through instead of parsed as flags (#296). - Changed provider stream failures to retry transient errors (content filter trips and prose 5xx responses) instead of failing the turn (#297).
- Fixed IPython and bash tool calls failing for the rest of a run after a session was rebuilt, by rebinding built-in tools to the live runtime at call time (#299).
- Fixed the kernel venv not rebuilding when the bundled runtime source changed, by tracking a content hash of the runtime (including its
pyproject.toml) in the staleness check (#291). - Fixed a large subagent fan-out spawning every IPython kernel at once and starving the machine, by bounding concurrent kernel boots (default
min(16, 2*cores), override withPRIME_AGENT_MAX_CONCURRENT_KERNEL_BOOTS) (#294). - Added a Python forkserver (on by default on Linux, opt out with
PRIME_AGENT_KERNEL_FORKSERVER=0) that forks subagent kernels from one pre-imported template process instead of a full cold boot each time, with automatic fallback to direct spawn on any failure (#298, #300). - Fixed empty tool results on OpenAI-style providers being sent as a literal "(see attached image)" placeholder, which made models hallucinate a nonexistent image (#290).