pi validates documentation-eval prompts against the transcript-replayed system prompt, adds a TUI context footer eval, and lets extension handlers unsubscribe
Three pull requests landed in pi on September 17, 2026, two features and a fix among them. christianklotz authored the two evals PRs: #9705 gives the TUI’s context footer a documentation eval of its own, and #9706 changes what those evals validate their prompts against. rwachtler’s #9630 fixes #8967 by letting an event handler unsubscribe itself once its work is done.
#9705 adds a Docker-isolated documentation eval whose task is replacing the footer’s context usage readout with a clamped ten-cell progress bar. Dynamic rendering is validated across three usage fixtures, and footer retention is reported with autoevals Levenshtein metadata. To let that harness render the TUI in-process, InteractiveMode now accepts an injected terminal.
#9706 re-grounds how documentation evals check their prompts: variants are validated against the system prompt replayed from the session transcript instead of the post-reload session configuration. When post-execution validation fails, the eval attaches the partial normalized runs, and errored observations keep their usage, timings, and session artifacts while their pairs stay blocked.
#9630 fixes #8967, which asked for a de-registration option so extensions could deactivate themselves as needed. The motivating pattern was the run-once extension that acts on every agent_end until some trigger condition, then goes dormant — previously it had to keep holding state and receiving events for the rest of the session. pi.on() now returns an unsubscribe function. Each dispatch copies the event’s handler list first, so adding or removing handlers cannot touch the in-flight pass, and a handler registered during one waits until the next turn.
None of the three has shipped in a tag yet — v0.85.1 still dates from September 5 — and #8967 holds the original proposal behind the unsubscribe interface.
source: https://github.com/earendil-works/pi/pulls?q=is%3Apr+merged%3A2026-09-17+is%3Aclosed