Highlights
Review GitHub pull requests, bring failed checks into the agent composer, enable optional PR auto-fix, and dictate a prompt. This release also improves first-run setup, thread status, and Windows reliability.
- A workspace for GitHub pull requests — Open the Pull Requests page to review summaries, code, comments, and check results across projects. Send a review finding or failed check to the linked thread's composer with its PR context attached. A row above the composer keeps PR and CI status visible while you work.
- Optional auto-fix for new PR feedback — Enable auto-fix on a thread to ask its agent to handle new failed checks and review comments on an open GitHub PR. The watcher checks about every two minutes, skips busy or waiting threads, and allows up to three automatic turns per thread and PR during a server session. It starts from new feedback after activation and does not guarantee a fix or merge.
- English dictation in the composer — Use the microphone to turn speech into a draft after downloading a transcription model. Processing runs on the connected environment's server. With a local environment that is your machine; with a remote environment, audio goes to that server.
- A clearer first run on Windows — See which coding agents and Git tools are ready, install missing tools, and sign in from setup. Newly installed tools are detected without restarting the app. One signed-in agent is enough to start your first thread, and GitHub repository browsing includes your organizations.
- PR merge state and thread wrap-up stay together — See GitHub merge queue and auto-merge state, with actions that follow the repository's rules. Choose whether a thread wraps up after its PR merges, using a per-thread setting or the app-wide default.
Also improved
- Long database migrations no longer look like a failed desktop startup. History backfills avoid repeated scans, and interrupted sessions recover more predictably.
- Windows worktrees handle long paths and cleanup failures more reliably. New worktrees can use a refreshed upstream base when the local branch is behind.
- Finished subagents stop showing as Running, their original prompts remain visible, and non-blocking Codex questions stay answerable while work continues.
- Images referenced or returned by agents render inline, including Claude image output. Missing files keep their file link.
- Press Tab in an empty composer to accept a Claude prompt suggestion. Long suggestions are easier to read.
- The latest task plan stays available in long conversations after reloading, with clearer progress and step counts in the activity panel.
Complete technical changes
What's Changed
- feat: pull requests page and review tools by @badcuban in #210
- fix(deps): bump fast-uri to 3.1.7 and pnpm to 10.34.5 by @badcuban in #209
- fix(agents): subagents no longer stay Running after they finish by @badcuban in #206
- fix(web): panel button keeps its counts until the tab that shows them is open by @badcuban in #207
- fix(web): agent page resizes now scale to fit the browser panel by @badcuban in #205
- feat(server): tell agents about the Threadlines browser panel by @badcuban in #204
- feat(web): pull request list and detail polish by @badcuban in #217
- feat(web): show inline previews for images agents refer to by @badcuban in #216
- fix(desktop): threads waiting on background agents stay active in the taskbar badge by @badcuban in #215
- feat(web): task list in the activity popover sits on a spine by @badcuban in #213
- fix(web): pull requests listed by two environments show as one row by @badcuban in #218
- fix(web): pull request tab fits the narrow side panel by @badcuban in #219
- feat(web): diff panel lists files edge to edge and keeps them across refetches by @badcuban in #208
- feat(web): the + menu marks a live Agents surface with the pulsing dot by @badcuban in #220
- chore(deps): bump qs from 6.15.3 to 6.16.0 by @dependabot[bot] in #211
- fix(deps): pin @xmldom/xmldom to 0.8.15 for GHSA-6gmq-8vp8-gcm6 by @badcuban in #226
- fix(web): hide the browser preview button on the web build by @badcuban in #214
- fix(web): composer footer collapses its controls together and keeps the stash visible by @badcuban in #212
- feat(web): the Merge button remembers the method last run on a repository by @badcuban in #222
- fix(web): pull request tab stops offering a merge GitHub will refuse by @badcuban in #223
- feat(web): links to the thread's pull request open the Pull request tab by @badcuban in #224
- fix(web): source control update toasts return on each new release by @badcuban in #230
- feat(pull-requests): list rows say auto-merge, and arming never merges outright by @badcuban in #227
- fix(agents): keep finished subagents idle after messages by @badcuban in #228
- fix(web): a merged pull request wraps up its thread once, and a setting can turn that off by @badcuban in #225
- fix: worktree threads clean up on Windows, show their state, and start from current main by @badcuban in #229
- fix(setup): complete Windows first-run setup by @badcuban in #221
- ci: run required checks for merge queue entries by @badcuban in #232
- feat(pull-requests): pull request panel understands a merge queue by @badcuban in #233
- fix(chat): support nonblocking Codex questions by @badcuban in #231
- fix(server): migration 050 no longer stalls startup on large databases by @badcuban in #234
- fix(desktop): a slow database migration no longer counts as a failed start by @badcuban in #235
- fix(web): context window categories keep one fixed color each by @badcuban in #236
- fix(web): source control update toast stays up and shows progress by @badcuban in #237
- fix(web): subagent transcript always shows the prompt it was spawned with by @badcuban in #238
- fix(web): show full Claude prompt suggestions on overflow by @badcuban in #239
- fix(server): make bootstrap turn starts idempotent by @badcuban in #240
- docs: PR rules leave small bundles to the developer and drop the checklist by @badcuban in #241
- feat(web): pull request list splits what you can merge from what you cannot by @badcuban in #242
- fix(web): Claude prompt suggestion is bare text instead of a boxed chip by @badcuban in #243
- feat(web): dock the thread's pull request on the composer by @badcuban in #244
- feat(web): Tab accepts the Claude prompt suggestion by @badcuban in #245
- fix(chat): images an agent reads no longer show as broken by @badcuban in #247
- feat(web): pull requests set to merge when ready show GitHub's merge queue icon by @badcuban in #246
- fix(server): worktree cleanup removes half-deleted checkouts by @badcuban in #249
- fix(server): the latest task list survives a thread's activity window by @badcuban in #250
- fix(web): activity popover task dots sit on the line and count finished steps by @badcuban in #248
- fix(ci): release gate no longer fails when a merge cancels main's CI run by @badcuban in #251
- fix(web): composer pull request row loads whole, closes, and follows the merge queue by @badcuban in #252
- feat(server): a thread can fix its pull request's failing checks and review comments on its own by @badcuban in #254
- feat(chat): dictate into the composer with local speech-to-text by @badcuban in #253
- fix(server): wait for saved session state in stop test by @badcuban in #255
- fix(web): sheet-mode panel puts its close button at the edge by @badcuban in #262
- fix(web): command palette stays open under StrictMode in dev by @badcuban in #263
- fix(web): the pull request row's wrap-up box is per thread and its Settings link works by @badcuban in #264
- feat(marketing): refresh the site and prepare stable launch media by @badcuban in #265
- docs(release): prepare the 0.4.0 changelog and announcement by @badcuban in #266
Direct changes
7e254934Clarify source control update progress across navigationa42e16eeComplete Windows first-run setup66fee74bPin @legendapp/list so its patch survives a fresh resolvea1958abdAdd session copy and desktop update confirmation
Full Changelog: v0.3.8...v0.4.0