v0.2.1
Added
background: truesupport for SDK backend. The Pi task tool now acceptsbackground: truewhen running inside the SDK (non-tmux backend). The subagent'sAgentSessionlives in the host's process; its subscriptions and extension context stay valid as long as the parent session is alive, which is what OpenPi's sidecar guarantees.stale-ctxfiltering.extension_errorevents that come from a Promise rejection whose message mentions "this extension ctx is stale" are now swallowed before the UI sees them. The host's session-replacement path was triggering a benign race during reload.- Task-session-history helpers. New
.pi/task-session-history.jsonis the source of truth for runtime task status. The renderer no longer readsTASKS.mdfor status or navigation. - Cancelled foreground navigation is normalized. A click on a pending task row no longer aborts the running child; the row stays unclickable until the task settles.
Fixed
reload_sessionno longer leaks extension timers. The sidecar now does a full session replacement (dispose + startSession) on reload, which atomically destroys the old runner and its timers.- Background tmux panes self-destruct on exit. Pane
remain-on-exitandsetPaneSelfDestructare set so dead tasks don't accumulate. - Restore reconciles registry with JSONL. On startup,
restoreActiveBackgroundTaskswalks the registry and the per-task JSONL, marking tasks done/failed and killing stale panes.
32 commits since v0.2.0. See CHANGELOG.md for the full release notes.