<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>stafford williams</title>
    <description>dev: what shipped each week</description>
    <link>https://staffordwilliams.com/dev/</link>
    <pubDate>Sun, 01 Nov 2026 10:13:19 GMT</pubDate>
    <lastBuildDate>Sun, 01 Nov 2026 10:13:19 GMT</lastBuildDate>
    <generator>Astro</generator>
    <item>
      <title>assist: User docs site, line comments in high-level review, extension project panes</title>
      <description>&lt;p&gt;Assist finally has user docs: a Starlight site with screenshots captured in a sandbox and a feedback loop from the browser extension straight to the agent writing them. High-level review gained line comments that post with the review.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Internal command badge&lt;/li&gt;&lt;li&gt;Docs feedback from the extension, routed to the doc writer session&lt;/li&gt;&lt;li&gt;User docs site on Astro Starlight with sandboxed screenshots&lt;/li&gt;&lt;li&gt;Issue and PR tokens from the prompt shown on cards&lt;/li&gt;&lt;li&gt;Every command synced as a skill&lt;/li&gt;&lt;li&gt;Deleted files collapsed by default in diffs&lt;/li&gt;&lt;li&gt;Expand toggle on every preview pane&lt;/li&gt;&lt;li&gt;Assist button and outline toggle in GitHub project side panes&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist run add&lt;/code&gt; &lt;code&gt;--env&lt;/code&gt;, &lt;code&gt;--pre&lt;/code&gt;, &lt;code&gt;--filter&lt;/code&gt;, &lt;code&gt;--quiet&lt;/code&gt;, &lt;code&gt;--param&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Gap expanders in high-level review diffs&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist github issue create --milestone&lt;/code&gt;, create in &lt;code&gt;/github&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Match box filters the structure tree by plain text&lt;/li&gt;&lt;li&gt;Line comments on diffs and test source, posted with the review&lt;/li&gt;&lt;li&gt;Search term highlighted in transcripts&lt;/li&gt;&lt;li&gt;Merge conflicts flagged in high-level review&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;summarise&lt;/code&gt; command removed&lt;/li&gt;&lt;li&gt;&lt;code&gt;sessions.topBar&lt;/code&gt; toggle removed&lt;/li&gt;&lt;li&gt;Draft Auto-start toggle renamed Auto-approve&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Staged changes lost across a pull&lt;/li&gt;&lt;li&gt;High-level review draft lost on close and reopen&lt;/li&gt;&lt;li&gt;Clones under &lt;code&gt;baseDir&lt;/code&gt; not found by origin&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist prs raise&lt;/code&gt; running on a merged or closed PR&lt;/li&gt;&lt;li&gt;Sessions not restored mid worktree seeding&lt;/li&gt;&lt;li&gt;Review tests read from the wrong commit&lt;/li&gt;&lt;li&gt;Review not reusing an existing PR checkout&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 25 Oct 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w43/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w43/</guid>
      <category>assist</category>
    </item>
    <item>
      <title>project-switch: Paprika grocery list in the launcher and CLI</title>
      <description>&lt;p&gt;The launcher picked up its first non-project integration this week: the Paprika shopping list. Adding milk is now ALT+SPACE, &lt;code&gt;grocery milk&lt;/code&gt;, Enter.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;grocery&lt;/code&gt; launcher item to add and remove Paprika grocery items&lt;/li&gt;&lt;li&gt;&lt;code&gt;project-switch grocery&lt;/code&gt; subcommand for Paprika grocery lists&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 25 Oct 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/project-switch/2026-w43/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/project-switch/2026-w43/</guid>
      <category>project-switch</category>
    </item>
    <item>
      <title>assist: Assist browser extension, high-level review approvals, monorepo verify</title>
      <description>&lt;p&gt;The criteria extension grew into a full assist extension that can send GitHub comments and drive PR reviews from the PR page. High-level reviews can now post approvals, and verify learned to handle monorepos.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Mark done or won&apos;t do from the backlog list play menu&lt;/li&gt;&lt;li&gt;Approve &amp;amp; start on item previews and refine plan updates&lt;/li&gt;&lt;li&gt;Sticky diff file headers that toggle on click&lt;/li&gt;&lt;li&gt;Search History by transcript text, keeping generated titles&lt;/li&gt;&lt;li&gt;&lt;code&gt;daemon.log&lt;/code&gt; trimmed in place at 50MB&lt;/li&gt;&lt;li&gt;Auto-start toggle for draft sessions&lt;/li&gt;&lt;li&gt;High-level review: Approve posts approval, reopen in a session&lt;/li&gt;&lt;li&gt;&lt;code&gt;prs.slackChannel&lt;/code&gt; with fallback&lt;/li&gt;&lt;li&gt;&lt;code&gt;review-ci&lt;/code&gt;: no-findings and failed-review comments, token usage&lt;/li&gt;&lt;li&gt;High-level review jump strip and full/half pane toggle&lt;/li&gt;&lt;li&gt;Rainbow pill when usage windows match&lt;/li&gt;&lt;li&gt;Assist browser extension: send GitHub comments, PR-page review menu&lt;/li&gt;&lt;li&gt;Parent issue linked in the preview pane&lt;/li&gt;&lt;li&gt;Server runs relaunch on restore once the port is free&lt;/li&gt;&lt;li&gt;Inline diffs in the high-level file tree, &lt;code&gt;collapsedPaths&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Queued commits listed by PR, with diff popover and deploy links&lt;/li&gt;&lt;li&gt;&lt;code&gt;verify.roots&lt;/code&gt; for monorepos; diffs against merge-base&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist github issue edit --fetch&lt;/code&gt; and &lt;code&gt;create --body&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Type to filter the repo picker&lt;/li&gt;&lt;li&gt;Alt+Q opens Updates; Alt+D focuses the preview action&lt;/li&gt;&lt;li&gt;Edit screenshot captions and groups in the pane&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Criteria extension rebranded as the assist extension&lt;/li&gt;&lt;li&gt;Peer PRs approved by anyone hidden from Next&lt;/li&gt;&lt;li&gt;Local daemon restart reloads the page&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Shell quoting breaking queries on Windows&lt;/li&gt;&lt;li&gt;Pending review lost when a thread failed&lt;/li&gt;&lt;li&gt;Terminals replayed and spawned at the wrong size&lt;/li&gt;&lt;li&gt;Multi-line args mangled on Windows spawn&lt;/li&gt;&lt;li&gt;Development-linked issues not counted&lt;/li&gt;&lt;li&gt;Pre-boot backlog locks treated as live&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w42/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w42/</guid>
      <category>assist</category>
    </item>
    <item>
      <title>project-switch: Per-command browser choice, launcher hotkeys, tab completion</title>
      <description>&lt;p&gt;The launcher got faster to drive this week. Favourite commands can be bound to their own key combo, and Tab completes a key before you type arguments. One link can also open under different browser profiles, with the launcher remembering which one you used last.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Per-command &lt;code&gt;hotkey&lt;/code&gt; (e.g. &lt;code&gt;alt+a&lt;/code&gt;, &lt;code&gt;ctrl+shift+1&lt;/code&gt;) that runs the command with one keystroke in the GUI launcher&lt;/li&gt;&lt;li&gt;A command&apos;s &lt;code&gt;browser&lt;/code&gt; can be a list of &lt;code&gt;{label, value}&lt;/code&gt; entries (e.g. one Firefox profile each), picked from a prompt in terminal &lt;code&gt;list&lt;/code&gt; and in the GUI launcher&lt;/li&gt;&lt;li&gt;The last browser picked for each command is remembered in &lt;code&gt;~/.project-switch-browser-choices.yml&lt;/code&gt; and offered first next time&lt;/li&gt;&lt;li&gt;Tab in the GUI launcher completes the input to the highlighted item&apos;s key, ready for typed arguments&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/project-switch/2026-w42/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/project-switch/2026-w42/</guid>
      <category>project-switch</category>
    </item>
    <item>
      <title>assist: Shared repo config, review-ci hardening, high-level review sessions</title>
      <description>&lt;p&gt;Repo config moved into the shared database so every node sees the same overrides. The CI reviewer got hardened for real repos, and high-level reviews can now run as their own session.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Grouped &lt;code&gt;--screenshot&lt;/code&gt; flags for PRs, seeded into the PR pane&lt;/li&gt;&lt;li&gt;Link to an item&apos;s running session&lt;/li&gt;&lt;li&gt;High-level review runs in a session with structure diffs and comments&lt;/li&gt;&lt;li&gt;Fast-forward branches with no upstream&lt;/li&gt;&lt;li&gt;Clone session cards always badged&lt;/li&gt;&lt;li&gt;Assist commands spill out of a clone&lt;/li&gt;&lt;li&gt;Your own open PRs on the Next screen, after peer PRs&lt;/li&gt;&lt;li&gt;Reviewers flag tautological tests; test hierarchy in high-level review&lt;/li&gt;&lt;li&gt;&lt;code&gt;review-ci&lt;/code&gt;: per-slot models, Entra, job summary, reopen and ready&lt;/li&gt;&lt;li&gt;Alt+S and Alt+A focus keys on the backlog&lt;/li&gt;&lt;li&gt;Draft chip in the Review dropdown&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist run add --server&lt;/code&gt; and &lt;code&gt;--repo&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Duplicate config array items&lt;/li&gt;&lt;li&gt;Next issues link to live sessions&lt;/li&gt;&lt;li&gt;Repo config overrides shared via the db, with &lt;code&gt;config import-repos&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Restart, pause and check for updates from the Updates page&lt;/li&gt;&lt;li&gt;Node links negotiate protocol ranges&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;review-ci&lt;/code&gt; skips bot-authored and fork PRs&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Stale local and fork PR branches on checkout&lt;/li&gt;&lt;li&gt;gh writes in subshells and &lt;code&gt;$( )&lt;/code&gt; not denied&lt;/li&gt;&lt;li&gt;Enter submitting before the repo&apos;s mode loads&lt;/li&gt;&lt;li&gt;Git console windows flashing from watch helpers&lt;/li&gt;&lt;li&gt;Codex sandbox failing on CI runners&lt;/li&gt;&lt;li&gt;Ended sessions not taken over&lt;/li&gt;&lt;li&gt;&lt;code&gt;gh close&lt;/code&gt;/&lt;code&gt;reopen --comment&lt;/code&gt; not denied&lt;/li&gt;&lt;li&gt;Daemon pipe shared across Windows users&lt;/li&gt;&lt;li&gt;Tailscale held by another user not diagnosed&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w41/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w41/</guid>
      <category>assist</category>
    </item>
    <item>
      <title>assist: Next view, Tailscale nodes, console clone watcher, keyboard shortcuts</title>
      <description>&lt;p&gt;A new Next view gathers the PRs to review, assigned issues and project pickups in one place. Nodes moved onto Tailscale, the clone watcher became a self-healing console, and nearly everything got a keyboard shortcut.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Updates page from the version badge&lt;/li&gt;&lt;li&gt;Daemon runs the assist auto-update loop&lt;/li&gt;&lt;li&gt;Configurable sessions hotkeys, Alt region keys and a shortcuts sheet&lt;/li&gt;&lt;li&gt;Restart and update linked nodes from the web UI and CLI&lt;/li&gt;&lt;li&gt;GitHub issues marked started on phase-1 runs&lt;/li&gt;&lt;li&gt;Screenshots attached via &lt;code&gt;gh --attach&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Console clone watcher that escalates and auto-resolves divergence&lt;/li&gt;&lt;li&gt;Close all sessions in a repo group, asking about nested ones&lt;/li&gt;&lt;li&gt;Nodes linked and served by Tailscale name&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist db drop-retired&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Criteria extension self-updates and prints its install link&lt;/li&gt;&lt;li&gt;Tab cycles focused session cards&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist ask&lt;/code&gt; reviewable preview and &lt;code&gt;/ask&lt;/code&gt; skill&lt;/li&gt;&lt;li&gt;Serving chip and banner ports link to localhost&lt;/li&gt;&lt;li&gt;&lt;code&gt;/review-ci&lt;/code&gt; installs a Claude and Codex PR review workflow&lt;/li&gt;&lt;li&gt;Next view: peer PRs, assigned issues and project pickups&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist show&lt;/code&gt; opens markdown in the preview pane&lt;/li&gt;&lt;li&gt;&lt;code&gt;worktree.install&lt;/code&gt; path list with a web mode picker&lt;/li&gt;&lt;li&gt;&lt;code&gt;/review-high-level&lt;/code&gt; command&lt;/li&gt;&lt;li&gt;&lt;code&gt;restructure.maxDepth&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Opt-in commands synced as skills&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist sessions output --server&lt;/code&gt; and &lt;code&gt;/run-logs&lt;/code&gt;&lt;/li&gt;&lt;li&gt;3+ server runs collapse into a dropdown&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;/watch&lt;/code&gt; retired in favour of the console watcher&lt;/li&gt;&lt;li&gt;SSH node links retired&lt;/li&gt;&lt;li&gt;Voice, journal and handover features removed&lt;/li&gt;&lt;li&gt;PR video upload cap raised to 100MB&lt;/li&gt;&lt;li&gt;&lt;code&gt;prs.required&lt;/code&gt; defaults to true&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Several viewers fighting over a terminal&apos;s size&lt;/li&gt;&lt;li&gt;Self-update and web server restart on Windows&lt;/li&gt;&lt;li&gt;Hung node-scoped requests never timing out&lt;/li&gt;&lt;li&gt;Clone closing over unlanded work&lt;/li&gt;&lt;li&gt;Pending question lost after a restart&lt;/li&gt;&lt;li&gt;Tasks killed by a daemon crash never waking&lt;/li&gt;&lt;li&gt;&lt;code&gt;gh api graphql&lt;/code&gt; issue mutations not denied&lt;/li&gt;&lt;li&gt;Node links not recovering live after latching&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w40/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w40/</guid>
      <category>assist</category>
    </item>
    <item>
      <title>project-switch: Built-in switch item in the launcher</title>
      <description>&lt;p&gt;Switching clients is now built into the launcher instead of needing a config workaround. A &lt;code&gt;switch&lt;/code&gt; row is always in the list and shows where you are. macOS also started honouring per-command browser arguments such as profiles.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Built-in &lt;code&gt;switch&lt;/code&gt; item in every launcher list, showing the active client and project (e.g. &lt;code&gt;apm / web&lt;/code&gt;); in the GUI it opens the client and project picker, in the terminal it runs the &lt;code&gt;switch&lt;/code&gt; prompt&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Config commands that re-invoke &lt;code&gt;project-switch switch&lt;/code&gt; are no longer intercepted and should be removed in favour of the built-in item&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Browser arguments (e.g. a profile flag) are now applied on macOS when the browser is already running, by launching a new instance with &lt;code&gt;open -n&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/project-switch/2026-w40/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/project-switch/2026-w40/</guid>
      <category>project-switch</category>
    </item>
    <item>
      <title>assist: Linked nodes, new-session dialog, releases page</title>
      <description>&lt;p&gt;The biggest week in a while. Assist nodes can now link to each other, over SSH too, replacing the old Windows proxy, and a keyboard-first new-session dialog arrived alongside a releases page that tracks live deployments.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Mouse wheel steps through last message history&lt;/li&gt;&lt;li&gt;SSH node links, &lt;code&gt;nodes doctor&lt;/code&gt;, peer logs and trace ids&lt;/li&gt;&lt;li&gt;Node-native panels and cloning on a linked node&lt;/li&gt;&lt;li&gt;Linked nodes replace the Windows proxy&lt;/li&gt;&lt;li&gt;Node name and health API&lt;/li&gt;&lt;li&gt;New-session dialog: Ctrl+N, repo picker, modes, harness, &lt;code&gt;?new&lt;/code&gt;&lt;/li&gt;&lt;li&gt;News nav tab via &lt;code&gt;news.showInNav&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Configurable default new-session mode&lt;/li&gt;&lt;li&gt;Build a backlog item with Codex or pi&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist refactor restructure --apply&lt;/code&gt; and &lt;code&gt;--check&lt;/code&gt; from the import graph&lt;/li&gt;&lt;li&gt;Codex usage tracking and per-harness limits&lt;/li&gt;&lt;li&gt;Clone watcher reaped on last dismissal&lt;/li&gt;&lt;li&gt;Codex routed through LiteLLM in the CLI and daemon&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist github issue edit --parent&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Releases page with live env state, graph and &lt;code&gt;assist releases configure&lt;/code&gt;&lt;/li&gt;&lt;li&gt;High-level review: native diff viewer and &lt;code&gt;/review-config&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Config-gated &lt;code&gt;cli-hook&lt;/code&gt; block on npm scripts (&lt;code&gt;cliHook.blockNpmRun&lt;/code&gt;)&lt;/li&gt;&lt;li&gt;Filter and keyboard nav in the PRs dropdown&lt;/li&gt;&lt;li&gt;Do-not-merge titles flagged in &lt;code&gt;assist prs status&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Releases tab hidden without configured streams&lt;/li&gt;&lt;li&gt;Server run slot keyed on origin and group&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Comments in Rust files not detected&lt;/li&gt;&lt;li&gt;Resume watch killed by a daemon restart&lt;/li&gt;&lt;li&gt;Watcher left running after worktree close&lt;/li&gt;&lt;li&gt;Silent respawned run sessions never settling&lt;/li&gt;&lt;li&gt;Session cwd not following a PR review&lt;/li&gt;&lt;li&gt;Version mismatch not blamed on a stale WSL daemon&lt;/li&gt;&lt;li&gt;PRs miscounted in &lt;code&gt;assist prs status&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Missing PR number link on review cards&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w39/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w39/</guid>
      <category>assist</category>
    </item>
    <item>
      <title>project-switch: Multiple tray webservers, webview navigation</title>
      <description>&lt;p&gt;The tray can now run several local web UIs side by side, in WSL or natively, each on its own port. Webview commands can also send an already-open window to a specific page without a reload. Along the way, Windows instance cleanup stopped relying on the retired &lt;code&gt;wmic&lt;/code&gt; tool and the launcher got its instant startup back.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;navigate: true&lt;/code&gt; on a webview command sends its URL to an already-open webview window, routing same-origin URLs client-side so single-page apps update without reloading&lt;/li&gt;&lt;li&gt;&lt;code&gt;webservers&lt;/code&gt; list in config: the tray can run several webservers, each with its own submenu, &lt;code&gt;port&lt;/code&gt;, log file and a &lt;code&gt;target&lt;/code&gt; of &lt;code&gt;wsl&lt;/code&gt; or &lt;code&gt;native&lt;/code&gt; (the old single &lt;code&gt;webserver&lt;/code&gt; key still works)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;The GUI launcher moved to eframe 0.36&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;The launcher opens instantly from the hotkey again&lt;/li&gt;&lt;li&gt;The webview page gets keyboard focus when the window opens or is brought to the front&lt;/li&gt;&lt;li&gt;Closing earlier instances on Windows uses Win32 APIs instead of &lt;code&gt;wmic&lt;/code&gt;, which is missing on newer Windows builds&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/project-switch/2026-w39/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/project-switch/2026-w39/</guid>
      <category>project-switch</category>
    </item>
    <item>
      <title>assist: Repo-conditioned advice, PR status overviews, high-level review checklist</title>
      <description>&lt;p&gt;Session advice became composable sections chosen per repo and fed to every harness. PR wrangling got a cross-repo status overview that posts straight to Slack, plus a checklist for high-level reviews.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;/prs-status&lt;/code&gt; previews and posts a Slack overview with threaded detail&lt;/li&gt;&lt;li&gt;Batch Slack posting with &lt;code&gt;post --parts&lt;/code&gt;, threaded in &lt;code&gt;/slack-post&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist github issue started&lt;/code&gt;&lt;/li&gt;&lt;li&gt;High-level PR review checklist, stepped in an overlay&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist prs status&lt;/code&gt; across repos with unresolved thread counts&lt;/li&gt;&lt;li&gt;Advice injected into Codex and pi sessions&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist chart&lt;/code&gt; draws a piped label/value series&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist advise&lt;/code&gt; composes repo-conditioned session advice&lt;/li&gt;&lt;li&gt;GitHub refs rendered in &lt;code&gt;--resolves&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Comments on rendered files and the markdown preview&lt;/li&gt;&lt;li&gt;Config search matches descriptions&lt;/li&gt;&lt;li&gt;Review output logged to &lt;code&gt;review.log&lt;/code&gt;&lt;/li&gt;&lt;li&gt;10MB cap on video uploads&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Advice include/exclude collapsed into one &lt;code&gt;advice.sections&lt;/code&gt; map&lt;/li&gt;&lt;li&gt;Watchers ordered above their repo group&lt;/li&gt;&lt;li&gt;Running row sweeps its left edge; static phase dot&lt;/li&gt;&lt;li&gt;Chain toggles named by destination&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Preview screenshots lost on reject&lt;/li&gt;&lt;li&gt;Chart y axis not fitting the data range&lt;/li&gt;&lt;li&gt;Watchers staying starred on restore&lt;/li&gt;&lt;li&gt;Review findings posting without a preview&lt;/li&gt;&lt;li&gt;Upload size rejection never reaching the user&lt;/li&gt;&lt;li&gt;Codex 0.154 provider overrides&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w38/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w38/</guid>
      <category>assist</category>
    </item>
    <item>
      <title>assist: Read-time estimates, usage Items tab, render-rate HUD</title>
      <description>&lt;p&gt;A busy week of web UI polish: a usage Items tab, tidier backlog rows and a render HUD for hunting re-render loops. &lt;code&gt;assist read-time&lt;/code&gt; arrived to estimate how long a PR takes to read.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Render-rate HUD in the web UI, toggled from the hamburger menu&lt;/li&gt;&lt;li&gt;&lt;code&gt;cli-hook&lt;/code&gt; denies piping or narrowing &lt;code&gt;assist verify&lt;/code&gt; output&lt;/li&gt;&lt;li&gt;Resume conversations from Activity&lt;/li&gt;&lt;li&gt;Codex reviewer runs on a LiteLLM model&lt;/li&gt;&lt;li&gt;Usage Items tab with summary band, repo and status filters, sorting&lt;/li&gt;&lt;li&gt;Video attachments in previews&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist read-time&lt;/code&gt; with prose-aware, length-decayed estimates&lt;/li&gt;&lt;li&gt;Auto-merge toggle on the PR preview&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist prs&lt;/code&gt; writes allowed via &lt;code&gt;cli-writes&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist litellm list-models&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist transcript merge --no-provenance&lt;/code&gt; and &lt;code&gt;--widen-audience&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Backlog rows: title on its own line, one phase meter, real buttons&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Stored plans showing more than one Review phase&lt;/li&gt;&lt;li&gt;Set-active render loop on the backlog page&lt;/li&gt;&lt;li&gt;Markdown re-renders wiping links&lt;/li&gt;&lt;li&gt;Markdown links not opening in a new tab&lt;/li&gt;&lt;li&gt;Repo labels missing for non-default origins&lt;/li&gt;&lt;li&gt;Missing focus ring on backlog row controls&lt;/li&gt;&lt;li&gt;gh missing-PR error not detected&lt;/li&gt;&lt;li&gt;File palette not scoped to the selected card&lt;/li&gt;&lt;li&gt;Profanity filter mangling &apos;damned if I know&apos;&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w37/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w37/</guid>
      <category>assist</category>
    </item>
    <item>
      <title>project-switch: macOS config error dialog</title>
      <description>&lt;p&gt;The macOS launcher now tells you when your config is broken. It shows the error in a dialog you can copy from, as Windows already did.&lt;/p&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Config errors in the GUI launcher on macOS now appear in a native dialog with &lt;code&gt;Copy Error&lt;/code&gt; and &lt;code&gt;Open Config&lt;/code&gt; buttons, instead of failing silently&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/project-switch/2026-w37/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/project-switch/2026-w37/</guid>
      <category>project-switch</category>
    </item>
    <item>
      <title>assist: Slack post previews, restricted path denies, transcript merging</title>
      <description>&lt;p&gt;Slack posts and issue comment edits now go through a preview first, and the CLI hook got stricter about restricted paths and truncated output. Meeting transcripts can now be merged across several VTT files.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;assist transcript clean --timestamps&lt;/code&gt; for markdown output&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist transcript merge&lt;/code&gt; with &lt;code&gt;NOTE&lt;/code&gt; provenance and &lt;code&gt;--select&lt;/code&gt; ranges&lt;/li&gt;&lt;li&gt;&lt;code&gt;cli-hook&lt;/code&gt; denies reads of restricted paths&lt;/li&gt;&lt;li&gt;&lt;code&gt;cli-hook&lt;/code&gt; denies truncating &lt;code&gt;prs list-comments&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Approval gate on &lt;code&gt;assist github issue edit-comment&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Screenshots on the issue create preview&lt;/li&gt;&lt;li&gt;Rule titles and collapsible scopes&lt;/li&gt;&lt;li&gt;&lt;code&gt;--ref&lt;/code&gt; trailers on &lt;code&gt;assist commit&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist sessions rename&lt;/code&gt; and the &lt;code&gt;/rename&lt;/code&gt; command&lt;/li&gt;&lt;li&gt;Slack post preview with a default channel and thread replies&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist github issue create --parent&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;cli-hook&lt;/code&gt; denies &lt;code&gt;head&lt;/code&gt;/&lt;code&gt;tail&lt;/code&gt; on gated commands&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Preview pane links not navigating on click&lt;/li&gt;&lt;li&gt;Resume not naming the daemon restart it needs&lt;/li&gt;&lt;li&gt;Quoted pipes in a body tripping the &lt;code&gt;cli-hook&lt;/code&gt; deny&lt;/li&gt;&lt;li&gt;Selection popover running off screen&lt;/li&gt;&lt;li&gt;Cards outside the selected repo not selectable&lt;/li&gt;&lt;li&gt;Preview footer text not selectable&lt;/li&gt;&lt;li&gt;File palette not scoped to the selected session&lt;/li&gt;&lt;li&gt;Missing markdown styles in the preview pane&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w36/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w36/</guid>
      <category>assist</category>
    </item>
    <item>
      <title>project-switch: Relevance-ranked launcher matches</title>
      <description>&lt;p&gt;The launcher got better at guessing what you meant. Typing part of a key now ranks the obvious match first, and pressing Enter opens what&apos;s at the top of the list instead of whatever comes first alphabetically.&lt;/p&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;start-hotkey.sh&lt;/code&gt; strips &lt;code&gt;CLAUDE*&lt;/code&gt; session variables before starting the tray, so apps launched from it don&apos;t inherit a Claude Code session environment&lt;/li&gt;&lt;li&gt;Launcher matches are ranked exact key first, then prefix, then mid-string, and Enter on a partial match opens the top suggestion shown (typing &lt;code&gt;mer&lt;/code&gt; now gives &lt;code&gt;mercury&lt;/code&gt; before &lt;code&gt;commercials&lt;/code&gt;)&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/project-switch/2026-w36/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/project-switch/2026-w36/</guid>
      <category>project-switch</category>
    </item>
    <item>
      <title>assist: Criteria browser extension, repo rules, split launch buttons</title>
      <description>&lt;p&gt;Acceptance-criteria outlining moved into GitHub itself through a browser extension, and repo rules became something assist can list, cite and capture from review comments.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;assist github issue create --project&lt;/code&gt; and &lt;code&gt;--status&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist sessions close&lt;/code&gt; and the &lt;code&gt;/close&lt;/code&gt; command&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist github issue create --type&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Roam Claude icon lights up on pi agent activity&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist rules index&lt;/code&gt; and &lt;code&gt;/fix-rules&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Capture a rule from a preview comment&lt;/li&gt;&lt;li&gt;Cite scoped rules from preview comments&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist transcript clean&lt;/code&gt; for &lt;code&gt;.vtt&lt;/code&gt; files&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist rules list&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Split launch buttons for prompt, draft, bug and design&lt;/li&gt;&lt;li&gt;Browser extension for outlining criteria on GitHub issues&lt;/li&gt;&lt;li&gt;&lt;code&gt;/miro&lt;/code&gt; slash command&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Criteria extension signed in CI and follows GitHub theme changes live&lt;/li&gt;&lt;li&gt;&lt;code&gt;add-rule&lt;/code&gt; fixes what caused the rule to be ignored&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Issue preview metadata and labels&lt;/li&gt;&lt;li&gt;Closing &lt;code&gt;&amp;lt;v&amp;gt;&lt;/code&gt; tags left in cleaned VTT cues&lt;/li&gt;&lt;li&gt;Session transcript lost after &lt;code&gt;/clear&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Criteria extension missing GitHub&apos;s issue body textarea&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w35/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w35/</guid>
      <category>assist</category>
    </item>
    <item>
      <title>assist: Issue edit previews, issue type normalising, Miro box extraction</title>
      <description>&lt;p&gt;GitHub issues got a proper editing loop, from previewing body edits and reshaping acceptance criteria to bulk-fixing issue types across a subtree. Miro boards can now be mined for their boxes as YAML.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Insert or convert an acceptance criteria section in the issue preview&lt;/li&gt;&lt;li&gt;Drag, indent and edit acceptance criteria in the issue preview&lt;/li&gt;&lt;li&gt;Save and replay named Miro extracts&lt;/li&gt;&lt;li&gt;Acceptance criteria outline in the issue preview&lt;/li&gt;&lt;li&gt;Filter, dedupe and write Miro extracts to a file&lt;/li&gt;&lt;li&gt;Pick Miro anchors in the preview pane&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist miro extract&lt;/code&gt; prints the boxes inside a board rectangle&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist github issue fix-structure&lt;/code&gt; normalises a subtree&apos;s issue types&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist watch&lt;/code&gt; runs a sync after a pull that needs one&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist github issue edit&lt;/code&gt; previews an existing issue&apos;s body&lt;/li&gt;&lt;li&gt;Collapsible sections in the issue preview&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist github issue comment&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Issue ref in the preview header links to the issue&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;assist github issue edit&lt;/code&gt; not detecting the web session&lt;/li&gt;&lt;li&gt;Flaky git origin lookups grouping sessions wrongly&lt;/li&gt;&lt;li&gt;Duplicate repos in the repo selector and history&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w34/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w34/</guid>
      <category>assist</category>
    </item>
    <item>
      <title>assist: Comment previews, sessions as activity refs, collapsible sidebar</title>
      <description>&lt;p&gt;Agents&apos; comments now need approval before posting, plus a batch of Windows host fixes.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Approval preview before agents post backlog or PR comments&lt;/li&gt;&lt;li&gt;Collapsible left sidebar&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist backlog record-session&lt;/code&gt; links a session to a backlog item&lt;/li&gt;&lt;li&gt;Checkout-only PR review&lt;/li&gt;&lt;li&gt;Draft checkbox in the PR preview&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Preview pane says what it&apos;s about to write&lt;/li&gt;&lt;li&gt;Web UI config edits target the right host&lt;/li&gt;&lt;li&gt;Windows host heal announces when it finishes&lt;/li&gt;&lt;li&gt;Daemon handshake rejects version skew&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Project config writes landing in the Windows global config&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist backlog show&lt;/code&gt; not printing comments&lt;/li&gt;&lt;li&gt;&lt;code&gt;pr-decision&lt;/code&gt; not reaching the Windows daemon&lt;/li&gt;&lt;li&gt;Windows working directories in the web config API&lt;/li&gt;&lt;li&gt;Stale sessions from deleted temp directories&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w33/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w33/</guid>
      <category>assist</category>
    </item>
    <item>
      <title>project-switch: Client and project picker in the GUI launcher</title>
      <description>&lt;p&gt;Switching clients now works from the hotkey window. Before, the GUI launcher couldn&apos;t run &lt;code&gt;switch&lt;/code&gt; because it needs a terminal, so the launcher now has its own client and project picker that offers the same choices.&lt;/p&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;A command that runs &lt;code&gt;project-switch switch&lt;/code&gt; now opens a client and project picker inside the GUI launcher instead of trying to start a terminal prompt with no console&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/project-switch/2026-w33/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/project-switch/2026-w33/</guid>
      <category>project-switch</category>
    </item>
    <item>
      <title>assist: Codex status and resume, fix-conflict, threaded PR comments</title>
      <description>&lt;p&gt;Codex sessions became first-class, and PR work picked up &lt;code&gt;fix-conflict&lt;/code&gt; and threaded comments.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Codex session history and resume&lt;/li&gt;&lt;li&gt;Last agent prompt shown above the terminal&lt;/li&gt;&lt;li&gt;Revert a whole folder, or everything, from the diff tree&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist config keys&lt;/code&gt; lists every config key&lt;/li&gt;&lt;li&gt;Comment gate covers C# and Razor&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist fix-conflict&lt;/code&gt; rebases a PR and resolves conflicts in a session&lt;/li&gt;&lt;li&gt;Usage tooltip shows when limits recover&lt;/li&gt;&lt;li&gt;Split review button with chain toggles and force re-run&lt;/li&gt;&lt;li&gt;Codex sessions report status on their cards&lt;/li&gt;&lt;li&gt;&lt;code&gt;docs/codex.md&lt;/code&gt; on how Codex resume works&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Session respawn split per harness&lt;/li&gt;&lt;li&gt;PR chain toggles remembered per session&lt;/li&gt;&lt;li&gt;PR draft state defaults from config&lt;/li&gt;&lt;li&gt;Phase prompts commit before the phase ends&lt;/li&gt;&lt;li&gt;Card titles use content fetched from a reference URL&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist prs comments&lt;/code&gt; grouped by thread&lt;/li&gt;&lt;li&gt;Finished sessions can be joined, with a reason when refused&lt;/li&gt;&lt;li&gt;Launcher relationship set at spawn&lt;/li&gt;&lt;li&gt;Harness threaded through activity, respawn and the web UI&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Two clones of one repo sharing a worktree identity&lt;/li&gt;&lt;li&gt;PR replies with backticks or newlines mangled; bodies can come from stdin&lt;/li&gt;&lt;li&gt;Codex status lost when the hook fired before registration&lt;/li&gt;&lt;li&gt;Resume flag dropped on respawn&lt;/li&gt;&lt;li&gt;Diff files out of file-tree order&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w32/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w32/</guid>
      <category>assist</category>
    </item>
    <item>
      <title>assist: Diff selection comments, masked secrets, Monaco editor, chained reviews</title>
      <description>&lt;p&gt;The web UI grew into a place to review and edit work, with selection comments on diffs, a Monaco editor and a proper diff panel, alongside masked config secrets and chained reviews.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;assist sync&lt;/code&gt; prunes commands it no longer ships&lt;/li&gt;&lt;li&gt;Revert a path&apos;s changes from the diff tree&lt;/li&gt;&lt;li&gt;Verify ring on the running dot&lt;/li&gt;&lt;li&gt;Artifact step in &lt;code&gt;/design&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Watcher session in the clone during worktree runs&lt;/li&gt;&lt;li&gt;Resuming a session whose worktree was reaped&lt;/li&gt;&lt;li&gt;Saving files from the &lt;code&gt;/file&lt;/code&gt; editor&lt;/li&gt;&lt;li&gt;Monaco file viewer at &lt;code&gt;/file&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Per-session diff panel with a file tree&lt;/li&gt;&lt;li&gt;Diff link in the session top bar&lt;/li&gt;&lt;li&gt;Masked config secrets in CLI and &lt;code&gt;/config&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Search and per-key help on the &lt;code&gt;/config&lt;/code&gt; page&lt;/li&gt;&lt;li&gt;&lt;code&gt;assist review --address-comments&lt;/code&gt; and &lt;code&gt;--announce&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Review chain toggles in the review dialog&lt;/li&gt;&lt;li&gt;Configurable live-session ceiling and float threshold&lt;/li&gt;&lt;li&gt;Linked GitHub issue on backlog cards&lt;/li&gt;&lt;li&gt;Comment on a diff selection&lt;/li&gt;&lt;li&gt;Current-branch diff scope&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Session top bar keeps ids visible&lt;/li&gt;&lt;li&gt;Session nesting survives daemon restarts&lt;/li&gt;&lt;li&gt;File palette opens paths in the active worktree&lt;/li&gt;&lt;li&gt;Release runs serialised in CI&lt;/li&gt;&lt;li&gt;Runs nest under the card that launched them&lt;/li&gt;&lt;li&gt;Unanchored review findings folded into the review body&lt;/li&gt;&lt;li&gt;Reviewers told never to ask for added comments&lt;/li&gt;&lt;li&gt;Terser PR body guidance shared by &lt;code&gt;raise&lt;/code&gt; and &lt;code&gt;edit&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;prs edit&lt;/code&gt; goes through the preview pane&lt;/li&gt;&lt;li&gt;Titles from what reference-only sessions go on to do&lt;/li&gt;&lt;li&gt;Flat session cards on a grid with a fixed sidebar&lt;/li&gt;&lt;li&gt;Usage tooltip colours limits by threshold&lt;/li&gt;&lt;li&gt;PR preview chain split into Review and Post steps&lt;/li&gt;&lt;li&gt;Worktree sessions nest under their backlog run&lt;/li&gt;&lt;li&gt;Scroll position restored per route&lt;/li&gt;&lt;li&gt;Review findings stack under the card&apos;s review button&lt;/li&gt;&lt;li&gt;Backlog runs pick the configured harness&lt;/li&gt;&lt;li&gt;PR comments cached under &lt;code&gt;~/.assist&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Retry racing the old worktree&apos;s teardown&lt;/li&gt;&lt;li&gt;Config scope toggle not showing its real write target&lt;/li&gt;&lt;li&gt;Shell splitter conflating heredocs and input redirects&lt;/li&gt;&lt;li&gt;Masked secrets written back as the mask&lt;/li&gt;&lt;li&gt;Console windows flashing on Windows git spawns&lt;/li&gt;&lt;li&gt;Codex hook using an unsupported schema&lt;/li&gt;&lt;li&gt;Diff base when &lt;code&gt;origin/HEAD&lt;/code&gt; is unset&lt;/li&gt;&lt;li&gt;Activity section truncating commits&lt;/li&gt;&lt;li&gt;Deleted clones in the repo list&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/assist/2026-w31/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/assist/2026-w31/</guid>
      <category>assist</category>
    </item>
  </channel>
</rss>
