@staff0rd/assist 0.771.0 → 0.773.1
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
|
@@ -377,6 +377,8 @@ Rules are `- **<code>** — **<title>** — <text>` bullets, the title optional,
|
|
|
377
377
|
- `assist sessions nodes unlink <name>` - Remove a linked node
|
|
378
378
|
- `assist sessions nodes doctor [name] [--json]` - Find where a link is broken and how to fix it
|
|
379
379
|
- `assist sessions nodes logs <name> [-n, --lines <count>] [--json]` - Tail a linked node's `daemon.log`
|
|
380
|
+
- `assist sessions nodes restart <name> [--target daemon|webserver|both]` - Restart a linked node and wait for its link to reconnect
|
|
381
|
+
- `assist sessions nodes update <name>` - Update assist on a linked node and wait for its link to reconnect
|
|
380
382
|
- `assist sessions set-status <status>` - Report the current session's status (`running`/`waiting`) to the daemon
|
|
381
383
|
- `assist daemon run` - Run the sessions daemon in the foreground
|
|
382
384
|
- `assist daemon status` - Show daemon status, live sessions and each link's state
|
|
@@ -401,7 +403,7 @@ Rules are `- **<code>** — **<title>** — <text>` bullets, the title optional,
|
|
|
401
403
|
|
|
402
404
|
Web sessions are owned by a long-lived daemon process, not the web server: the server is a thin client relaying WebSocket traffic to the daemon over a local IPC socket (`~/.assist/daemon/daemon.sock`; named pipe `\\.\pipe\assist-sessions-daemon` on Windows). Restarting the web server leaves sessions running with scrollback intact. The daemon logs to `~/.assist/daemon/daemon.log` and auto-exits once no sessions remain and no client has connected for 60 seconds. See [docs/session-lifecycle.md](docs/session-lifecycle.md).
|
|
403
405
|
|
|
404
|
-
The topnav's **+** button (or Ctrl+N / Alt+N) opens the new-session dialog, which replaces the old draft / bug / prompt / design topnav buttons. Its mode selector picks `draft`, `bug`, `prompt` or `design`; in `prompt` mode a harness selector under it picks Claude, Codex or pi when those are exposed, and Up/Down moves between the two rows. `design` launches an interactive `claude` session with the vendored design system prompt appended via `--append-system-prompt`. Left/Right change the mode or harness, and Tab steps through a selector's options before moving on to the next control.
|
|
406
|
+
The topnav's **+** button (or Ctrl+N / Alt+N; Cmd+N on macOS) opens the new-session dialog, which replaces the old draft / bug / prompt / design topnav buttons. Its mode selector picks `draft`, `bug`, `prompt` or `design`; in `prompt` mode a harness selector under it picks Claude, Codex or pi when those are exposed, and Up/Down moves between the two rows. `design` launches an interactive `claude` session with the vendored design system prompt appended via `--append-system-prompt`. Left/Right change the mode or harness, and Tab steps through a selector's options before moving on to the next control.
|
|
405
407
|
|
|
406
408
|
Every hotkey is Alt plus a left-hand key, one keyboard row per screen region, and works while the terminal has focus; on macOS use Option.
|
|
407
409
|
|
|
@@ -413,6 +415,8 @@ Every hotkey is Alt plus a left-hand key, one keyboard row per screen region, an
|
|
|
413
415
|
|
|
414
416
|
Keys whose target is on Sessions return there first. Ctrl+/ (Cmd+/ on macOS) or the menu's **Keyboard shortcuts** item opens a sheet listing every sessions-view shortcut. The top-level tabs, the new-session button, the repo picker, the top-bar add agent / VS Code / done buttons, the active session's diff counts, the config cog and the menu button show their chord in their tooltip on hover and keyboard focus.
|
|
415
417
|
|
|
418
|
+
Each shortcut's chord can be overridden under `sessions.hotkeys.<action>`, e.g. `assist config set sessions.hotkeys.focusTerminal Ctrl+Alt+J -g`; restart the web server and reload the page to apply it. `assist sessions web --help` lists every action with its default. A chord is modifiers plus one key joined by `+`, such as `Alt+S`, `Ctrl+Shift+K` or `Mod+/`: the modifiers are `Ctrl`, `Alt` (`Option`), `Shift`, `Meta` (`Cmd`) and `Mod` (Cmd on macOS, Ctrl elsewhere), at least one of them other than Shift, and the key is a letter, digit, punctuation, `F1`–`F12` or a named key such as `Enter` or `ArrowUp`. Keys match the physical key, so macOS Option chords work. `navTab` takes modifiers only (e.g. `Ctrl+Alt`); its digits stay 1–5. An override replaces all of an action's default chords, and `assist config set` rejects an invalid chord. Tab card-cycling is fixed.
|
|
419
|
+
|
|
416
420
|
Every live session card carries an **add-agent** button (👥) that starts a second agent inside that session's existing workspace rather than allocating a new one. While several agents share a workspace, only the last one to leave triggers teardown.
|
|
417
421
|
|
|
418
422
|
A `run:` entry in `assist.yml` flagged `server:` (with an optional display-only `port:`) is a singleton **dev server**. `server:` takes a group name — `server: api` and `server: web` are separate slots, so a repo that serves an API and a front end can keep both live at once; `server: true` normalises to the group `default`. At most one server may be live per group per normalised git remote, i.e. across a clone and all its sibling clones. Session cards for such a repo show a **▶ start** button; the daemon rejects a second server run for that remote and group, and the web UI turns the conflict into a "replace running server?" prompt. The serving card shows a `serving :<port>` chip and a **⏹ stop** button, and the slot frees whenever that session stops. Non-`server` runs are unconstrained.
|
|
@@ -426,8 +430,12 @@ Each assist install is a **node** with its own daemon and web server. A node can
|
|
|
426
430
|
- `assist sessions nodes unlink <name>` — remove a link.
|
|
427
431
|
- `assist sessions nodes doctor [name] [--json]` — find where a link is broken and how to fix it.
|
|
428
432
|
- `assist sessions nodes logs <name> [-n, --lines <count>] [--json]` — tail a linked node's `daemon.log`; naming this node reads the local log.
|
|
433
|
+
- `assist sessions nodes restart <name> [--target daemon|webserver|both]` — the CLI form of **Restart <node>**: posts the node's `/api/restart`, waits up to 90s for its link to reconnect and prints its version.
|
|
434
|
+
- `assist sessions nodes update <name>` — the CLI form of **Update assist on <node>**: over a connected link it opens an `assist update` card on the node, waits for its daemon to come back, then restarts its web server; otherwise it posts the node's `/api/self-update`. It then prints the node's new version.
|
|
429
435
|
- `sessions.linkVersionCheck` — reaction to a version mismatch with a linked node: `block` (default) updates an older peer and holds the link until the versions match; `warn` proceeds anyway; `off` skips the check.
|
|
430
436
|
|
|
437
|
+
`nodes restart` and `nodes update` log `nodes <action> <name> trace=<id>` here and send that trace id to the node, and when the node can't be reached or doesn't come back they name the first broken `nodes doctor` hop.
|
|
438
|
+
|
|
431
439
|
With more than one node, a machine picker appears in the top nav and a machine selector in the new-session dialog; the dialog's selector defaults to the top nav's choice, which is remembered per browser. With a linked node selected in the picker, the hamburger's restart item becomes **Restart <node>**: it restarts that node's daemon and web server via `POST /api/restart?target=both&node=<node>` without reloading the page, toasts once the node's link reconnects, and on failure names the first broken `nodes doctor` hop (served locally by `GET /api/node-doctor?link=<node>`). The peer logs each restart as `restart <target> from=<viewer> trace=<id>`. The update item likewise becomes **Update assist on <node>**: over a connected link it opens an `assist update` card on that node, restarts the node's web server once the card completes, and toasts the node's new version; when the link is disconnected or `version-blocked` it falls back to `POST /api/self-update?node=<node>` (logged by the peer as `self-update: requested from=<viewer> trace=<id>`). The picker's menu shows each linked node's version, and the picker marks a node **behind** or **ahead** of this node's version. Linked nodes' daemon lines appear in this node's `daemon.log` tagged `[<node>]`. Every launch forwarded over a link and every `?node=` panel request carries a `traceId`, logged as `trace=<id>` by both nodes. `GET /api/health` reports the node's name, version, protocol, daemon reachability and its links' states. The retired `sessions.windows*` keys are ignored.
|
|
432
440
|
|
|
433
441
|
#### Linking machines over Tailscale
|