@staff0rd/assist 0.444.1 → 0.446.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -108,7 +108,7 @@ After installation, the `assist` command will be available globally. You can als
108
108
  - `assist prs reply <comment-id> <body>` - Reply to a comment thread without resolving it
109
109
  - `assist prs comment <path> <line> <body>` - Add a line comment to the pending review
110
110
  - `assist review [number] [options]` - Run Claude and Codex in parallel to review the open PR for the current branch. The diff is fetched from GitHub (base SHA → head SHA via `gh pr diff`), so stale local base branches don't pollute the review; fails fast if no PR is open. By default, prompts before posting line-bound comments and then prompts again to submit the pending review (defaulting to no). Findings whose lines fall outside the diff are skipped with a warning rather than being silently dropped by GitHub. Cached `claude.md` / `codex.md` / `synthesis.md` are reused when present; if any reviewer is re-run, the synthesis is invalidated.
111
- - `[number]` - Run `gh pr checkout <number>` first, then review that PR's branch. If the checkout fails (dirty working tree, unknown PR number), the review aborts
111
+ - `[number]` - Run `gh pr checkout <number>` first, then review that PR's branch. If the checkout fails (dirty working tree, unknown PR number), the review aborts. On a repo with parallel work enabled the checkout is placed by the worktree allocator rather than taking over the tree it was invoked in, so a workspace holding uncommitted or unpushed work is left untouched and the PR lands in its own `<repo>-N` (see [docs/parallel-work.md](docs/parallel-work.md))
112
112
  - `--no-prompt` - Skip all confirmations
113
113
  - `--submit` - Default the submit prompt to yes (or auto-submit when combined with `--no-prompt`)
114
114
  - `--force` - Clear all cached files and re-run every phase
@@ -309,9 +309,16 @@ From WSL, the selector can also surface and drive Windows-host repos (requires `
309
309
  - `sessions.windowsDaemonHost` / `sessions.windowsDaemonPort` — where the WSL daemon reaches the native Windows daemon (defaults `127.0.0.1` / `51764`; set the host to the Windows IP on WSL2 NAT-mode networking).
310
310
  - `sessions.windowsVersionCheck` — how the WSL↔Windows daemon handshake reacts to a protocol-version mismatch: `block` (default) refuses creates and auto-heals the host, `warn` logs and proceeds anyway, `off` skips the check. Use `warn`/`off` to keep working across an unfixable version gap.
311
311
 
312
+ - `sessions.includeCommittedChanges` — when true (`assist config set sessions.includeCommittedChanges true -g`), the session card's change counts and the `/diff` view span the whole branch — `git diff` against `git merge-base HEAD <default branch>` — instead of only uncommitted work, so the change link survives the agent committing. Defaults to false; a silent no-op on the default branch, on detached HEAD, or when no default-branch ref resolves.
313
+
312
314
  A `run:` entry in `assist.yml` flagged `server: true` (with an optional display-only `port:`) is treated as a singleton **dev server**: at most one may be live per normalised git remote (`getCurrentOrigin`), i.e. across a clone and all its sibling clones of the same repo. Every session card for a repo that defines a `server: true` run shows a **▶ start** button (surfaced by `GET /api/server-runs?cwd=`); clicking it sends `create-run`. The daemon enforces the singleton on `create-run` (and on relaunch via retry) — if a server run is already live for that remote it rejects with a conflict instead of starting a second one that would collide on the port. The web UI turns that conflict into a "replace running server?" prompt; confirming stops the old server and starts the new one, declining leaves it untouched. The serving session's own card shows a `serving :<port>` chip and a **⏹ stop** button (stop leaves a relaunchable card rather than dismissing it), and the slot frees automatically whenever that session stops, exits, or is killed. Non-`server` runs (`build`, `test`, …) are unconstrained.
313
315
 
314
- Concurrent sessions in one repo can be isolated with native git worktrees instead of keeping multiple physical clones (opt in per repo, default off): see [docs/parallel-work.md](docs/parallel-work.md).
316
+ Concurrent sessions in one repo can be isolated with native git worktrees instead of keeping multiple physical clones: see [docs/parallel-work.md](docs/parallel-work.md). Two per-repo flags control it, both **default off**:
317
+
318
+ - `worktree.enabled` (parallel work) — spill concurrent sessions into adjacent `<clone>-N` worktrees. Off means every session on the repo shares its single working copy, exactly as before.
319
+ - `worktree.trunk` (trunk-based) — on, a spilled worktree's branch tracks `origin/<trunk>` so commits land on the mainline. Off (the default, branch-workflow) it starts off the remote default branch with no mainline tracking, leaving the session to raise its own branch and PR.
320
+
321
+ Neither flag leaves permanent state on the clone: nothing writes to the clone's `.git/config` (`assist commit` derives its push refspec from the current branch's upstream instead of relying on `push.default`), so turning parallel work back off leaves the repo as it was.
315
322
 
316
323
  When iterating on assist itself: web server changes only need the `assist sessions` process restarted — sessions survive. Daemon/session-core changes need `assist daemon restart` to load the new code; this kills the PTYs, then claude sessions — including assist sessions that wrap claude, like `assist draft` — are auto-respawned via `claude --resume` with scrollback starting fresh, while run sessions (and assist sessions whose claude sessionId was never discovered) reappear as not-restored tiles that can be retried. A `--once` draft/bug/refine session is respawned through its assist wrapper instead of bare `claude --resume`, so its `assist signal done` watcher is re-established and the card still auto-closes.
317
324
 
@@ -319,7 +326,7 @@ When iterating on assist itself: web server changes only need the `assist sessio
319
326
  - `assist draft [description] [--once]` (alias: `feat`) - Launch Claude in `/draft` mode, chain into next on `/next` signal; an optional `description` is forwarded as `/draft <description>`; `--once` exits when the done signal arrives after the initial draft completes; `--resume-session <id>` resumes an interrupted Claude session (used by the sessions daemon when it restarts a running item)
320
327
  - `assist bug [description] [--once]` - Launch Claude in `/bug` mode, chain into next on `/next` signal; an optional `description` is forwarded as `/bug <description>`; `--once` exits when the done signal arrives after the initial bug report completes; `--resume-session <id>` resumes an interrupted Claude session (used by the sessions daemon when it restarts a running item)
321
328
  - `assist refine [id] [--once] [--harness <claude|codex|pi>]` - Launch a coding harness in `/refine` mode to refine a backlog item; prompts for selection when no id given; `--once` exits when the done signal arrives after refinement completes; `--harness` picks the engine (`codex` runs `codex -C <cwd> <prompt>`; `pi` runs `pi <prompt>` in the item's cwd), defaulting to the configured `harness.engine` (Claude); `--resume-session <id>` resumes an interrupted Claude session (used by the sessions daemon when it restarts a running item)
322
- - `assist review-pr-comments [number]` - Launch Claude in `/review-pr-comments` mode to process PR review comments (single session, no chaining); when a PR number is supplied, checks out that PR via `gh pr checkout` first
329
+ - `assist review-pr-comments [number]` - Launch Claude in `/review-pr-comments` mode to process PR review comments (single session, no chaining); when a PR number is supplied, checks out that PR via `gh pr checkout` first — placed by the worktree allocator on a repo with parallel work enabled, so the comment pass never disturbs a workspace holding work in progress
323
330
  - `assist signal next [id]` - Write a next signal to chain into `assist next`; when `id` is supplied, the parent launcher runs that backlog item directly
324
331
  - `assist signal done [id]` - Write a done signal marking the session's initial task complete; an optional `id` surfaces the backlog item the session created onto its session card; `--once` launch sessions exit when it arrives, plain sessions ignore it
325
332