Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Section titled “[Unreleased]”- deps: restore compatibility with
@mariozechner/pi-*0.67 by moving tallow startup/CLI flows ontoAgentSessionRuntimeand preserving session transition compatibility hooks during the upgrade - docs: migrate the docs site to Astro 6 / Starlight loader-based content config so dependency bumps continue to build and validate cleanly
- git-status: move git / GitHub status refreshes off the main thread and
add PR lookup backoff so slow
gh pr viewchecks no longer freeze prompt input while you type - interactive: stabilize settings submenu transitions so changing thinking level no longer triggers chat re-append jitter or viewport jumps
- interactive: reset render grace before chat rebuild paths
(
renderInitialMessages()/rebuildChatFromMessages()), reducing redraw churn across reload, fork, navigation, and settings-driven rebuilds - rewind: prune stale snapshot refs for deleted sessions on startup so internal git checkpoints stop accumulating forever
- runtime: remove published runtime wrapper references to
src/, making global installs resilient when onlyruntime/anddist/are shipped - tasks: top-align the side-by-side background column and require a wider terminal before using split layout, removing large blank gaps above background task content
0.9.6 (2026-04-20)
Section titled “0.9.6 (2026-04-20)”- ci: stop self-updating npm in release publish (b698f20)
- context-fork: ignore late fork completions after reset (62483e4)
- deps: override vulnerable transitive packages (9486ee2)
- interactive: anchor continue startup to transcript tail (96c73c8)
- interactive: avoid forced redraws after normal turns (94b5a28)
- interactive: clear scrollback on session resets (9675927)
- interactive: stop resume transcript replay on startup (16c9fd0)
- reset: complete clear and render regression hardening (c506950)
- tui: redraw only the visible viewport tail (9bd4193)
Changed
Section titled “Changed”- interactive: reduce Sonar noise in startup patches (5616a36)
- tui: break TUI diff rendering into helpers (9fbe459)
- tui: extract app-owned image and link helpers (cc8baf7)
- tui: move editor and settings hooks out of the fork (22feb7f)
- tui: move reset and render hooks out of the fork (b6459c8)
- tui: revert dead fork surfaces to upstream (7c1176a)
- tui: shrink input and selection drift (5c6abfe)
- tui: split editor and settings patches from pi-tui shim (078cbc6)
Documentation
Section titled “Documentation”- changelog: keep unreleased at the top (d77caac)
- plan: add clear reset regression plan (72dc402)
- tui: audit and document pi-tui fork drift (5fc8515)
Maintenance
Section titled “Maintenance”- clear: prove reset cancels compact continuation (ec4bb3e)
- git: ignore local package bundles (0015ead)
- sonar: refresh baseline on main pushes (57281db)
- tui: move settings-list transition coverage to core patches (d0f1f9d)
- interactive: reset render grace before chat rebuild paths
0.9.5 (2026-04-16)
Section titled “0.9.5 (2026-04-16)”- deps: restore upstream runtime compatibility (e0ff49c)
- subagent-tool: stabilize fuzzy model resolution (227818f)
- subagent-tool: wrap synapse model resolvers (078df48)
Documentation
Section titled “Documentation”- changelog: keep unreleased at the top (27fa886)
0.9.4 (2026-04-03)
Section titled “0.9.4 (2026-04-03)”- stabilize redraws, tasks layout, and runtime packaging (4bbc8ed)
0.9.3 (2026-04-02)
Section titled “0.9.3 (2026-04-02)”- auto-rebuild: install stale dependencies before rebuilding (d07da7a)
0.9.2 (2026-04-02)
Section titled “0.9.2 (2026-04-02)”- disable reasoning metadata for MiniMax models to fix compact failures (eb7d3f1)
- patch pi-coding-agent generateTurnPrefixSummary to pass reasoning for MiniMax (f904115)
0.9.1 (2026-04-01)
Section titled “0.9.1 (2026-04-01)”- interactive: stabilize selector redraws when changing thinking (f07b513)
Documentation
Section titled “Documentation”- changelog: restore unreleased section to top (62fca62)
Removed
Section titled “Removed”- plan-mode-tool: remove the plan mode extension, slash command, tool, docs, and related installer/schema/test references
0.9.0 (2026-04-01)
Section titled “0.9.0 (2026-04-01)”⚠ BREAKING CHANGES
Section titled “⚠ BREAKING CHANGES”- remove plan mode from bundled extensions
- remove plan mode from bundled extensions (3390dc2)
- render-stabilizer: add extension to prevent flicker on session switch (23f5ab4)
- interactive: route model compaction through upstream compact command (cefb064)
- tui: suppress screen-clearing redraws during startup grace period (552ab95)
Documentation
Section titled “Documentation”- extensions: add render-stabilizer page and refresh changelog (7b7bf72)
Maintenance
Section titled “Maintenance”- context-fork: isolate trusted prompt fixtures (902c4bd)
- subagent: isolate explicit model routing auth state (9ba52ef)
- subagent: mock synapse in model-router suites (081fae1)
0.8.28 (2026-03-31)
Section titled “0.8.28 (2026-03-31)”- cd-tool: carry task context across workspace transitions (302e4cb)
- health: add tmux diagnostic checks (4c6f6b9)
- loop: natural language fallback for /loop commands (0d2078c)
- prompt-suggestions: loop-aware ghost text completions (b587943)
- sdk: default quietStartup to true for clean welcome screen (accf03c)
- tui: add SGR mouse event parsing and tracking (3d40f7f)
- tui: add TALLOW_KEY_DEBUG env var for input diagnostics (0f555ef)
- welcome-screen: add ASCII art welcome screen extension (9d1f1e2)
- cd-tool: prevent cd from racing with sibling tool calls (74816b6)
- changelog: restore [Unreleased] above 0.8.27 release (ec9c233)
- cli: force exit after print/JSON mode to prevent subagent hangs (15eb4b5)
- correct claude-sonnet-4-6 context window from 1M to 200k (322f5bb)
- deps: support pi 0.61.1 (58356ad)
- resolve extension load failures on fresh install and bump pi deps to 0.64.0 (389ee15)
- subagent-tool: drop redundant ‘subagent single’ header (1b7e9b2)
- subagent: strip terminal escape sequences from child process stdout (df50745)
- tui: detect gradual content shrinks via rolling peak tracking (655daf9)
- tui: don’t auto-enable mouse tracking on setup (6bb2ab6)
- tui: don’t enable mouse tracking without scroll viewport (6c7561c)
- tui: enable mouse tracking only inside tmux (2e68c54)
- tui: resolve consumer-defined keybindings in matches/getKeys (db4a492)
- tui: tmux keyboard compatibility (72839dc)
- welcome-screen: clear changelog children from header container (9469984)
- welcome-screen: detect fresh sessions by conversation entries, not all entries (56d392d)
- welcome-screen: skip logo on resumed/continued sessions (bb1c371)
- welcome-screen: target headerContainer children instead of TUI root (80fff2e)
Changed
Section titled “Changed”- bump @dungle-scrubs/synapse to 0.1.8 (2609bde)
Documentation
Section titled “Documentation”- add tmux mouse and scrolling guide (b972404)
- add welcome-screen extension page and update counts to 53 (a392aa0)
- improve tmux config — keep copy-mode on double/triple-click (c7a7ac1)
Maintenance
Section titled “Maintenance”- cd-tool: add task context and prompt guidelines tests (44984c1)
- deps: bump pi-* dependencies (aabea64)
- fix subagent presentation snapshot and add welcome-screen tests (40cbd8e)
- reduce github actions frequency (274b485)
- tui: add mouse event parsing tests (a54b506)
- tui: add rolling shrink detection regression tests (0a03a7f)
- welcome-screen: add E2E integration tests for header rendering (a41942d)
0.8.27 (2026-03-21)
Section titled “0.8.27 (2026-03-21)”- lazy-init: add circuit-breaker with exponential backoff (96ce8e2)
- subagent: add wall-clock timeout for foreground agents (e5c92a8)
- subagent: kill background subagents on session_shutdown (7c367b4)
- subagent: show elapsed time on running agents (8e921f8)
- changelog: move [Unreleased] above released versions (e0aaf2f)
- core: remove dead cwd_changed listener and session_shutdown type casts (b0685cb)
- interactive: clear stale loader in getUserInput as last-resort safety net (342d8d5)
- interactive: stop loader and force render at agent_end to clear stale spinner (5800f4a)
- patch out COMPACTION_DEBUG console.error in upstream dist (66888bc)
- subagent: cap stalled-worker retry phase with wall-clock timeout (c7921e0)
- subagent: deduplicate parallel/centipede header and add elapsed time (5c0ac9c)
- subagent: hide default scope:user from call meta line (ed9c04b)
- subagent: place -p flag last to fix arg parsing (86a8d26)
- subagent: remove duplicate task list from renderCall (fe0248a)
- tasks: scope task groups to session context (992b2e6)
- teams-tool: prevent stale chat lines bleeding into team dashboard (f2adbee)
- teams: suppress dashboard notification when no teams are active (aaca53b)
- test: align subagent presentation test with current renderCall behavior (3e045e5)
- wezterm-notify: keep tab active during tool execution (afebd6a)
Changed
Section titled “Changed”- pid: extract shared PID schema into src/pid-schema.ts (109a63d)
- subagent: extract buildSubprocessArgs from inline arg construction (e973524)
- subagent: reduce watchdog timeouts to limit stall duration (a8cb972)
Documentation
Section titled “Documentation”- agents: fix stale config, sdk, and TUI conflict surface descriptions (179004c)
Maintenance
Section titled “Maintenance”- add .afk/ to gitignore (42a5819)
- add unit tests for 10 previously untested extensions (1f6ba1e)
- e2e: add integration tests for repository audit findings (948116e)
- subagent: add regression tests for subprocess arg ordering (be7806c)
- sdk:
sharedSkillsDirsglobal setting — load skills from cross-app directories (e.g.~/.skills) shared between tallow and other tools. Paths must be absolute or~/-prefixed; project settings cannot override. Non-existent directories are silently skipped - otel: opt-in OpenTelemetry distributed tracing via
telemetryoption inTallowSessionOptions. Emitstallow.*spans for session lifecycle, prompt turns, tool calls, and model invocations. All span attributes are metadata-only — no prompt text, tool payloads, or secrets are captured. Zero-cost no-op when disabled - otel: W3C
traceparent/tracestatepropagation through CLI env and subagent child processes for cross-process trace continuity - otel: safe attribute builders (
sessionAttributes,promptAttributes,modelAttributes,toolAttributes,subagentAttributes,teammateAttributes) with CWD hashing and redaction guarantees - otel: event bus telemetry handle sharing so extensions can access trace context without direct coupling
- loop:
/loopcommand — run a prompt or slash command on a recurring interval (e.g./loop 5m check deploy). Uses post-completion delay to prevent overlapping runs, with live countdown in the status bar - shell-policy: “Always Allow” option for high-risk shell command
confirmations — persists
Bash(pattern)rules to~/.tallow/settings.jsonso matching commands skip confirmation in future sessions
Changed
Section titled “Changed”- tui: sync forked pi-tui to upstream v0.60.0 — adds tmux xterm
modifyOtherKeysmatching for Backspace, Escape, and Space, and resolves raw\x08backspace ambiguity with Windows Terminal heuristic - install: use
@dungle-scrubs/tallowas the canonical published package name in installer guidance and upgrade commands - tui: global select cursor changed from → to ↗
- skill-commands: register
/slash-commandsfor skills loaded fromsharedSkillsDirs(e.g.~/dev/skills). Previously only.claude/skills/paths were scanned, so shared skills appeared in the system prompt but had no corresponding slash command - hooks: don’t block input when workspace directory is renamed or deleted externally — infrastructure errors (missing cwd, spawn failures) are now distinguished from policy blocks and never freeze the session
- packaging: make the published tarball self-contained by switching
bundled extensions off repo-only
src/imports, including the localpackages/tallow-tuiworkspace in the packlist, and degrading prompt suggestions safely when ghost-text editor support is unavailable - slash-command-bridge: move model-invoked
/compactdeferral to the proven post-responseturn_endboundary, add deterministic lifecycle regression coverage, and stop staleagent_endraces from dropping compaction or resumption - background-task-tool,tasks: suppress the duplicate live background-task
widget when the shared tasks dashboard is active, keeping
Background Tasksas the single surface and stopping above-editor row jitter - tui: fix streaming ghost empty spaces caused by stale
maxLinesRenderedhigh-water mark, missingextraLines > heightsafety guard in the diff cleanup path, and viewport drift correction firing one render cycle late - rewind: windowed turn selector using
ctx.ui.custom()—/rewindwith 35+ turns no longer overflows the terminal viewport. The list is now windowed with scroll indicators and keyboard navigation wrapping - health: show runtime provenance for the active CLI, including install mode, build freshness, executable path, and resolved package path
- startup: auto-rebuild stale linked/source-checkout
dist/output on CLI launch before restarting into the fresh build - trust: migrate legacy project trust entries so previously trusted folders do not false-positive as stale after trust fingerprint upgrades
- workspace-transition: use Windows named pipes for the child-process relay and degrade gracefully when relay startup is unavailable
- subagent: use
--modelinstead of--modelsfor forked subprocesses - teams-tool: use tallow auth and model config in team spawns
Documentation
Section titled “Documentation”- docs: align README/docs agent-template counts, bundled template lists,
and
/agent:<name>invocation examples with shipped templates - docs: rename the homepage extension section to featured extensions and refresh docs metadata counts
- context-fork: document the correct
--modelsubprocess flag
Maintenance
Section titled “Maintenance”- deps: bump pi-* dependencies
- tests: exclude
_defaults.mdfrom agent-template drift counts and verify scoped package links plus key docs metadata
0.8.26 (2026-03-20)
Section titled “0.8.26 (2026-03-20)”- cli: add —yolo mode for auto-approving tool confirmations (5f2ab31)
- teams: persist archives and reuse agent templates (7b85b91)
- add explicit timeouts to tarball smoke tests (32523ab)
- custom-footer: respect unknown post-compaction usage (e4f5ee0)
- guard deriveKeychainNamespace against degenerate paths (f7afffc)
- installer now respects TALLOW_HOME from work-dirs (89f41ef)
- interactive: clear loader synchronously on agent_end to prevent stale spinner (4c20b8c)
- interactive: drain orphaned steering messages at agent_end (9a5d6dd)
- interactive: stop latching compaction status (51ec30e)
- models: patch stale gpt-5.4 context metadata (66452ab)
- move [Unreleased] section above released versions in changelog (3eab701)
- plan-mode: avoid headless auto-enable (af5dc18)
- silo Keychain API key entries per TALLOW_HOME (1274b10)
- slash-command-bridge: guard against model-initiated compaction at low usage (d60ad56)
- subagents: reduce false watchdog stalls (134507d)
- test: make gpt-5.4 override test resilient to upstream fixes (90ab19a)
Changed
Section titled “Changed”- tasks: separate shared task groups from teams (676388a)
Maintenance
Section titled “Maintenance”- agents: tighten bundled worker prompts (19797fb)
- deps: bump pi-* dependencies (4ff4404)
- interactive: add orphaned steering drain coverage (0ee0147)
- interactive: update agent_end coalescing test for synchronous discard (621ba58)
- shell-policy: add yolo mode test coverage (997de7b)
0.8.25 (2026-03-18)
Section titled “0.8.25 (2026-03-18)”- ci: resolve workspace:* references before npm publish (1bc8bdb)
- skill-commands: register slash commands for sharedSkillsDirs skills (905e3b7)
Documentation
Section titled “Documentation”- changelog entries for skill-commands fix and tui sync (999fe8e)
Maintenance
Section titled “Maintenance”- remove dead plan-rejection-feedback tests (c65670f)
- tui: sync forked pi-tui to upstream v0.60.0 (4f44580)
0.8.24 (2026-03-18)
Section titled “0.8.24 (2026-03-18)”- tui: add requestScrollbackClear() for session-level resets (ecf4559)
- hooks: don’t block input when cwd is renamed or deleted (feba24d)
- packaging: bundle forked pi-tui for npm consumers (64a996c)
- plan-mode: remove execution tracking that caused infinite loop (d3cccad)
- shell-policy: remove rm -r from high-risk confirmation prompts (40c3e01)
- workspace-transition: clear scrollback on session swap (19560f7)
Changed
Section titled “Changed”- bump pi framework to 0.58.3, update transitive deps (3d65c7d)
Documentation
Section titled “Documentation”- move [Unreleased] above latest release, add hooks fix entry (cf95d36)
Maintenance
Section titled “Maintenance”0.8.23 (2026-03-15)
Section titled “0.8.23 (2026-03-15)”- loop: add max iterations (x<N>) and stop conditions (until) (d56866e)
- plan-mode: render plan steps in bordered widget (64b9ad9)
- slash-command-bridge: show compact progress as inline widget instead of footer status (d43ec56)
- extensions: harden packaged ui runtime (a319a87)
- packaging: add publish-safe runtime bridges (3346f75)
- packaging: ship published runtime dependencies (966e218)
- plan-mode: show action menu when execution ends with incomplete steps (55b3820)
- slash-command-bridge: repair model-invoked compact lifecycle (e93923e)
- tasks: suppress duplicate background task widget (28609d4)
- teams: deliver messages to working teammates via followUp (1215bb5)
- tui: prevent differential rendering ghosting on content shrink (87b7529)
- tui: resolve streaming ghost empty spaces between content and bottom UI (5c0ec0b)
- wezterm: remove TTY exception and add tool_call guardrail hook (7fde09d)
- workspace-transition: support Windows relay pipes (bfcf25f)
Documentation
Section titled “Documentation”- add changelog entry for streaming ghost gap fix (cb69101)
Maintenance
Section titled “Maintenance”- cli: relax spawned process timeouts (50b7cab)
- deps: bump pi-* dependencies (34af276)
- packaging: cover packed tarball runtime (c508157)
- slash-command-bridge: update compact tests for widget-based progress (c884e35)
- teams: update peer-messaging tests for working-teammate delivery (717e465)
- tui: add regression tests for shrink ghosting fixes (93ffc90)
- tui: add regression tests for streaming ghost gap fixes (9c65b20)
- wezterm: add guardrail helper unit tests (cf03acb)
0.8.22 (2026-03-10)
Section titled “0.8.22 (2026-03-10)”- background-task-tool: make bg_bash always non-blocking with bottom widget (d51c5c1)
- cli: add —system-prompt and —append-system-prompt flags (85ec58e)
- sdk: add sharedSkillsDirs setting for cross-app skill sharing (dd8e451)
- bash-tool-enhanced: remove setWorkingMessage dual-rendering (0cd3d84)
- hooks: translate Claude event names in package and extension hooks (6966820)
- wezterm-pane-control: rewrite pane guidance to bg_bash-first policy (bdd502c)
Maintenance
Section titled “Maintenance”- background-task-tool: update lifecycle tests for always-async bg_bash (f4d541c)
- deps: bump pi-* dependencies (84219ac)
- wezterm-pane-control: update guidance assertions for bg_bash-first policy (1d04d16)
0.8.21 (2026-03-09)
Section titled “0.8.21 (2026-03-09)”- core: add runtime-adaptive yield-to-io utility (db796da)
- loop: add /loop command for recurring prompt execution (4b2e55a)
- otel: opt-in OpenTelemetry distributed tracing for SDK consumers (d5aab28)
- cli: enforce explicit tool allowlists and stabilize integration checks (a0e25df)
- core: honor session cwd across tool wrappers (afd6750)
- health: show runtime provenance for active cli (5addf94)
- rewind: narrow rollback claims to tracked files (7f0dcbd)
- rewind: preserve staged work, skip clean turns, and windowed turn selector (887ee6a)
- session-memory: scope recall to current project by default (02b08a7)
- shell-policy: use exact command in “Always allow” rules instead of wildcards (fb225be)
- startup: auto-rebuild stale local dist launches (5843e74)
- streaming: replace setImmediate with yield-to-io in patches (fd35af4)
- subagent: use —model instead of —models in subprocess args (f3de491)
- trust: gate project-controlled prompt surfaces (cb14242)
- trust: migrate legacy project approvals (e6ac776)
- tui: replace setImmediate with setTimeout(0) in scheduleRender (5b336ac)
- use @dungle-scrubs/tallow in install docs and revert dual-publish (4e43ee0)
- web-fetch: block private network targets (64863d7)
- web-fetch: pin direct requests and record redirect telemetry (4eec297)
- web-fetch: require explicit opt-in for scraper fallback (b723144)
- web-fetch: stop buffering entire responses (bdaa305)
Documentation
Section titled “Documentation”- fix docs and changelog drift (a52932a)
- installation: use bun global install commands (18b8a40)
- loop: add extension docs page and update counts (51→52) (b77d719)
Maintenance
Section titled “Maintenance”- add docs and changelog validation scripts (17d88f8)
- context-budget: tolerate first-call planner race (ec7a2a5)
- deps: bump pi-* dependencies (6fb8200)
- installer: align upgrade guidance expectations (4e31abe)
- loop: add unit tests for interval parsing, countdown, and args (b5c1eb2)
- run docs validation checks in review workflows (7882dd1)
- shell-policy: update tests for exact-command allow patterns (39b3be0)
0.8.20 (2026-03-08)
Section titled “0.8.20 (2026-03-08)”- streaming: coalesce message_update events in handleEvent (013eb1b)
- streaming: yield to I/O during EventStream iteration (04a010f)
Documentation
Section titled “Documentation”- remove npx/bunx install instructions (a26d670)
Maintenance
Section titled “Maintenance”- dual-publish to both tallow and @dungle-scrubs/tallow (8cc4d6d)
0.8.19 (2026-03-07)
Section titled “0.8.19 (2026-03-07)”- bash-tool: use 3-option select for high-risk confirmations (0229aa1)
- shell-policy: add always-allow option for high-risk commands (1780aa4)
- workspace-transition: add Unix-socket relay for child-process cd (97f6a68)
- cd-tool: use ctx.cwd for path resolution and remap worktree paths (7dfd7ea)
- teams-tool: use tallow auth and model config in team spawns (0f08485)
Documentation
Section titled “Documentation”- add missing changelog entries for 0.8.19 (f0ea4a1)
Maintenance
Section titled “Maintenance”- shell-policy: add always-allow tests and update callers (19d66d2)
- teams-tool: add spawn auth path resolution tests (5ae804e)
0.8.18 (2026-03-07)
Section titled “0.8.18 (2026-03-07)”Maintenance
Section titled “Maintenance”- deps: bump pi-* dependencies (742f98c)
0.8.17 (2026-03-07)
Section titled “0.8.17 (2026-03-07)”- context-files: add path-scoped rule activation (63dd5b7)
- web-fetch-tool: add dendrite fallback (5129c48)
- wezterm: intelligent pane use for TTY commands and secret privacy (50971c8)
- workspace-transition: finish Plan B cd transitions (87969d7)
- context: treat unknown usage as unavailable (b0e70d2)
- installer: stop claiming binary self-upgrades (6a818f4)
- interactive: surface overflow and compaction retry failures (11dfbd7)
- sdk: abort compaction before session resets (b89238b)
- slash-command-bridge: add live compact heartbeat progress (d2b0100)
- tui: yield render scheduling during streaming (6e074bf)
- wezterm: unescape send_text and use —no-paste for execution (994e5bc)
Changed
Section titled “Changed”- background-task-tool: collapse consecutive poll calls in-place (a9a662f)
- core: harden trust-scoped workspace plumbing (5292d63)
Documentation
Section titled “Documentation”- changelog: add scoped-rules release note (806df99)
- changelog: note compact heartbeat progress feedback (ba4248d)
- changelog: note streaming input scheduling fix (e070755)
- context-files: document scoped rule compatibility (97abd74)
- context: document unknown-usage no-data behavior (c954833)
- installation: clarify installer upgrade flows (97db4df)
- web-fetch-tool: document dendrite fallback (608e672)
Maintenance
Section titled “Maintenance”- background-task-tool: add consecutive poll detection tests (8910af9)
- skills: refresh tallow-expert reference (f1ec89a)
- workspace-transition: cover host orchestration (8a773cc)
0.8.16 (2026-03-05)
Section titled “0.8.16 (2026-03-05)”- tui: guard image width math in narrow panes (4b8f9a0)
- tui: improve terminal image layout quantization (81fbc27)
Maintenance
Section titled “Maintenance”- context-budget: tolerate planner-unavailable fallback batch sizes (b2479f4)
- deps: bump pi-* dependencies (3b19fa0)
- runner: serialize prompt execution across integration sessions (08d77a8)
- runner: serialize TALLOW_HOME mutation across concurrent sessions (7cdfb65)
- runner: wait for session_start handlers before first prompt (1fe50f1)
- tui: deduplicate terminal capability env test helper (ef0fc78)
- tui: move capability env helper to test-utils (b336116)
- utils: wait for agent_end before unsubscribing runner (350c848)
0.8.15 (2026-03-05)
Section titled “0.8.15 (2026-03-05)”- context-budget: add planner envelopes and ingestion guards (a109c49)
- plan-mode: auto-enable plan mode from natural language intent (8a91fb0)
- ask-user-question: sanitize multiline option rendering (265957a)
- ci: add actions:write permission to dep-check workflow (0b960ee), closes #116
- interactive: suppress overflow error payload before auto-compaction (85da4cf)
- shell-policy: show approval notice after confirmation (844bc22)
- tui: preserve scrollback during agent turns (055f917)
- wezterm-pane: avoid unsolicited pane spawning for dev servers (4baa9e8)
- wezterm-pane: block pane creation without explicit request (57dc7f9)
Documentation
Section titled “Documentation”- context-budget: document guardrails and adaptive caps (423a46d)
Maintenance
Section titled “Maintenance”- ask-user-question: add down-arrow render regression coverage (6c9af0e)
- deps: bump pi-* dependencies (7fea391)
- deps: bump pi-* dependencies (6db17c4)
- plan-mode: add plan intent detection test suite (a88bd55)
0.8.14 (2026-02-26)
Section titled “0.8.14 (2026-02-26)”- ci: add workflow to configure Sonar quality gate (02e2f2a)
- ci: stabilize Sonar baseline after releases (828934f)
Documentation
Section titled “Documentation”- pr-template: require explicit gh pr checks before merge (65379ae)
0.8.13 (2026-02-26)
Section titled “0.8.13 (2026-02-26)”- ci: resolve audit critical and lint formatting failure (c661bc6)
0.8.12 (2026-02-26)
Section titled “0.8.12 (2026-02-26)”- sdk: guard optional pi-tui image path helper (05d5b96)
Maintenance
Section titled “Maintenance”- core: add unit tests for auth-hardening, config, process-cleanup, startup-timing (ef6e91e)
- deps: bump pi-* dependencies (0b6099e)
0.8.11 (2026-02-25)
Section titled “0.8.11 (2026-02-25)”- bash: use process.cwd() at execution time instead of stale closure (c57e731)
0.8.10 (2026-02-25)
Section titled “0.8.10 (2026-02-25)”- routing: upgrade synapse to 0.1.6 and wire exclude patterns (89f7669)
- slash-command-bridge: show resuming indicator after compaction (58afb02)
- compact: narrow hasCompactionQueuedMessages to compaction-only queue (9fadfdf)
- copy pi built-in themes during build to prevent /settings crash (5014d18)
- docs: comprehensive light mode for docs site (1fb71b9)
- init: rewrite /init prompts around discovery-distance principle (a65807f)
- interactive-mode-patch: fix stale UI patch interference with compaction (08aee4c)
- slash-command-bridge: always fire continuation timer after compact (ec01d35)
- slash-command-bridge: eliminate race between queue flush and auto-continue (70efcfc)
- tasks: distinguish “agents” from “teammates” in footer bar (202856b)
- worktree: restrict marker file permissions to owner-only (5262dd8)
Changed
Section titled “Changed”- lsp: extract shared helpers to reduce code duplication (a12eada)
- subagent: remove dead initial assignment (d9b906f)
Documentation
Section titled “Documentation”- replace Aliases page with comprehensive Slash Commands reference (56a328a)
- session-memory: update roadmap — hippo for memories, QMD evaluation (fb7218c)
Maintenance
Section titled “Maintenance”- dep-check: scope permissions to job level (0fe08b7)
- slash-command-bridge: add compaction race condition tests (393fb2d)
- slash-command-bridge: cover post-compaction resuming behavior (ba6d423)
0.8.9 (2026-02-23)
Section titled “0.8.9 (2026-02-23)”- slash-command-bridge: auto-continue after model-triggered compaction (9776a16)
Documentation
Section titled “Documentation”- readme: remove images for now (f52a474)
Maintenance
Section titled “Maintenance”0.8.8 (2026-02-22)
Section titled “0.8.8 (2026-02-22)”- context-usage,debug: add tool-result memory telemetry (2d50a19)
- hooks: add worktree lifecycle event support (15de3a9)
- plugins: load plugin commands and agents from sdk env (846116e)
- read-tool-enhanced: add structured .ipynb reading support (2fe8998)
- sdk: summarize oversized historical tool results (79b66d7)
- subagent-tool: add worktree isolation mode (630330e)
- worktree: add session worktree lifecycle and CLI isolation (0cc751a)
- cli: avoid logging raw session-id error text (ea4b433)
- core: harden session ids and rewind repository handling (0c78e79)
- plan-mode: add blocked-step guidance during execution (14f119f)
- subagent-tool: auto-rerun stalled workers (15e0827)
- tasks: keep foreground subagents inline-only (ac2508d)
Changed
Section titled “Changed”- paths: centralize tallow home and settings resolution (188b47c)
Documentation
Section titled “Documentation”- context-usage: document tool-result retention memory reporting (1d10f18)
- plan-mode: document execution guidance for blocked tools (81b86db)
- read-tool-enhanced: document notebook support (796ea55)
- subagent-tool: describe automatic stall reruns (38a8b03)
- tasks: clarify widget shows background subagents only (56bba02)
- worktree: add extension docs and update counts (67896bb)
Maintenance
Section titled “Maintenance”- read-tool-enhanced: cover notebook parsing and read integration (2c6e95d)
0.8.7 (2026-02-22)
Section titled “0.8.7 (2026-02-22)”- commands: add —worktree workflow to implement template (b4bbf92)
- core: add extension catalog and exclusive loading (b61e8b7)
- debug: rename /diag to /diagnostics (3648538)
- extensions: add catalog metadata to bundled manifests (680ca55)
- lsp: add configurable startup timeout (355c4f3)
- startup: add headless startup profile fast path (8d676a1)
- subagent-tool: add routing mode and signals config support (365c73a)
- subagent-tool: add stalled-worker watchdog and recovery flow (adb97a9)
- tasks: surface stalled subagent status in widget (5b8955b)
- trust: box project trust warning with clearer risk copy (91af699)
- core: flush deferred bash output on interactive updates (d4bee77)
- core: update fatal banner diagnostics hint (32ef553)
- permissions: clarify deny and ask reasons (a671024)
- subagent-tool: align routing signal types with synapse (3a49aaa)
- subagent-tool: relax truncation for parallel previews (6dd6073)
- subagent: honor provider-scoped explicit model overrides (2659853)
- tasks: split subagent widget by blocking mode (7510cc2)
- teams-tool: dedupe noisy dashboard feed and refine dashboard rendering (8dc97eb)
- tui: realign diff viewport basis after shrink (441f688)
- ui: avoid duplicate Error prefix for icon-led extension notifications (97811bc)
- wezterm-notify: stabilize lifecycle signaling and spinner updates (315a5f6)
Changed
Section titled “Changed”- commands: lazy-load command expansion and fork indexes (a5e4a54)
- context-files: defer context scan to first use (e2a7f39)
- mcp-adapter: lazy-initialize server connections (79d490b)
- shared: add reusable lazy initializer helper (4fdfea0)
- subagent,teams: bound history retention and cleanup (c0cb6e3)
- tasks-subagent: share identity styling and model metadata (21c5179)
- tool-display: add semantic presentation roles for tool output (95bc7a5)
Documentation
Section titled “Documentation”- add autocomplete guide covering structural and LLM completions (1b8d6fb)
- changelog: note tui border regression fix (1d5e600)
- changelog: record lazy startup initialization refactor (01c1ac9)
- debug: clarify diagnostics vs /debug usage (0a2261f)
- enrich prompt-suggestions with model fallback chain and context details (45f0d0e)
- extensions: document catalog commands and metadata fields (38f1c13)
- extensions: document shared presentation roles (a9f3925)
- permissions: add reason clarity examples (31b516f)
- readme: add annotated screenshot asset (faae932)
- wezterm-notify: update working-session lifecycle guide (7b17c12)
Maintenance
Section titled “Maintenance”- dep-check: add failure notification on build break (2ab2063)
- deps: bump @dungle-scrubs/synapse to 0.1.4 (8740bdc)
- deps: bump pi-* dependencies to 0.54.0 (c5ad469)
- permissions: cover reason metadata and messaging (eaff3a0)
- startup: add startup benchmark scripts (21f3a76)
- startup: add startup profile regression coverage (c59f40e)
- subagent-tool: cover routing config and selection options (4950d58)
- subagent: fix auto-cheap routing determinism in CI (f3d9a8d)
- subagent: isolate auto-cheap routing tests from home config (29288cd)
- subagent: relax auto-cheap assertions across provider prefs (49946d8)
- trust: cover boxed project trust banner and payload (8dc3878)
- tui: add border and shrink-regression coverage (f946979)
0.8.6 (2026-02-20)
Section titled “0.8.6 (2026-02-20)”- wezterm-notify: add WezTerm turn-status integration (5d0e671)
- stabilize claude bridge skill path ordering (608afd0)
Documentation
Section titled “Documentation”0.8.5 (2026-02-20)
Section titled “0.8.5 (2026-02-20)”- core: add project trust store and fingerprinting primitives (27429aa)
- trust: enforce project trust gate across extension surfaces (07e0618)
- trust: resolve project trust state and startup controls (4e501b0)
- core: clear stale interactive UI state between turns (31dbd29)
- debug: redact sensitive fields in debug logger (43d6c59)
- deps: remediate advisory paths with targeted overrides (1ff39e9)
- guard bg_bash unref for nonstandard child processes (3e91c98)
- harden plugin ref parsing and cache path safety (d49c01a)
- hooks: harden subprocess timeout and output buffering (116ff7e)
- isolate lsp test mocks across suites (4c703dd)
- lint: resolve biome warnings in docs, tests, and subagent (1c9674d)
- lsp: add timeout and abort guards (04dc838)
- make pid registry lock contention fail-safe (690ffb5)
- mcp-adapter: abort timed-out SSE requests (83d68e7)
- mcp-adapter: gate project MCP servers by trust (a0f7130)
- pid-cleanup: verify process identity before signaling (5989864)
- plan-mode: enforce strict readonly tool allowlist (c58a50e)
- plugins: contain github plugin subpaths to clone root (e58b206)
- prevent cross-session pid cleanup termination (3f56f37)
- resolve hook agent runner without hardcoded pi binary (8805e9f)
- resolve pid manager paths from runtime TALLOW_HOME (9e24032)
- subagent-tool: show routed model during parallel execution (7045ef4)
- tests: make trust-gated package/plugin specs deterministic (b96ce22)
Changed
Section titled “Changed”- add runtime path provider with pid injection hooks (9de6745)
- add shared mock-scope harness for isolated tests (357aa6d)
- centralize agent runner resolution policy (86cf33a)
- extract background task process lifecycle manager (8be74d7)
- extract shared file lock utility for pid registry (e4e3d3b)
- move pid tracking to session-scoped files (93e150b)
- normalize plugin specs and harden cache keys (3b57b5c)
Documentation
Section titled “Documentation”- changelog: note dependency advisory remediation (6dbe154)
- changelog: note PID reuse safety cleanup guard (b664614)
- debug: document redaction behavior and changelog (317b2a3)
- hooks: document subprocess safety defaults (aae3825)
- lsp: note fail-fast timeout behavior (6023157)
- mcp-adapter: clarify trust-gated config loading (06b9401)
- mcp-adapter: document SSE cancellation semantics (7835871)
- plan-mode: document strict readonly behavior (6767926)
- trust: document trust-gated project execution surfaces (75b22c4)
Maintenance
Section titled “Maintenance”- dev: add pre-pr script that mirrors CI (4a07276)
- hooks: cover timeout escalation and output truncation (0bb3490)
- lsp: add timeout and abort coverage (18728a5)
- pid-cleanup: cover PID reuse safety and metadata fallback (57fe0fc)
- plan-mode: add strict gating coverage (e1bb73e)
0.8.4 (2026-02-19)
Section titled “0.8.4 (2026-02-19)”- subagent: surface routing defaults in settings (ddbfc68)
- wezterm-pane: auto-run prefilled commands by default (4d6b9bd)
- hooks: add Claude Code hook compatibility layer (d14dba8)
- slash-command-bridge: show compacting progress feedback (f368a64)
- tui: relax default image height clamp (8f2b191)
Documentation
Section titled “Documentation”- compat: clarify hook event key expectations (55dc312)
- guides: add Claude Code compatibility guide (1802f17)
- guides: correct Claude compatibility details for hooks and frontmatter (59d2003)
- readme: emphasize core differentiators and spare-time support (ca06d98)
Maintenance
Section titled “Maintenance”0.8.3 (2026-02-18)
Section titled “0.8.3 (2026-02-18)”- address remaining CodeQL alerts (c7e8259)
- reject shell metacharacters in command references (b178d23)
0.8.2 (2026-02-18)
Section titled “0.8.2 (2026-02-18)”Maintenance
Section titled “Maintenance”- codeql: exclude test directories from analysis (9c102eb)
0.8.1 (2026-02-18)
Section titled “0.8.1 (2026-02-18)”- ci: only fail audit on critical vulnerabilities (94505a3)
- ci: remove SonarCloud workflow (use Automatic Analysis), relax audit to critical-only (a2222f6)
- config: remove op:// secret cache to prevent plaintext secrets on disk (d48ec89)
Maintenance
Section titled “Maintenance”- security: add Semgrep, CodeQL, SonarCloud, and dependency audit (e0c3548)
0.8.0 (2026-02-18)
Section titled “0.8.0 (2026-02-18)”⚠ BREAKING CHANGES
Section titled “⚠ BREAKING CHANGES”- namespace package as @dungle-scrubs/tallow
- namespace package as @dungle-scrubs/tallow (310af1d)
- core: revert package name to unscoped ‘tallow’ (e6caff6)
0.7.7 (2026-02-18)
Section titled “0.7.7 (2026-02-18)”- context-files: discover nested subdirectory rule files (34058bd)
- core: add demo mode for recordings and streaming (232ba79)
- init: support nested .claude/ rename and CLAUDE.md migration (18b1ad4)
- plugins: add plugin resolver, cache, and format detection (e7937cb)
- plugins: integrate plugin resolution into session startup (e87e191)
- remove image-gen extension (85e01de)
- ci: add NODE_AUTH_TOKEN for npm OIDC publish (814ec12)
- test: increase timeout for shell-spawning tests (b28263c)
- tools: add missing isError flag to error responses in lsp, read, and ask-user-question (49bb21d)
Changed
Section titled “Changed”- subagent: extract model resolver, router, and matrix to @dungle-scrubs/synapse (61932f2)
- web-fetch: remove Firecrawl fallback and JS detection (8fa22c7)
Documentation
Section titled “Documentation”Maintenance
Section titled “Maintenance”- ci: remove redundant publish.yml — release.yml handles OIDC publish (07f7110)
0.7.6 (2026-02-17)
Section titled “0.7.6 (2026-02-17)”- slash-command-bridge: show command name in tool call header (f447aad)
- ci: restore registry-url for npm OIDC publish (bda9b03)
- slash-command-bridge: defer compact to agent_end to prevent spinner hang (27b3edd)
Changed
Section titled “Changed”- tool-display: use raw snake_case for all tool display names (de31c08)
Documentation
Section titled “Documentation”- update roadmap — mark teams dashboard shipped, rules mostly shipped (7f15de4)
Maintenance
Section titled “Maintenance”- deps: bump biome 2.3.15→2.4.2, vscode-jsonrpc 8.2.0→8.2.1 (37f7652)
0.7.5 (2026-02-17)
Section titled “0.7.5 (2026-02-17)”- ci: move publish job into release workflow to fix GITHUB_TOKEN event propagation (80e0f78)
- rewind: use temp GIT_INDEX_FILE to avoid nuking staging area (59e8a23)
0.7.4 (2026-02-17)
Section titled “0.7.4 (2026-02-17)”- image-gen: unified image generation tool with auto-routing across OpenAI, Google (Gemini/Imagen), xAI, Black Forest Labs (Flux), and Fal via Vercel AI SDK (7a7a35d)
- image-gen: quality-based model selection from Arena leaderboard ELO ratings with eco/balanced/premium cost preferences
- image-gen: dual invocation paths — dedicated image APIs (
generateImage) and hybrid LLMs (generateTextwith image output) handled transparently - permissions: Claude Code-compatible
Tool(specifier)permission rules withallow/deny/asktiers,{cwd}/{home}/{project}variable expansion, gitignore-style path conventions, shell operator awareness, and symlink/traversal defense (51ac5dd) - permissions:
/permissionscommand for viewing, testing, and reloading rules (f1c79ea) - permissions:
--allowedToolsand--disallowedToolsCLI flags at CLI precedence tier (3f63765) - permissions: reads
.claude/settings.jsonpermission rules for drop-in Claude Code compatibility - sdk: load AGENTS.md from installed npm packages (81ceb16)
- hooks: hook shell commands now respect permission rules (424714b)
- tui: use full terminal width for inline images (a19ca62)
- tui: remove hardcoded text truncation in renderCall (594a0d8)
Changed
Section titled “Changed”- tool-display: prefix tool verbs with display label (6acc227)
0.7.3 (2026-02-17)
Section titled “0.7.3 (2026-02-17)”- ci: add registry-url for npm OIDC publish (207d9c6)
- ci: add workflow_dispatch to publish for manual retrigger (2b6f8bd)
0.7.2 (2026-02-17)
Section titled “0.7.2 (2026-02-17)”- context-fork: auto-route model when no explicit model specified (6835e22)
- subagent-tool: add Arena leaderboard refresh script (e7d1cdc)
- subagent-tool: add modelScope for scoped auto-routing (8d884af)
- teams-tool: use full model routing for teammate spawning (cb81ecd)
- address bugs found by bones agent hunt (b33a1c6)
- bash: auto-backgrounded tasks invisible to task_output (e086369)
- subagent-tool: show error details in failed parallel results (1170038)
- sync TALLOW_VERSION with package.json (0.7.1) (5bb1afc)
Changed
Section titled “Changed”- subagent-tool: improve resolver tiebreaking with capability scoring (5951541)
Maintenance
Section titled “Maintenance”- add dep-check and matrix-refresh workflows (cdf4726)
- main: release tallow 0.7.1 (a1104bd)
- stop tracking AGENTS.md (user-local file) (7591e7f)
- subagent-tool: add gpt-5.3-codex, spark, and 5.1-codex-max to matrix (11d30a9)
- treat feat as patch bump while pre-1.0 (646cd71)
0.7.1 (2026-02-17)
Section titled “0.7.1 (2026-02-17)”- context-fork: auto-route model when no explicit model specified (6835e22)
- subagent-tool: add Arena leaderboard refresh script (e7d1cdc)
- subagent-tool: add modelScope for scoped auto-routing (8d884af)
- teams-tool: use full model routing for teammate spawning (cb81ecd)
- test: add E2E profile runner and extension profile definitions (3db96f3)
- address bugs found by bones agent hunt (b33a1c6)
- bash: auto-backgrounded tasks invisible to task_output (e086369)
- resolve 10 bugs found by bones game d3a57b9e0f07 (4de12fb)
- subagent-tool: show error details in failed parallel results (1170038)
- sync TALLOW_VERSION with package.json (0.7.1) (5bb1afc)
- test: clean up tmpHome on error, track session for disposal (bd5ee96)
Changed
Section titled “Changed”- config: parallelize op:// secret resolution with local cache (aeff46d)
- subagent-tool: improve resolver tiebreaking with capability scoring (5951541)
- subagent-tool: split 2967-line index.ts into 6 focused modules (80316f2)
Maintenance
Section titled “Maintenance”- add dep-check and matrix-refresh workflows (cdf4726)
- e2e: add extension profile boot, conflict, interop, install, and override tests (c55f369)
- release 0.7.1 (f819e0b)
- stop tracking AGENTS.md (user-local file) (7591e7f)
- subagent-tool: add gpt-5.3-codex, spark, and 5.1-codex-max to matrix (11d30a9)
- treat feat as patch bump while pre-1.0 (646cd71)
[0.7.1] - 2026-02-16
Section titled “[0.7.1] - 2026-02-16”- test: E2E profile runner and extension profile definitions — creates headless sessions with real bundled extensions loaded by path, matching the production loading path
- test: 39 E2E tests across 7 files covering profile boot, tool/command conflict detection, EventBus interop wiring, headless install, and user extension override mechanism
Changed
Section titled “Changed”- subagent-tool: split 2967-line index.ts into 6 focused modules (agents, formatting, widget, process, schema) — largest file reduced to 1297 lines with no behavioral changes
- core: startup with
op://secrets in~/.tallow/.envreduced from ~9s to ~2s by resolving references in parallel with a local cache (~/.tallow/.env.cache, 1h TTL) instead of sequential synchronous calls - extension-harness: EventBus emit now catches per-listener exceptions instead of aborting the entire emit chain
- extension-harness: sendMessage merges options instead of overwriting
- extension-harness: getTheme() throws consistently with theme getter
- extension-harness: replace
as nevercast with typedas ExtensionAPI['events'] - tui: fix isKeyRelease/isKeyRepeat docs to match behavior
- tui: resolve Ctrl+C binding conflict (copy → Ctrl+Shift+C)
- pid-registry: add file locking around read-modify-write to prevent races
- mcp-adapter-tool: parseSseResponse now matches response ID to request ID
- init: wrap renameSync in try-catch for TOCTOU resilience
- test: clean up tmpHome on error, track session for disposal to prevent resource leaks
Documentation
Section titled “Documentation”- core: document
.env.cacheand two-phase secret loading architecture in AGENTS.md and installation guide
0.7.0 (2026-02-16)
Section titled “0.7.0 (2026-02-16)”- bash-tool: detect ripgrep and inject rg preference into system prompt (e42fa01)
- bash: surface output tail in working message during execution (5108631)
- cli: add —debug flag for debug mode activation (2d1fc32)
- core: add algorithm-over-LLM guideline to system prompt (984f2aa)
- core: add atomic file write utility (fca06fd)
- core: detect output truncation and instruct proactive strategy communication (1da56ab)
- debug: interactive troubleshooting with debug_inspect tool (4f207bb)
- hooks: add
once: trueoption for run-once hooks (f961701) - hooks: wire all declared-but-unwired lifecycle events (e32e821)
- mcp-adapter-tool: add SSE and Streamable HTTP transport support (d3e0055)
- prompt-suggestions: feed conversation history into autocomplete (677fcd7)
- stats: add per-session and aggregate usage statistics extension (d2e2742)
- subagent-tool: detect and surface tool permission denials (5c42c43)
- tallow-expert: auto-regenerate skill reference on pre-commit (5d8a37c)
- ci: remove dead MODEL_ALIASES import, fix model-dependent tests (235270e)
- ci: remove leaking mock.module for model-resolver and task-classifier (f0882de)
- ci: remove leaking node:fs mock, fix test assertions (1531d79)
- core: use atomic writes for config and state files (86c68ee)
- extensions: use atomic writes for config and state files (5cf61a9)
- tui: reduce columns proportionally when height-clamping images (0fbb547)
Changed
Section titled “Changed”- random-spinner: remove scramble-decrypt reveal animation (ce74277)
Documentation
Section titled “Documentation”- add changelog entries for atomic writes (41ddf56)
- bump extension count to 48 (08ab0d0)
- hooks: document once-hook behavior (33124fe)
- hooks: update event tables, examples, and changelog (2c50e4a)
- mcp-adapter-tool: update changelog, version, and roadmap (4613a43)
Maintenance
Section titled “Maintenance”- bash: add unit tests for progress message helpers (c2ca29f)
- bump version to 0.7.0 (9ce4afc)
- debug: add tests for queryLog and analysis utilities (0792afd)
- hooks: add once-hook state manager tests (c4f5e1d)
- lint autofix formatting (809e7c6)
- mcp-adapter-tool: add transport, config, and reconnect tests (af60bc4)
- prompt-suggestions: add conversation context tests (27edefd)
- subagent-tool: add denial detection unit tests (2c8d686)
[0.7.0] - 2026-02-16
Section titled “[0.7.0] - 2026-02-16”- hooks:
once: trueoption for hook handlers — runs exactly once then auto-disables, with state persisted to~/.tallow/hooks-state.json - stats:
/statscommand for per-session and aggregate usage statistics with token counts, costs, tool usage bar charts, model breakdowns, and usage streaks — persisted to~/.tallow/stats.jsonl - core:
atomicWriteFileSyncutility with write-tmp-then-rename pattern, optional fsync, file mode, and.bakbackup support - core:
restoreFromBackuputility for startup recovery from.bakfiles with optional content validation - core: automatic backup recovery for
settings.jsonandauth.jsonwhen primary file is corrupt
- core: config/state file writes (
settings.json,auth.json,keybindings.json, session headers) are now atomic — interrupted writes can no longer corrupt files - extensions: theme-selector, skill-commands, pid-registry, and output-styles-tool writes are now atomic
- tasks: refactored inline write-tmp-then-rename to use shared
atomicWriteFileSyncutility
- hooks: wire all declared-but-unwired pi events —
before_agent_start,agent_start,turn_end,session_shutdown,session_before_compact,session_compact,session_before_switch,session_switch,session_before_fork,session_fork,session_before_tree,session_tree,context,model_select, anduser_bash - hooks:
subagent_startandsubagent_stopevents via EventBus, withagent_typematcher field for filtering by agent name - hooks:
notificationevent via EventBus for observing notifications - hooks: blocking support for
session_before_compact,session_before_switch,session_before_fork, andsession_before_treeevents — hooks can cancel these operations - hooks: matcher fields for
model_select(source),user_bash(command), andnotification(type) - mcp-adapter-tool: SSE and Streamable HTTP transport support — connect to
remote MCP servers via
{ "type": "sse", "url": "..." }or{ "type": "streamable-http", "url": "..." }in settings.json - mcp-adapter-tool: auto-reconnect with exponential backoff (1s/2s/4s, max 3 attempts) for network transports on connection loss
- mcp-adapter-tool:
/mcpcommand now shows transport type in server status - mcp-adapter-tool: config validation for SSE/HTTP (url required) and STDIO (command required) with clear error messages
- debug:
/debug <query>interactive troubleshooting command withdebug_inspecttool for model-assisted log analysis - debug: log query infrastructure (
queryLog()) with category, event type, time range, and free-text search filters - debug: analysis utilities — tool timing histograms, error grouping, and turn efficiency metrics
0.6.1 (2026-02-15)
Section titled “0.6.1 (2026-02-15)”- docs: wrap extension badges, widen theme swatches on hover (f59e833)
0.6.0 (2026-02-15)
Section titled “0.6.0 (2026-02-15)”- add rewind extension and PDF support for read tool (7479265)
- add wrap option to shared renderLines helper (b32efc2)
- ask-user: hide Working… loader during question prompt (eb23d41)
- auth: add secure auth storage with credential references (df233be)
- auth: remove —api-key CLI flag, use env vars instead (a5edecf)
- background-task-tool,subagent-tool: inline completion notifications (e73efe3)
- bash-tool-enhanced,cd-tool: BASH_MAINTAIN_PROJECT_WORKING_DIR setting (58ea016)
- bash-tool-enhanced: auto-background long-running commands (e51fa92)
- cli: add —provider, —api-key flags and headless install setup (941d281)
- cli: add piped stdin support (807c08a)
- cli: guard against nested interactive sessions (5e49980)
- context-files: add /add-dir and /clear-dirs commands (aa4ab7d)
- context-fork: add extension for context: fork frontmatter (14d0824)
- core: —tools flag to restrict available tools per session (6b7c598)
- custom-footer: display session name as right-aligned 3rd row (31b346d)
- debug: add structured diagnostic logging extension (f9de8dd)
- docs: add favicon from logo (1112730)
- docs: add interactive theme preview on landing page (bbd54d2)
- edit-tool-enhanced: add clickable diff link to edit footer (3c10c1b)
- extensions: agent sandboxing, .claude/ bridging, MCP scoping (d4543dd)
- file-reference: expand @path patterns in input (890470b)
- footer: move agent bar from stats line to footer line 3 (1351384)
- health: wrap diagnostic output in rounded border box (75a1096)
- icons: add icon registry and settings schema (d1ef9b8)
- icons: integrate cli-spinners with random and named presets (5a4f5a9)
- initial commit (7f6ccac)
- init: offer .claude/ → .tallow/ rename during init (3cc72f4)
- interop: add typed cross-extension event contracts (0bea701)
- mcp-adapter-tool: capture and inject server instructions (89819a6)
- mcp-adapter-tool: resource_link content type support (ddde3b4)
- mcp-adapter-tool: structured content support in MCP responses (358c94b)
- progress-indicator: add terminal progress bar extension (173429c)
- prompt-suggestions: idle ghost text and Groq inline autocomplete (910afeb)
- random-spinner: add extension manifest and centipede spinner (26edf73)
- read-tool-enhanced: byte-based image format detection (f212b22)
- read-tool-enhanced: image dimension metadata in read results (b9d8ec7)
- session-namer: auto-generate session names via Haiku after first response (750543e)
- sessions: add per-cwd session migration module (8358055)
- shared: add extractPreview utility for inline result notifications (8eecab3)
- shell-interpolation: expand !
cmdpatterns in input (f9d236e) - shell-interpolation: require explicit opt-in by default (95b6df4)
- shell-policy: add centralized policy and audit trail (2407014)
- shell: enforce high-risk confirmation for bash tools (a06222d)
- slash-command-bridge: add slash command bridge extension (4fc11f9)
- subagent-tool: auto-cheap routing keywords and explore agent (d815a44)
- subagent-tool: fuzzy model name resolution (880c6b2)
- subagent-tool: live token usage during execution (5844125)
- subagent-tool: model capability matrix and task classifier (fff5635)
- subagent-tool: model inheritance, ephemeral recovery, defaults (b3d435b)
- subagent-tool: model router with auto-routing and fallback (530ff3a)
- subagent-tool: wire routing into spawn flow (3c7b59d)
- subagent: add animated progress indicators to chain mode (bb9680e)
- subagent: expand shell commands and file refs in task prompts (b0fa788)
- support icon field in skill frontmatter (5d46375)
- tallow-tui: add alternate screen terminal support (23e1006)
- tallow-tui: add OSC 9;4 progress bar support (a8fbd73)
- tallow-tui: addChangeListener API and darker ghost text (2fade18)
- tallow-tui: ghost text rendering in Editor component (68fcd63)
- tasks: clear task list when agent is cancelled mid-work (d9d5356)
- teams-tool: add live team dashboard workspace (f89f337)
- teams: archive task lists on shutdown instead of deleting (6a0cbaf)
- test: add extension harness, mock model, and session runner (2eff5a7)
- theme-selector: add randomThemeOnStart config (d6147a9)
- tool-display: add formatToolVerb utility for tense-aware rendering (60a1e60)
- tools: add clickable file paths via OSC 8 hyperlinks (e269a34)
- tools: use tense-aware verbs in tool headers and footers (0a4364f)
- tui fork, cli-spinners, loader hide, health border, upstream check (b251617)
- tui: add detectImageFormat and imageFormatToMime utilities (79b50ef)
- tui: add hide/show and HIDE sentinel to Loader (8898850)
- tui: add ImageMetadata type and dimension formatting (d209b54)
- tui: add OSC 8 hyperlink utilities (855a015)
- tui: cap image height, fix warping, add optional borders (a5fa048)
- tui: clickable images via OSC 8 file:// links (73a151a)
- tui: fork pi-tui as local package (404531a)
- tui: make image area itself clickable via OSC 8 (1a5cd2c)
- web-search-tool: add web search via Brave Search API (242c38d)
- wezterm-pane-control: add WezTerm pane management tool (e4fa920)
- wrap long lines in expanded tool output (459c920)
- ask-user-question: restore loader after user answers (744299e)
- bg: force full re-render when dismissing /bg viewer (7838f05)
- ci: build tallow-tui before typecheck and repair context-fork tests (3adfe95)
- ci: build tallow-tui before unit tests (15cc68b)
- ci: bump feat commits to minor version, not patch (c756410)
- ci: remove inline release-type override, fix biome lint errors (6c8b752)
- ci: resolve biome lint errors in test files (edf70b0)
- ci: stabilize workflows and make tests CI-safe (d7e9ca1)
- ci: use workspace protocol for tallow-tui fork (0434ca8)
- claude-bridge: package-aware collision detection and SKILL.md paths (2b7181c)
- claude-bridge: skip .claude/skills/ entries that collide with tallow skills (473cdb2)
- cli: declare -y flag on install command (2c1c167)
- cli: prefer session name over truncated first message in —list (5e7f028)
- docs: prevent theme swatch labels from wrapping (ab0fb85)
- docs: skip _icons from sidebar auto-generation (1db0426)
- double-guard build step with tsconfig check (4480d88)
- extensions: show full relative path in file tool headers (351f483)
- install: remove all build/link calls from installer (31a2954)
- plan-mode: preserve extension tools across mode transitions (7fbd0b5)
- preserve ANSI styling through truncation ellipsis (dc22181)
- prompt-suggestions: use CustomEditor, register Groq, fix autocomplete (340c412)
- random-spinner: stabilize centipede animation (bc20443)
- sdk: normalize skill names to directory name (2dd300b)
- security: move shell interpolation to load-time boundary (8ebf275)
- session-namer: reject LLM refusals as session names (b096b12)
- sessions: scope /resume and —list to current project (6cce7f3)
- shell-policy: harden confirmation handling and risk matching (76882f3)
- skill-commands: validate and normalize skill names before registration (9abec23)
- skip build and npm link for npm installs (473ebda)
- slash-command-bridge: pass CompactOptions callbacks in compact tool (d7d24af)
- strip all OSC sequences in visibleWidth (058d17f)
- tasks: animate spinner for team teammate-owned tasks (6c7a4ea)
- tasks: clear footer and refresh widget on team state changes (0ca5f28)
- tasks: fallback spinner frames when getSpinner returns null (3d116be)
- tasks: sharpen task completion instruction (982296c)
- tasks: validate index param before using it (f563aab)
- teams: race team_send wait=true against abort signal (301e263)
- tui: clamp content and fix title width in BorderedBox (2e182dc)
- tui: handle unterminated OSC sequences and clamp over-wide lines (6c538c2)
- tui: override pi-tui to use tallow fork for all packages (a54874c)
- upstream: check devDependencies and combine notifications (e11dd7d)
- wrap long question text in ask-user-question tool (d129f98)
Changed
Section titled “Changed”- export internal pure functions for testing (5d0f0cd)
- export testable pure functions from extensions (b21562f)
- extensions: migrate icons to registry (fcdc2c5)
- icons: extract random-spinner into standalone extension (3422275)
- rename web-fetch tool to web_fetch for snake_case consistency (bfef264)
- session-memory: replace better-sqlite3 with sqlite adapter (8d7c009)
- session-namer: remove /name command (now built-in) (c750f8f)
- shell: route git helpers through policy wrapper (22460ca)
- subagent: rename chain mode to centipede (3f91f91)
- tasks: consume typed interop snapshots (96e66d6)
- tasks: split extension into domain modules (b648dd7)
- teams-tool: replace hardcoded ANSI colors with theme tokens (8e62cdc)
- teams: split runtime into domain modules (f210fd7)
Documentation
Section titled “Documentation”- add —tools flag to README, AGENTS.md, and changelog (b6612af)
- add BASH_MAINTAIN_PROJECT_WORKING_DIR to changelog (5676c90)
- add changelog page to docs site (933e448)
- add image metadata and format detection to changelog (6f0f283)
- add inline agent results to changelog (eb532d8)
- add MCP server instructions to changelog (3ee6b61)
- add MCP structured content to changelog (315490c)
- add npx as alternative install method (170d83b)
- add piped stdin usage and examples (3a5c80e)
- add pnpm/bun install alternatives (11e4523)
- add project roadmap (dadbaac)
- add prompt-suggestions extension page, update extension counts (4eca65d)
- add random-spinner and upstream-check pages, update extension docs (c76dd8a)
- add resource_link support to changelog (620e076)
- add screenshot to README (b880700)
- add session-namer documentation and changelog entry (4a272e8)
- add web-search-tool docs page and update extension count to 46 (7de46bc)
- add wezterm pane control docs and refresh extension counts (6f3d843)
- changelog: add debug, shell interpolation, file reference entries (09d7a9a)
- changelog: cut 0.2.0 and 0.3.0 release sections (9742686)
- changelog: document shell-policy confirmation fix (1a5f608)
- changelog: normalize release heading format (aec44cf)
- changelog: note interop events migration (fa724c3)
- changelog: note tasks and teams module decomposition (29c8434)
- clean changelog and refresh homepage feature listings (42d1081)
- edit-tool-enhanced: document diff link and WezTerm handler (bec58c7)
- fix /question description — introspection, not codebase Q&A (5e52ec9)
- fix drift across README, extension docs, and changelog (87d830b)
- fix drift across README, ROADMAP, and docs site (1d67f81)
- fix npm→bun drift and add docs impact checklist (9848bed)
- fix stale counts in README and theme-selector metadata (a323c0f)
- icons: add icon configuration docs (9587fe2)
- intro: lead with tallow, update stale counts (bc7a9b0)
- make extension chips fully clickable and non-wrapping (e9f7971)
- normalize changelog format and remove duplicate 0.5.0 entry (f86a6d0)
- prefer rebase merge for PRs (78e725b)
- rewrite tallow-expert skill with accurate API surface (3b213d5)
- subagent-tool: document inheritance, recovery, and defaults (332051c)
- sync changelog and docs with latest shipped features (f0c3ccb)
- teams-tool: document dashboard controls and shortcuts (496d0c4)
- update changelog and extension counts for v0.2.0 (045d661)
- update contributor commands to bun (5ab760e)
- update documentation for plans 08-13 (2160961)
- update extension counts to 45 (946a155)
- use npx tallow install in README (2c8223a)
Maintenance
Section titled “Maintenance”- add 160 tests across high-risk extensions (ae83713)
- add docs-drift checker to CI pipeline (2e3b68a)
- add integration and TUI snapshot tests (ebe25ab)
- add justfile with common dev recipes (20b1d54)
- add missing justfile recipes (f2f4576)
- architecture: add module boundary and size guards (6a66dff)
- bump version to 0.2.0 (8354cd2)
- bump version to 0.3.0 (452df6c)
- ci: make nested guard test deterministic in headless envs (c1e27f7)
- cli: add nested session guard integration tests (1d810e6)
- cli: add piped stdin integration tests (99a38a1)
- docs: add favicon, description, and og:image meta (bb64725)
- edit-tool-enhanced: add diff link unit tests (357b3e2)
- extensions: add unit tests for pure functions (d94c67f)
- gitignore .sidecar/ (ce9fa00)
- git: ignore ROADMAP.md (aac90bd)
- gitignore: ignore local keymap report (d760bc5)
- interop: add cross-extension state-flow coverage (aa040e8)
- main: release 0.4.0 (#1) (259c9e2)
- main: release 0.5.0 (#2) (e969261)
- make bun the canonical package manager (d9f775a)
- migrate tallow-tui fork to workspace protocol (03beed8)
- plan-mode: add e2e for tool availability across mode transitions (bfb812a)
- prompt-suggestions: extract AutocompleteEngine, add 26 unit tests (4bfa93e)
- release v0.5.0 (a65184f)
- release: trigger release workflow (1e3a1a8)
- run install and checks with bun only (f7c5b16)
- security: verify shell commands not expanded on agent strings (810120e)
- shell-policy: add confirmation flow integration coverage (1ca275a)
- tallow-tui: add 7 tests for Editor.addChangeListener (a785d97)
- tallow-tui: add unit tests for core utilities (159dd38)
- tasks: add runtime and state/ui coverage (0aa733c)
- tasks: add shouldClearOnAgentEnd unit tests (528f8c6)
- teams: add runtime wiring integration coverage (ec5d06e)
- teams: add team_send wait=true cancellation tests (91eede8)
[0.6.0-pre] - 2026-02-15
Section titled “[0.6.0-pre] - 2026-02-15”- prompt-suggestions: ghost text suggestions in the editor — curated idle templates when input is empty (Enter to accept), plus LLM-powered inline autocomplete as you type (Tab to accept). Uses Groq Llama 3.1 8B by default ($0.05/M tokens). Configurable model, debounce, and per-session cost cap
- tallow-tui:
setGhostText()/getGhostText()on Editor component for inline suggestion rendering; added toEditorComponentinterface - core:
--toolsCLI flag to restrict available tools per session — supports individual names (read,bash,edit), presets (readonly,coding,none), and validates with clear error messages - bash-tool-enhanced:
BASH_MAINTAIN_PROJECT_WORKING_DIRsetting — resets bash execution to the project root before each command, preventing directory drift fromcdtool calls - cd-tool: warning when
BASH_MAINTAIN_PROJECT_WORKING_DIRis enabled, noting that bash commands still run from the project root - mcp-adapter-tool: server instructions support — captures
instructionsfrom MCP initialize responses and injects them into the system prompt before tool listings, giving servers a way to declare usage guidance - mcp-adapter-tool: structured content support — handles
resourceand annotated content types from MCP servers, with safe fallback serialization for unknown types - mcp-adapter-tool:
resource_linkcontent type — renders fetchable resource pointers with URI, MIME type, and description as readable text references - tui:
ImageMetadatatype,createImageMetadata(), andformatImageDimensions()for tracking original vs display dimensions when images are resized before API upload - tui:
detectImageFormat(buffer)andimageFormatToMime()utilities for identifying PNG/JPEG/GIF/WebP from file header magic numbers without external dependencies - read-tool-enhanced: image dimension metadata — captures original and
display dimensions, format, and file size when reading images; shows compact
summary like
image.png (PNG, 3840×2160 → 1920×1080, 245KB) - read-tool-enhanced: byte-based image format detection — reads first 12
bytes to identify images regardless of file extension, complementing the base
tool’s
file-typedetection - background-task-tool: inline completion notifications for fire-and-forget
background tasks — shows status icon, exit code, duration, and 3-line output
preview as a chat message when
background: truetasks complete - subagent-tool: inline completion notifications for background subagents — shows agent name, duration, and 3-line response preview when background subagents finish
- background-task-tool:
/toggle-inline-resultscommand to enable/disable inline result notifications (persists to settings.json, enabled by default) - core: piped stdin support —
cat file.md | tallowreads stdin and enters print mode automatically, combinable with-pfor context + prompt workflows, with 10 MB size limit and JSON mode support - subagent-tool:
auto-cheap/auto-premiumrouting keywords for agent frontmatter — setmodel: auto-cheapto force eco routing without picking a specific model, integrates with existing cost preference and per-call hints - agents: bundled
exploreagent for cheap codebase discovery — usesauto-cheaprouting, read-only tools (read/grep/find/ls), and a 5-turn budget for economical exploration tasks - bash-tool-enhanced: auto-background long-running commands after configurable timeout (default 30s) — promotes to background-task-tool with seamless output handoff and task_kill support
- subagent-tool: live token usage display during subagent execution — per-agent counters update in real-time for single, parallel, and centipede modes with 500ms throttled updates
- context-files:
/add-dircommand to register additional directories for context file discovery, with/clear-dirsto reset - progress-indicator: terminal progress bar via OSC 9;4 during agent turns, with indeterminate mode for pulsing tab/title bar indicators
- tallow-tui:
setProgress(percent)andclearProgress()methods on Terminal interface for OSC 9;4 progress bar support with 100ms throttling - context-files:
@importdirectives — parse@path/to/file.mdin context files with recursive resolution, circular import detection, and depth limiting - context-files: scan
.tallow/rules/,.claude/rules/, and~/.tallow/rules/for .md/.txt rule files - health:
/doctorvalidation — 7 diagnostic checks (model, auth, context, tools, Node version, settings, project context) with actionable suggestions - sdk: inject model identity into system prompt so non-Claude models don’t confabulate their identity
- core: PID file manager for orphan process cleanup on startup and shutdown
- background-task-tool: track spawned PIDs via shared registry for orphan cleanup
- core: unconditional fatal error handlers (uncaughtException, unhandledRejection)
Changed
Section titled “Changed”- deps: upgrade pi framework 0.52.9 → 0.52.12
- deps: bump
@biomejs/biome2.3.14 → 2.3.15,@types/node25.2.2 → 25.2.3 - tallow-tui: replace
inputMiddlewarewith upstreaminputListenersAPI - tallow-tui: adopt upstream crash logging for width overflow
- tui: stop horizontal compression when height-clamping images — keep full width and clip at the bottom instead
- tui: remove artificial max width cap on images
- background-task-tool: clean up stream listeners on task completion to prevent memory leaks
- lsp: send proper shutdown/exit sequence before killing language servers
- mcp-adapter-tool: shorten init timeout 30s → 10s with improved error messages
- hooks: surface hook blocks with visible error notifications
- plan-mode-tool: add user feedback when commands are blocked, plan is kept, or refinement editor is dismissed
- core: handle SIGTERM/SIGINT and EIO/EPIPE for clean shutdown
- health: handle nullable
ContextUsage.tokensand.percentafter pi 0.52.12 - context-usage: guard against null
usage.tokensin arithmetic calculations - lint: resolve all pre-existing biome warnings across the codebase
Documentation
Section titled “Documentation”- hooks: document
shell:trueinjection risk and mitigation plan - AGENTS.md: prefer rebase merge for PRs
0.5.0 (2026-02-14)
Section titled “0.5.0 (2026-02-14)”- subagent-tool: model inheritance — subagents inherit the parent session model by default (per-call > agent frontmatter > parent model)
- subagent-tool: missing-agent recovery — unknown agent names resolve via fuzzy best-match or ephemeral fallback instead of hard errors
- subagent-tool:
_defaults.mdfrontmatter files in agent directories for configurable fallbacktools,maxTurns,mcpServers, andmissingAgentBehavior - subagent-tool:
resolveProjectRoot()anchors project agent discovery to git root (falls back to cwd), replacing the previous ancestor-walk behavior - tool-display:
wrapoption onrenderLines— expanded tool output now soft-wraps long lines instead of truncating - wezterm-pane-control: WezTerm pane management tool (split, close, focus, zoom, resize, send/read text, spawn tabs)
- tallow-tui: alternate screen terminal support
- teams: dashboard workspace with live task/teammate/message view,
/team-dashboardcommand,Ctrl+Xtoggle, and keyboard navigation - shell-policy: centralized shell execution policy with audit trail, trust levels, and allowlist enforcement
- shell: enforce high-risk confirmation for interactive bash tool calls
- interop: typed cross-extension event contracts (
interop.v1.*) with schema-versioned payload validation - auth: secure credential storage with environment variable references,
replacing
--api-keyCLI flag - ci: docs-drift checker in CI pipeline
- tests: 160+ new tests across high-risk extensions (shell-policy, interop, tasks, teams, architecture guards)
Changed
Section titled “Changed”- subagent-tool: project-local agents now run without confirmation prompts;
confirmProjectAgentsparameter deprecated (kept for compatibility, ignored) - extensions: replace cross-extension
globalThisstate coupling with typedpi.eventscontracts and schema-versioned payload validation - tasks/teams-tool: split oversized
index.tsmodules into thin composition roots with extracted domain modules - shell-interpolation: require explicit opt-in by default
- teams: refine dashboard visuals with per-team personality markers, model labels, and live per-agent token meters
- Bun is now the canonical package manager
- tallow-tui: truncation ellipsis (
…) now inherits ANSI styling instead of resetting to default background - shell-policy: harden confirmation handling for high-risk commands; interrupted/canceled dialogs correctly treated as denied
- ci: stabilize workflows — build tallow-tui before typecheck/tests, make nested guard tests deterministic in headless environments
0.4.0 (2026-02-13)
Section titled “0.4.0 (2026-02-13)”- rewind:
/rewindextension for undoing file changes to a previous turn - read tool: PDF support via page range parameter
- context-fork:
context: forkfrontmatter for context branching - tui: fork
pi-tuias local package for direct modification - tui: cap image height, fix Kitty warping, add optional rounded borders
- tui: clickable images and file paths via OSC 8 hyperlinks
- tui: Loader hide/show with HIDE sentinel
- health: wrap
/healthoutput in rounded border box - icons: cli-spinners integration with random and named presets
- init: offer
.claude/→.tallow/rename duringtallow init - session-namer: auto-generate session names via Haiku after first response
- sessions: per-cwd session migration module
- custom-footer: display session name as right-aligned 3rd row
- footer: move agent bar from stats line to footer line 3
- ask-user: hide Working… loader during question prompt
- edit-tool-enhanced: clickable diff link in edit footer
- extensions: agent sandboxing,
.claude/bridging, MCP scoping - cli: guard against nested interactive sessions
- theme-selector:
randomThemeOnStartconfig option - test: extension harness, mock model, and session runner
- tasks: clear task list when agent is cancelled mid-work
- Support icon field in skill frontmatter
- tui: clamp content and fix title width in BorderedBox
- tui: handle unterminated OSC sequences and clamp over-wide lines
- tui: override pi-tui to use tallow fork for all packages
- claude-bridge: package-aware collision detection and SKILL.md paths
- cli: prefer session name over truncated first message in
--list - sessions: scope
/resumeand--listto current project - sdk: normalize skill names to directory name
- skill-commands: validate and normalize skill names before registration
- security: move shell interpolation to load-time boundary
- tasks: animate spinner for team teammate-owned tasks
- tasks: clear footer and refresh widget on team state changes
- tasks: fallback spinner frames when getSpinner returns null
- tasks: validate index param before using it
- teams: race
team_sendwait=true against abort signal - upstream: check devDependencies and combine notifications
- ask-user-question: restore loader after user answers
- Strip all OSC sequences in
visibleWidth - Wrap long question text in ask-user-question tool
0.3.0 (2026-02-11)
Section titled “0.3.0 (2026-02-11)”- Debug mode — structured JSONL diagnostic logging to
~/.tallow/debug.log- Activate via
--debugflag,TALLOW_DEBUG=1env, orNODE_ENV=development - Logs tool timings, turn boundaries, model changes, subagent events, errors
/diagnosticscommand for viewing, toggling, tailing, and clearing the log- Zero-cost when disabled — no file I/O or object allocation
- Activate via
- Shell interpolation — expand
!`command`patterns in input by executing shell commands and inlining stdout. CC-compatible syntax. 5s timeout, 1MB max output, non-recursive - File references — expand
@path/to/filepatterns in input by reading files and inlining contents in fenced code blocks. CC-compatible syntax. Skips emails, fenced code blocks, directories, and binary files. 100KB truncation - Subagent input expansion — subagent task prompts now expand both
!`cmd`and@filepatterns before spawning - Team archive and resume —
team_shutdown, Escape, and session end now archive teams instead of deleting them.team_resumerestores archived teams with their full task board, results, and messages - User-configurable icons — override TUI glyphs via
iconsin settings.json- 13 icon keys with
getIcon()andgetSpinner()helpers - Migrated all 17 extensions from hardcoded literals to registry lookups
- JSON Schema for settings.json with
$schemafor IDE autocompletion
- 13 icon keys with
Changed
Section titled “Changed”- Subagent UI — animated progress indicators for chain mode (spinner while running, checkmark/X on completion). Agent prose uses subdued color to recede behind structural elements.
0.2.0 (2026-02-11)
Section titled “0.2.0 (2026-02-11)”- CLI flags —
--providerand--api-keyfor headless startup without interactive prompts. Install command gains--default-provider,--default-model,--api-key,--theme, and--thinkingflags.
- Plan mode — extension tools now preserved across mode transitions instead of being dropped when toggling plan mode on/off.
0.1.0 (2026-02-11)
Section titled “0.1.0 (2026-02-11)”- Initial release
- 30+ bundled extensions (enhanced tools, hooks, tasks, teams, LSP, themes, and more)
- 34 terminal color themes
- 8 slash commands (
/implement,/review,/fix,/test,/scout-and-plan,/scaffold,/question) - 8 specialized agents (architect, debug, planner, refactor, reviewer, scout, worker, tallow-expert)
- Multi-agent teams with task boards and messaging
- SDK for programmatic usage (
createTallowSession) - Interactive installer (
tallow install) - CLI with print mode, RPC mode, and session management