Skip to content

Changelog

Tagged releases follow Semantic Versioning beginning with v5.0.0. The state format and agent contract have independent integer versions. See Compatibility and upgrades for the policy and current upgrade instructions.

A change that users would notice gets an entry here: a change to a command, a setting, a message, a view, the documentation, the state format or the agent contract. Refactoring, tests and CI get none. The release notes on GitHub list every merged pull request, so this page lists only what a user upgrading needs to know.

From v5.1.0 on, each release groups its entries under these headings, adapted from Keep a Changelog, in this order, leaving out any heading that would be empty:

  • Breaking for what users must act on before upgrading;
  • Added for new commands, settings, controls and pages;
  • Changed for existing behaviour that now works differently; and
  • Fixed for behaviour that was wrong.

Released changes stay under their release; development changes stay under Unreleased, with the same headings, until they are tagged. From v5.0.0 on, each entry links the pull request or commit that made the change.

Unreleased

Changed

  • dreamcatcher run now includes the installed software version in its startup message. (#522)

v5.5.1 — 2026-10-12

Fixed

  • The web interface's nature theme no longer draws a hard outline around the home page cards in its dark scheme, so their edges stay soft as in the light one. (#515)
  • The agent contract, the ontology and the guides to configuring and customising skills now name conversation skills beside assignment skills, where they spoke of conversation prompts before. The agent contract stays at version 1, and existing skills and prompts need no change. (#513)

v5.5.0 — 2026-10-11

Added

  • A how-to guide, "Customise skills", says how to start with dream's skills and how to write and route your own. It replaces the home page section on skills. (#505)
  • dreamcatcher is published on PyPI. Install it with uv tool install dreamcatcher. (#512)

Changed

  • The web interface's nature theme now follows the viewer's system light or dark setting. Its dark scheme uses a dusk palette and shows the moon crossing the sky at night; the Matrix theme is unchanged. (#507)
  • The documentation now introduces the dream plugin, says which of its skills run under dreamcatcher, and links to the dream documentation site. (#499)
  • The documentation home page opens with a hero: a short account of what dreamcatcher does over an animated status view. (#500)
  • The documentation site sets its text in Geist and its headings in Instrument Serif, and offers a dusk scheme beside the day one. It follows your system setting, and the header has a switch between the two. (#500)
  • The documentation home page leads with what sets dreamcatcher apart: agents that run in your own setup, that you steer from GitHub wherever you are, and as many at once as you allow. It explains how dreamcatcher works before it introduces the dream plugin's skills, so it no longer reads as if dreamcatcher provides them. (#501)
  • The documentation home page no longer shows a label above its headline, and its account of an assignment includes the rounds that address your review. Its last section says that you can start with dream's skills or write your own. (#502)
  • The documentation home page hero has tighter wording. (#503)
  • The documentation home page lists the how-to guides in the same order as the navigation. (#504)

Fixed

  • Assignment setup no longer runs the repository's commit and pre-push hooks on the empty placeholder commit, so a hook that cannot run in a fresh worktree no longer stops agent work from starting. The agent's own commits and pushes still run them. (#497)
  • The documentation home page says to assign the issue to yourself before you ask a question in a conversation, and it links to the agent-facing contract again. (#512)

v5.4.0 — 2026-10-08

Changed

  • Terminal and web status views now share their daemon, instance, agent-work, and round ordering and wording. (#488)
  • The default dream:less recipes now use medium effort for both harnesses. Existing configuration files are unchanged. (2aa4d8b)

Fixed

  • The web home page's empty panels now tell users to assign the issue to the signed-in GitHub account and apply a route label. The conversation panel also says to comment from that account. (#486)
  • dreamcatcher init now gives suitable next steps when the configuration has only conversation routes or no routes. It no longer fails with a traceback. (#487)
  • The web home page now reports a failed background refresh while keeping the last successful status visible. The warning clears after a successful refresh. (#489)

v5.3.0 — 2026-10-07

Added

  • When a kind of agent work has no current work, the web home page now names the labels that start it in place of an empty panel. (#460)

Changed

  • dreamcatcher.toml may now leave out [[assignment]] routes, as it could already leave out [[conversation]] routes. The web home page hides the panel for a kind of agent work that has neither routes nor work. (#460)
  • The top bar of every web page now links the version number to the documentation site, in place of a separate Docs link. (#464)
  • Dots now separate the repository, issues and pulls links in the top bar. (#466)
  • The documentation site lists Review an assignment straight after the tutorial. (#462)

Fixed

  • A running daemon now stops, along with its rounds, when its lock file goes missing or is replaced, as happens when someone deletes the state directory. A second daemon could otherwise run against the same checkout beside it. (#468)

v5.2.0 — 2026-10-07

Added

  • Every web page now links to the documentation site from its top bar. (#438)
  • The top bar of every web page now links to the repository's issues and pulls on GitHub, beside the repository's name. (#441)
  • dreamcatcher init prepares a repository's main checkout for run. It checks gh, Git and each harness, writes a default dreamcatcher.toml for the harnesses that are installed, installs the dream plugin, and creates the labels the configuration names. The tutorial now uses it. (#439)

Changed

  • Nature is now the default web theme. Matrix remains available from the theme switch, and an existing theme choice is still remembered. (#448)
  • The complete example in the configuration reference now routes conversations to dream:scout and assignments to dream:smith and dream:less. (#437)

Fixed

  • Retrying conversation creation after a failed record write now reuses the worktree left by the earlier attempt. The first round still resets it to fetched main before the agent reads it. (#453)
  • The web home page heads its conversations panel Conversations again, beside Assignments, in place of Issue conversations. (#449)

v5.1.0 — 2026-10-06

Added

Changed

  • The assignment and conversation pages now show Stop and Cancel as stop round and cancel assignment, at the foot of the page beside resume by hand and styled like it. stop round asks you to confirm, as cancel assignment already did. Retry stays at the top. (#427)
  • The product name is now dreamcatcher, in lower case, in the documentation, the help, the messages and the web pages. The web pages now write every issue number as #123, as GitHub does. (#431)

v5.0.0 — 2026-10-06

  • Terminal and web live views now keep following faulted assignments and conversations in fault or with a routing conflict, so recovery appears without reopening the view. They stop only when an assignment ends or a conversation leaves the status report. (#415)
  • Brought the words in the status views, CLI help and messages, and guides into line with each other. An assignment that needs your feedback shows how long since its last output rather than "idle". The terminal and web views share their labels and say "preferred harness" for the daemon's --harness. A scheduler tick is called an update wherever you read about one, so the daemon now reports "update failed". A route's per-harness settings are a dispatch recipe throughout, and the run help says one daemon runs per checkout. (#416)
  • The web pages and the terminal status view no longer report a running daemon as stopped, or its running rounds as interrupted, after the system clock is corrected. The daemon now holds an operating-system lock on .dreamcatcher/daemon.lock for as long as it runs, in place of .dreamcatcher/daemon.pid, so stop a v4.0.0 daemon before you start this release. (#405)
  • Added a config table to a Codex recipe in dreamcatcher.toml. dreamcatcher passes each entry to every Codex round as -c key=value, so that a label can run Codex with settings such as a larger context window. (#402)
  • Added dreamcatcher stop to request a stop for the running round of a selected assignment or issue conversation. (#374)
  • Added dreamcatcher cancel and a Cancel control on the assignment page, so that you can finish an assignment's pull request by hand. A cancelled assignment runs no further rounds and shows as cancelled. The web home page and the terminal status view now group complete and cancelled assignments as ended. (#376)
  • A cancel or a retry request is no longer lost when the daemon records something about the same assignment or conversation at the same moment. (#395)
  • The web home page and the terminal status view show capacity, a global cooldown and the latest update's failures once each. Failures, such as a failed issue listing, appear on a scheduler failures row, and the web home page no longer hides them while capacity is full. The daemon's line for each update says what it launched, then any global cooldown, full capacity and failures. (#389)
  • Reshaped the documentation around reader tasks: a start-to-finish tutorial, focused task guides, complete command and configuration references, this changelog, compatibility guidance and a testing account. (#370)
  • The web assignment and conversation pages now show the "resume by hand" section only while no round is running, and update it without a reload when a round starts or ends. An open section stays open across refreshes. (#385)
  • Corrected CLI help to include routing conflicts among the conditions that end live conversation and conversation-feed views. (#370)
  • Ending a round on macOS no longer fails with a permission error when its harness has exited in the same moment, and starting a round on Windows no longer fails when its harness exits in the moment after it starts: a Windows child is now placed in its job before it runs. (#371)
  • A failed issue listing for an assignment label no longer prevents the rounds that existing assignments require. It prevents only the creation of new assignments. (#387)
  • State format 5 starts with empty local state in .dreamcatcher/v5/; state format 4 is left untouched and ignored. Finish assignments through successful wrap-up, stop the daemon, and accept fresh conversation context before upgrading. See Upgrade from v4.0.0 to v5.0.0. (#364)
  • State format 5 puts the initial conversation title and body under initial_issue. Agent contract version 1 documents that current protocol; declaring the version does not itself change the input. Prompt and skill authors should check their assumptions against the contract. (#364, #370)
  • The prompt that hands an assignment new pull request posts now opens with "User-posts prompt for pull request #N:" rather than "PR-inbox prompt", and each round's input file is round-input.json rather than inbox.json. A skill that recognises the old words should follow the contract instead. (#411)
  • Added a Retry button to the web assignment and conversation pages while the work is in fault. It records the same retry request as dreamcatcher retry for the work the page shows. (#386)
  • A conversation in fault now shows fault even when its issue has a routing conflict, is no longer eligible, or has no scheduler observation yet, so its page offers Retry. Before, it could show idle, unknown or routing conflict. (#394)
  • The "resume by hand" command for a Codex session now sets the work's model, effort and harness config, as every other Codex round does. (#408)

v4.0.0 — 2026-10-01

  • State format 4 began with new local state. Configuration renamed assignment route tables from [[dispatch]] to [[assignment]] and changed the single [conversation] table to repeatable [[conversation]] routes. The assignee setting was removed; dreamcatcher uses the account signed in through gh.

Evidence: state format 4 commit, assignment-route rename, conversation-route change, assignee removal.

v3.2.0 — 2026-09-26

  • Added issue conversations, including follow-up and recovery rounds and support for both Claude and Codex. Older scheduler records within state format 3 became invalid and had to be removed before restarting.

Evidence: scheduler-record change.

v3.1.0 — 2026-09-23

  • Added the local web dashboard for monitoring assignments and their feeds.

v3.0.0 — 2026-09-21

  • Introduced numbered state directories with state format 3. Earlier unversioned local state was left untouched and ignored. Daemon interval and agent capacity moved from configuration into run options.

Evidence: state-directory change, legacy-state removal, daemon-option change.

v3.0.0.beta1 — 2026-09-20

  • Replaced sessions with agent assignments and changed their unversioned saved records. No migration was provided for the pre-release state.

Evidence: assignment-boundary commit.

v2.0.0 — 2026-09-10

  • Replaced the scry command with the board, session and feed views. The release did not change the saved-state layout.

Evidence: command change.

v1.0 — 2026-09-09

  • First tagged release, using unversioned local state.