Skip to content

Releases: dnouri/pi-coding-agent

v1.3.6

26 Feb 13:10

Choose a tag to compare

1.3.6

Features

  • Built-in slash commands work from the input buffer/new, /model, /compact, /session, /fork, /resume, /export, /copy, /name, /quit, and /reload now autocomplete and dispatch locally instead of being sent to the LLM as prompt text. Extension and skill commands still pass through to pi. (#148)
  • Slash commands accept arguments/model opus pre-fills or auto-selects the model picker with fuzzy matching; /export /tmp/out.html exports to a custom path; /compact keep API details passes instructions; /name my-session sets the name directly. (#148)
  • Smarter model selector — Fuzzy matching (opus → "Opus 4.6"), auto-select on unique match, and shortened display names matching the header-line. Fixes "current: unknown" when invoked from the input buffer. (#148)

Fixes

  • Backslash in \n, \t, \r etc. no longer hidden in chat — markdown-mode was hiding the backslash in escape sequences; now only valid CommonMark escape targets (§2.4) are affected. (#147)
  • phscroll detected correctly with lazy package managers — Users of straight.el, elpaca, and similar no longer get a spurious "Install phscroll?" prompt when the package is already installed. (#142)
  • Dictionary completions removed from input buffer — TAB and C-M-i no longer offer dictionary words; only slash commands, @file references, and file paths are completed; hat tip @luckysori. (#141)

v1.3.5

23 Feb 19:21

Choose a tag to compare

📺 Watch the demo video (7m 18s)

1.3.5

Fixes

  • Fork-at-point is now reliable in deep and compacted sessions — mapping now resolves via get_fork_messages, preserves visible-turn alignment, and surfaces clearer RPC errors when fork lookup fails. (#139)
  • Large generic tool details toggles no longer freeze or overflow — expanding/collapsing big **Details** payloads avoids expensive full-region fontification and prevents regexp stack-overflow failures. (#137)
  • Startup version handling is simpler and more robust — the header stays stable while pi CLI version is detected after process start and shown as a minibuffer notice (Pi: version X.Y.Z), reducing startup lock contention; thanks @jorgeavaldez for the initial report. (#140)
  • Cleaner toggle/session test behavior and CI output — dependency checks are stubbed in unit tests that don’t require a real pi binary, eliminating noisy missing-pi warnings. (#138)

v1.3.4

22 Feb 13:57

Choose a tag to compare

1.3.4

Fixes

  • RET navigation is now accurate across tool outputread, edit, and custom tool outputs now map to the correct file/line in both collapsed and expanded views, with clearer behavior on non-content lines. (#135)
  • Manual compaction is now queue-safe and more resilient — queued send/steer input is handled safely during compaction, steer-send failures preserve input, and compaction is guarded when process state is invalid. (#134)
  • Smoother write-streaming previews — optimized streaming preview updates avoid unnecessary redraw work, while keeping fontify state correct and handling edge-case delta behavior more robustly. (#136)

v1.3.3

19 Feb 23:53

Choose a tag to compare

1.3.3

Features

  • Fork from any chat turn (f) — branch a conversation directly from point in the chat buffer with confirmation flow and improved turn navigation. (#124)
  • More informative status line during work — the header now clearly shows what the agent is doing (thinking, replying, running, compact, idle), refreshes cost/context stats sooner, and surfaces extension status messages. (#121; thanks @SayreBlades)
  • Clearer session command behaviorM-x pi-coding-agent now consistently restores/focuses the current session; M-x pi-coding-agent-toggle is the explicit hide/show command (frame-local behavior). (#125, #133; thanks @conornash)
  • Custom pi launch command — new pi-coding-agent-executable supports wrappers like ("npx" "pi"). (#131)

Fixes

  • Thinking block streaming stability — multiple fixes for whitespace normalization, block separation, and markdown syntax propertization in large thinking blocks. (#123, #128, #132)
  • Local test reliability improvedmake test now prefers the local checkout on load-path, avoiding accidental use of an installed package version. (#130; thanks @jorgeavaldez)

v1.3.2

12 Feb 14:47

Choose a tag to compare

1.3.2

Improvements

  • Copy now defaults to visible textM-w/C-w/C-k strip hidden markdown markup by default; raw markdown copying remains available via customization. (#120, #116)
  • Markdown syntax highlighting for input prompts (opt-in) — GFM highlighting was introduced in this release and is available via customization. (#117, #120)

Fixes

  • Streaming tool output no longer flickers under markdown fontification — prevents temporary heading/bold rendering glitches while deltas stream in. (#119)
  • Extension status text strips ANSI escape sequences — header-line status is now clean and readable in Emacs; thanks @conornash. (#118)
  • Read/tool fence and thinking rendering stability improvements — more robust fenced block handling (including nested backticks) and improved file-line navigation from tool output. (#122)

v1.3.1

10 Feb 12:36

Choose a tag to compare

1.3.1

Features

  • Better display for extension tools — Tools outside of built-in tools (i.e. any extension tool like subagent) didn't show a lot of useful information neither in the header line, nor in body, depending on tool implementation. We fix that by now displaying all JSON args to the tool header (so you know what the tool has been called with exactly), and we also surface details payloads from the extension, below the normal tool output. (#112)

Performance

  • Speed up text output in tool calls by up to 23x — Several improvements inlcuding unnecessary updates were made, and tool output is back to being super responsive and fast from an earlier regression. (#113)

Internal

  • Modular source architecture — Split the 4,300-line monolith into six modules with a strict acyclic dependency chain; per-module test targets for faster feedback (#110)
  • Stabilized CI test suite and fixed broken nightly tests — See #114 and #115 for details

v1.3.0

08 Feb 01:23

Choose a tag to compare

1.3.0

Features

  • Live-streaming tool output — See code being written in real-time as the LLM generates it, with syntax highlighting and a stable rolling tail preview (#102)
  • Refined tool block styling — Successful tool blocks use a neutral theme-derived background instead of bright green; tool names are bold-italic, arguments are italic (#103)

Fixes

  • GUI scroll oscillation — Fixed a bug in GUI Emacs where the chat buffer would jump to a random position while scrolling, caused by an interaction between hl-line-mode and hidden markup (#100)
  • Transient menu crash with many commands — Projects with more than 9 skills, templates, or extensions no longer crash the transient menu (#109)
  • Transient menu key conflict — Stats key changed from S to i to avoid collision with the Skills submenu (#109)

v1.2.6

06 Feb 18:44

Choose a tag to compare

1.2.6

Fixes

  • Emacs 30 compatibility — Bumped minimum transient version to 0.9.0 (required for the 3-element group vector format), fixed phscroll test isolation, and added Emacs 30.1 to the CI matrix. (#99)
  • Theme-aware faces — Removed all hardcoded colors; faces now inherit from standard theme-aware faces (secondary-selection, diff-added, diff-removed) and headers are fontified by gfm-mode. Custom themes work properly out of the box. (#97)
  • Consistent blank lines between chat sections — Eliminated extra blank lines that appeared between the assistant header and response content. (#98)

v1.2.5

06 Feb 13:31

Choose a tag to compare

1.2.5

Features

  • Automatic phscroll install prompt — When horizontal table scrolling is enabled but phscroll is missing, offers to install it on first session start. (#95)

Fixes

  • Fixed navigating submenus in the command menu — Also corrected the minimum transient version. (#94)
  • Quit binding in menu moved to Q — Avoids accidentally terminating a session when dismissing the menu. (#96)

v1.2.4

06 Feb 11:03

Choose a tag to compare

1.2.4

Fixes

  • Template commands restored on pi 0.51.3+ — Pi v0.51.3 renamed SlashCommandSource from "template" to "prompt" in the get_commands RPC response, causing template-sourced slash commands to silently disappear from the command menu. Minimum pi version is now 0.51.3. (#93)