Speed
- Opening a very long chat drops from 1,174 ms to 94 ms (12.5× faster). Across five real chats the average open falls from 259 ms to 36 ms (−86%).
- A turn that touched thousands of files no longer stalls the chat (#1711).
- New chats appear without waiting on git (#1701).
- Older chat history pages load about 2.3× faster (#1692: 2,551 → 1,107 ms over a 54,000-event backfill).
- The chat composer stops re-rendering on every streamed event: renders per event 249 → 181, script time per event −12% (#1691).
- Chat windows trim old events in steps instead of one per update (#1690).
- Closed dialogs stop re-rendering while a chat streams: dialog renders over 300 streamed events drop 502 → 185 for the handoff dialog and 158 → 102 for the remaining dialogs (#1715, #1717).
- Every
adecommand starts about 145 ms faster (657 → 511 ms) by reusing Node’s compile cache for the CLI bundle (#1718). - Opening a terminal or editor, or checking sign-in, no longer freezes the app for about a second while the login shell re-runs (#1709: ~1,050 ms → 1 ms).
- Credential lock waits no longer freeze the background service (#1706: 183 ms blocked → 0).
- Recent projects summarize 50× faster (#1661: 25.3 → 0.5 ms per pass).
- Account settings sync stops asking the relay when nothing changed: background relay requests drop about 20× (2,880 → ~144 per day per machine) (#1682), and remote changes still apply as they arrive (#1696).
- Background cleanup of automation history drops from 150 statements / 241 ms to 3 statements / 6.3 ms per 50 relay events (#1708).
- The sync poll wakes about 5× less when idle (#1674), and the roster’s warm build is 38% faster (#1712).
- The Your Macs card stops polling while nothing can see it (#1667).
- Lane file counts are cached by HEAD and index state (#1707), and live durations share one timer (#1660).
Sync & multi-machine reliability
- A sync to a dead or unreachable host gives up in 5 s instead of about 75 s, and stale hosts are reclaimed (#1694).
- Opening a project waits out a peer’s database lock instead of failing on it (#1693).
- Account sync and sync status finish on slow links (#1705).
- A project that follows another machine is reported as such, instead of timing out (#1685).
- Recovery controls stay available when sync activation fails (#1695), and a failed sync-host activation stops re-running for every caller (#1664).
- Sync-host activation no longer waits on the status snapshot (#1680).
- Sync status reads wait for the first readiness check (#1697).
- Shared project brains check their identity before use (#1698).
- A loopback probe timeout no longer reads as a shadowed port (#1672).
- When pairing stalls, the machine and route are named (#1703), and Repair appears beside the sync-host outcome that explains it (#1710).
Fixes
- Search no longer wedges the background service, and chats can be re-parented and keep their links across a project move (#1716).
- Account settings and local sync status can no longer hang the app for 30 s (#1666, #1671).
- Opening a project reports why it failed and groups errors by the real cause (#1678).
- Moving a project releases old log files, moves proof paths, and carries closed lanes’ Claude history (#1677).
- Progress notes no longer raise false “Needs you” hands in chat (#1679).
- Branch import works from the web client (#1687).
- Lane actions accept the lane-id argument they document (#1673).
- A turn that settles after shutdown no longer reads the move store once it has closed (#1669).
- A missing folder or file no longer counts as an allowlist violation, and a missing path outside the allowlist no longer reveals that it is missing (#1668, #1670, #1702).
- The Mac desktop driver keeps retrying after a transient crash instead of giving up, and stops retrying once nothing wants it; explicit screenshots get a longer capture budget (#1681, #1704).
- Runtime endpoint ownership is verified before repair, and a service-owned endpoint is no longer mistaken for another copy of ADE (#1699, #1676).
- Teardown stops the producers before it disposes the pool (#1675).
Features
- ⌘-chords for the Work page, with a shortcut sheet on
?(#1686). - Sign in to an MCP server once, for every agent (#1688).
Diagnostics
- Error log lines name the failure rather than the event (#1684), and Error values in log details include their message and stack (#1700).
- Expected shutdown states no longer open Sentry issues (#1683), and Sentry noise is filtered out with
run_ade_actionerrors in their own bucket (#1663).
