@staff0rd/assist 0.458.1 → 0.460.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
@@ -312,6 +312,8 @@ From WSL, the selector can also surface and drive Windows-host repos (requires `
312
312
 
313
313
  - `sessions.includeCommittedChanges` — when true (`assist config set sessions.includeCommittedChanges true -g`), the session card's change counts and the `/diff` view span the whole session's work rather than only uncommitted changes, so the change link survives the agent committing. The base is the session's own starting point where that is known: the card passes its Claude session id to `/api/git-status` and `/api/diff`, which map it to a backlog item (via `phase_usage`) and take the parent recorded by `assist commit` for that item's first commit (falling back to `<first commit>^`). Otherwise — no session id, no recorded commit, a root commit, or an unreachable database — it falls back to `git merge-base HEAD <default branch>`, and finally to `HEAD`. Defaults to false; a silent no-op on the default branch, on detached HEAD, or when nothing resolves. The lookup is cached per session so the 5s card poll never waits on Postgres.
314
314
 
315
+ - `sessions.topBar` — when true (`assist config set sessions.topBar true -g`), the sessions view moves the active session's phase description, elapsed time and restored indicator off its card into a sticky top bar inside the terminal panel (served to the UI by `GET /api/session-layout`). The bar stays in the terminal half when the PR preview split opens and is absent in the transcript view; cards keep their chips, title, status dot, undurable reason, context % and change counts. Defaults to false, which renders the view exactly as before.
316
+
315
317
  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.
316
318
 
317
319
  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**: