Config secrets stopped being printable. assist config get and config list mask anything the schema marks as a secret, the /config page renders them through ConfigSecretInput rather than as plain text, and — the part that actually mattered — restoreConfigWriteSecrets makes sure a write that round-trips a masked value writes the real one back instead of persisting the mask. It’s an easy bug to ship and a miserable one to notice.

The /config page also got usable at its current size. There’s a search box (ConfigKeySearchInput) to filter keys, and every key now shows the note its command declared through configHelp, so the page explains itself instead of being a list of dotted paths. Doing that meant pulling the configHelp entries out into per-area data modules, which is now the documented convention.

Reviews learned to chain. assist review --address-comments hands off to a follow-up session that works through the comments, --announce posts the PR to Slack when the review lands, and approving from the PR preview can kick the whole chain off via chainReviewAndPost. In the web UI those became ReviewChainToggles on the review dialog, so I pick the chain when launching rather than remembering flags. Findings now stack under the review button on the card instead of hiding behind a dialog.

Sessions got a few structural knobs: worktree sessions nest under the backlog run that launched them (nestUnderBacklogRun), the live-session ceiling is configurable via maxLiveSessions rather than hard-coded, and so is the threshold at which a waiting card floats to the top. Scroll position is now restored per route, which sounds trivial until you’ve lost your place in a long backlog list for the tenth time.

Two smaller things worth noting: backlog cards show their linked GitHub issue via useItemTrackers, and every git spawn on Windows now passes the flag that stops a console window flashing up — which had been making the daemon look possessed.