Skip to content

v9.0.0

Choose a tag to compare

@alimanfoo alimanfoo released this 23 Oct 17:04
· 410 commits to main since this release
Immutable release. Only release title and notes can be modified.
bd5cff6

Breaking

  • Saved state moves to state format 8, in .dreamcatcher/v8/. Saved
    work from v7.0.0 and v8.0.0 does not carry across: before upgrading,
    let each assignment reach its wrap-up or finish its pull request by
    hand, and accept that conversations and campaigns start afresh, as
    the upgrade instructions
    describe. (#740)

Changed

  • The feed no longer shows a subagent's steps, so subagents that run at
    once no longer interleave their lines with each other's and the
    agent's. A Claude round still shows each subagent when the agent sends
    it and its report when it finishes, and the report is no longer
    indented. A Codex round shows a [wait] line as soon as the agent
    waits on its subagents.
    (#729)
  • The status views count down to the next update from when the last
    update finished, and show updating while an update runs, with a
    pulse on the web page unless the browser asks for reduced motion. The
    countdown used to start when an update started, so it reached 0s early
    and stayed there through the next update.
    (#740)
  • Each update lists the open issues assigned to the signed-in account
    once, whatever the number of routes, rather than once for each
    dispatch label. A failed listing now starts no new work of any kind,
    and shows as one scheduler failure.
    (#726)
  • A lead round's trigger names each sub-issue that woke it, with what
    changed, such as #687: checks finished, mergeable, in place of a
    count of the sub-issues that changed. The web page links each
    sub-issue.
    (#741)
  • No view shows the revision of main that a conversation or campaign
    round was given.
    (#741)
  • Once an assignment completes, or a conversation or campaign ends with
    its issue, the next update removes its worktree, and an assignment's
    local branch, to free the disk. Its record stays, so the home page,
    dreamcatcher status and dreamcatcher view still show it, without
    the worktree or a hand-resume command. A cancelled assignment keeps
    both. A removal that fails is printed with the update and not tried
    again. (#732)
  • The web home page always shows the Assignments, Conversations and
    Campaigns tabs, and dreamcatcher status a section for each kind.
    Before, a kind's tab and section were hidden while the daemon routed
    no label of that kind and had none of its work. Now the tab says that
    the daemon routes none of that kind, and links to the documentation
    that shows how to add the route to dreamcatcher.toml.
    (#751)
  • Round lists on the web and in the terminal omit successful outcomes,
    so running and exceptional outcomes stand out.
    (#753)
  • The upgrade guide explains how to reclaim the disk an earlier state
    format holds, after keeping any cancelled assignment's work you want.
    (#742)
  • The campaign guides explain when to use GitHub's merge queue, or leave
    its up-to-date requirement off, to avoid repeated agent rounds after
    each stage merges.
    (#754)

Fixed

  • A campaign's sub-issue card shows a new assignment in the update that
    starts it, instead of waiting one more update.
    (#739)
  • The documentation home page's headline fits a phone held sideways.
    (#743)
  • An invalid web feed position is now called a position in its error
    message, matching the terminal feed.
    (#748)
  • Switching theme on the web keeps the page's place in the address, so
    the home page stays on the tab it showed.
    (#744)
  • The feed shows the report of a Claude subagent that hands its report
    back, where it showed only a line saying the report was delivered
    elsewhere.
    (#729)

What's Changed

  • Express read-only document collections with Sequence and Mapping types by @alimanfoo in #725
  • Name the test suite's helpers for what they do by @alimanfoo in #727
  • The tick spends an issue listing per dispatch label by @alimanfoo in #726
  • Count down to the next update from when the last one finished, and show when an update is running by @alimanfoo in #740
  • Bound hanging tests with pytest-timeout and useful diagnostics by @alimanfoo in #730
  • Say what a browser test covers by @alimanfoo in #738
  • A campaign page's sub-issue cards lag a new assignment by one update by @alimanfoo in #739
  • Say what woke a lead round, and stop showing the revision of main by @alimanfoo in #741
  • Tell the user how to reclaim the disk an earlier state format holds by @alimanfoo in #742
  • Fit the docs headline to a phone held sideways by @alimanfoo in #743
  • Keep the selected home tab when switching theme by @alimanfoo in #744
  • Read a conversation round input by the same rule wherever it is read by @alimanfoo in #745
  • Remove the exports that work selection and round input reading left without a caller by @alimanfoo in #746
  • Compare GitHub logins and label names in one place each by @alimanfoo in #747
  • Name the scheduler's fault flag is_in_fault, as status does by @alimanfoo in #749
  • State the rule for completed specifications where every session reads it by @alimanfoo in #750
  • Say how changes between releases share one new state format by @alimanfoo in #752
  • Advise campaign users on GitHub's up-to-date requirement and merge queue by @alimanfoo in #754
  • Nothing retires ended agent work, so a dreamcatcher instance keeps a worktree for every piece it has carried by @alimanfoo in #732
  • Call the web feed's read position a position, not a cursor by @alimanfoo in #748
  • Always show every kind's tab, and say how to route an unrouted kind by @alimanfoo in #751
  • Show a round's outcome only when it is not successful by @alimanfoo in #753
  • Show a subagent's launch and report in the feed, not its steps by @alimanfoo in #729
  • Prepare v9.0.0 release by @alimanfoo in #760

Full Changelog: v8.0.0...v9.0.0