Skip to content

Releases: Suge8/firecode

v1.6.0

Choose a tag to compare

@Suge8 Suge8 released this 16 Oct 09:38
aaa7ab2

Changed

  • Breaking: FireCode now requires Pi 1.3.0 or later.
  • Master Workers no longer use codemode, even when the Master session has it on. Pi 1.3.0 lets at most two codemode scripts run at once across all sessions in a process, and a script keeps its slot while it waits for a tool. Workers run in the Master's process, so two Workers running long commands left a Master in codemode only mode unable to call any tool, including interrupting them. Workers now call their tools directly and can still run them in parallel.

Fixed

  • OpenAI native compaction no longer drops its window on OpenAI GPT-6 models used with an API key and a thinking level. Pi 1.3.0 marks each reply's thinking level in these requests, the replay no longer matched, and history from before the compaction was left out of the context.
  • A read call whose omitted arguments arrive as null showed a wrong line range such as :10-9; it now shows :10+.
  • OpenAI native compaction works when OpenAI is signed in with a ChatGPT subscription ("Sign in with ChatGPT"). /compact failed with HTTP 400 because that login rejects the compaction_trigger input item; compaction now uses server-side compaction (context_management), which API keys, Codex and ChatGPT subscriptions all accept.
  • An automatic compaction whose native compaction fails now falls back to an ordinary summary with a warning, the same as after a model switch. It used to be cancelled, so it failed again every turn and, once the context was full, the overflow recovery was cancelled too and the session could not continue. A manual /compact is still cancelled with the reason.

v1.5.0

Choose a tag to compare

@Suge8 Suge8 released this 14 Oct 03:52
b06ca94

Changed

  • /fire-review passes only when every reviewer returns PASS. A reviewer that gives no verdict (error, expired login, timeout, empty output) used to be skipped, so the other reviewer's PASS was enough; now the review stops as failed and the result names the model and the reason.

Added

  • A reviewer can have a fallback chain: write { "model": "…", "fallback": ["…"] } in review.reviewers (up to 2 fallback models, same as Master roles). When a reviewer gives no verdict, the next model in its chain reviews instead, and the result card says which model was replaced and why. Later rounds of the same review start from the model that gave the last verdict.
  • A review left in progress by an earlier version is not resumed after the update; run /fire-review again.
  • Images sent to Claude (screenshots, read results, pasted images) are uploaded once through the Files API and referenced by ID, instead of being resent inline with the whole history every turn. In an image-heavy session the request shrinks from megabytes to the text alone; image quality is unchanged and prompt cache and thinking stay valid. Turn it off with "features": { "claudeFiles": false }.

v1.4.0

Choose a tag to compare

@Suge8 Suge8 released this 13 Oct 07:47
f696a6f

Changed

  • Breaking: FireCode now requires Pi 1.2.0 or later.
  • Master events, watcher suggestions and review prompts that wake an idle session are now extension messages instead of user messages, the same as when they arrive during a turn. /fork and the user-message filter of /tree list only what you typed, a wake-up is no longer rejected when the model has no API key (the turn starts and shows the error), and the event stays in the conversation. Breaking: in sessions recorded before this version, earlier wake-ups show as plain user messages.

Fixed

  • tail showed review feedback that reached a busy Worker as the Worker's own reply; FireCode's messages are now shown as input.

v1.3.1

Choose a tag to compare

@Suge8 Suge8 released this 12 Oct 06:10
6875392

Changed

  • A review checkpoint that can no longer be read is reported once, with the session it belongs to, instead of being silently dropped; run /fire-review again to restart that review.
  • Native compaction now uses pi's public model interface instead of an internal entry point, so OpenAI-compatible setups with a custom baseUrl are called at the right address.
  • 1.3.0 was never published to npm. From 1.3.1 on, GitHub Actions publishes the package to npm with a provenance attestation.
  • For contributors: bun run setup fetches the pinned pi sources that tests and the type check need.

v1.3.0

Choose a tag to compare

@Suge8 Suge8 released this 11 Oct 19:24
b3bb3d3

Added

  • In a Worker's full-run view, Ctrl+Shift+X interrupts the Worker.
  • A Worker under review can be interrupted (by the Master, or with Ctrl+Shift+X in its view): the review is cancelled, the Worker returns to idle with its review obligation kept, and the Master is told the review was interrupted. It can then be reviewed again.
  • /fire-review --cancel cancels the whole running review, even while the advisor is being consulted; it also works when the review config is broken.
  • Turning Master mode off while Workers are running asks for confirmation first.
  • A Worker interrupted before its first reply can be resumed directly.
  • The Master is told when an extension inside a Worker's session fails.
  • Delivery of Master events that fails is retried with a growing delay instead of being dropped.
  • The watcher stops with a notice when the provider returns an error; an extension error in the watcher session is reported once and does not stop it.
  • A new watcher suggestion replaces one that has not been delivered yet.

Changed

  • Breaking: /tool-status is removed.
  • FireCode no longer re-registers read, bash, edit and write. It only restyles the rows of read, bash, edit, write, grep, find and ls, so Pi's own tool descriptions and the shellPath, shellCommandPrefix and image-resize settings apply again.
  • Tool durations come from Pi, so they also show after resume and in the Worker view.
  • In Pi's regular display mode, a summary line that has scrolled out of view is drawn still instead of animating.
  • The average speed of a turn is computed from each reply's own duration.
  • Breaking: presets saved in old sessions are void after reopening them; preset records are now version 2.
  • /preset (none) restores the model, thinking level and tools from before the preset; a preset without tools returns to the tool set from before the preset.
  • Switching model by hand voids the active preset and restores its tool set without touching the model.
  • --preset is applied only at startup.
  • /tokens reads session files in chunks, so very large sessions are no longer undercounted and use far less memory; unreadable files are reported, and the argument must be a plain number of days.
  • Breaking: the Worker pool file is version 10; an older one is discarded with a notice, and the file is deleted when the pool is empty.
  • tail returns what happened after the last outside input, with errors first.
  • Workers start with the project trust of their target directory: extensions of an untrusted project are not loaded.
  • The watcher session is isolated: it loads none of your extensions, skills or prompt templates.
  • While you run /compact by hand or switch branches with a summary in /tree, Master events, watcher suggestions and review feedback wait until it settles before they are delivered, instead of being appended without waking anyone (after a /tree switch they would also have been left on the abandoned branch).
  • Events that only inform no longer wake the Master; during a turn they are appended at its end.
  • Breaking: the review checkpoint is version 7; a review still in progress when you upgrade is discarded.
  • During a review the editor lets Pi's application keys and extension shortcuts through; only typing and submit are blocked.
  • OpenAI native compaction now goes through Pi's public stream API instead of FireCode's own Responses serialization.
  • Diagnostics from the OpenAI and Claude adapters are bilingual and prefixed with FireCode.
  • Config files may have trailing commas and a BOM; an unreadable file is reported as one problem; the openai section is validated with the rest, so unknown fields are reported.
  • Breaking: review.tools must not contain write or edit; the config is rejected otherwise.

Removed

  • The Master action disposition and the /skill:tdd allowlist.

Fixed

  • After FireCode is updated while a Master session is open, sub-agents keep running the same FireCode version as the Master instead of loading the new code from disk. Before, a review started in such a session could finish but be reported as "checkpoint format is invalid" or "did not start". Reload the Master session to pick up a FireCode update for both.
  • Resuming an old session no longer starts a model turn for no reason.
  • ack cancels the pending resume reminder, and a Worker you have looked at is still released after 10 minutes.
  • After Esc, a turn that only runs a review no longer shows a false "interrupted" mark.
  • The warm glow after a turn settles no longer freezes halfway.
  • A session that starts while a turn is already running is counted as busy from the start.
  • A wake-up delivery can be aborted, so a Master you turned off no longer delivers old events afterwards.
  • A malformed review vote that starts with FAIL counts as a failure, and its original text goes back as feedback.
  • Decorated verdict lines (bold, headings, trailing punctuation) are read the same way everywhere.
  • When the advisor is unavailable, the review skips it, keeps repairing and still posts its card.
  • A review timeout card is posted even while the executing model is busy.
  • What the Master reads as the outcome of a review now follows how it ended: passed, advisor stopped it, rounds used up, failure, cancelled or timed out.
  • OpenAI native compaction no longer gives up replaying history that contains text without a phase, grammar-constrained tools or foreign call ids.
  • A manual /compact is cancelled with an explanation when the compacted window cannot be used; automatic compaction falls back to a normal summary and warns.
  • The Claude Code request headers are added only under Claude subscription credentials; API-key users are no longer presented as Claude Code.
  • The fast-mode toggle replaces only the top-level openai key, so a comment containing "openai": { is no longer edited by mistake, and turning it off writes false.