Skip to content

Bake 0.4.4

Choose a tag to compare

@github-actions github-actions released this 26 Oct 21:12
· 14 commits to main since this release
6171166

Bake 0.4.4 is easier to run from scripts and other agents, groups /settings by the command each setting shapes, writes compaction summaries from the prompt cache, shows compaction as it runs, and can show token and cache usage in the status line. Linux remains its only released platform.

  • Easier to run from scripts and other agents. bake -p --output-format json prints one JSON object when the run ends: the answer, how the run ended (success, error, truncated, budget_exhausted, or cancelled), the session id and file to continue with --session, and the run's turns, model calls, time, tokens, and cost. --output-format stream-json prints every event and then that object, and text prints the answer, as Claude Code's and Gemini CLI's --output-format do. A startup failure, such as a model that does not exist, prints a result object too. bake docs headless describes it.
  • No more hanging on an open standard input. Beside a prompt argument, piped standard input that sends nothing within a second is left unread with a warning, so a caller that starts bake -p "…" with standard input open no longer waits forever. A bare - waits for piped input however long it takes; with no prompt argument, standard input is still read to its end.
  • Cut-off answers fail. As in Pi 1.4.0, print mode prints an answer cut off at the model's output limit, then says so on standard error and exits 1.
  • /settings is grouped. Its rows sit under the command or part of the screen they shape: Compaction · /compact, Prompts sent during a turn, Branches · /tree, and Status line. Each shows its value and, while selected, what it does. A change applies at once and returns to the list, so several settings can be changed in one visit; Esc closes it and lists the changes.
  • Choose when auto-compaction starts. Compact at in /settings, or compaction.thresholdPercent in settings.json, starts automatic compaction once the context passes a share of the model's window, such as 80%, instead of only when the reserve is reached. Keep recent sets how much recent conversation a compaction keeps, and Branch summary whether /tree asks to summarize the branch it leaves.
  • Cached summaries, on by default. A compaction repeats the conversation the provider has cached and asks for the summary as the next turn, so most of the request is read from the prompt cache and the summary sees every tool result in full rather than its first 2,000 characters. Bake sends it only when the request repeats the last one; otherwise the usual summary runs, and the compaction says why. Turn it off with Cached summary in /settings (compaction.cachedSummary: false). Adapted from pi-cached-compaction 0.2.0.
  • Clearer compaction. While history is compacted, the bar says Compacting history… in blue with what it is doing (reading 182.3k tokens from the cache, summarizing 182.3k tokens) and its time, the composer says Esc cancels it, and an automatic compaction hands the bar back to the turn when it ends. A ruled mark in the transcript shows the context before and after, Compacted · 182.3k → 21.1k tokens, with how much the cache served or why it was not used; resumed sessions mark earlier compactions the same way. --mode json reports each summary request as a compaction_summary event.
  • Token and cache readings in the status line. Status line in /settings (statusLine.tokens and statusLine.cache) adds the session's input and output tokens, ↑12k ↓3.4k, and its prompt cache, cache 99% (R180k W2k): the share of the latest prompt read from the cache, then the cache's reads and writes, as Pi's footer counts them.
  • One set of file lists per summary. A summary whose model copied the previous summary's read and modified file lists no longer ends with them twice.