Compare commits
3 changed files with 5 additions and 5 deletions
|
|
@ -617,7 +617,7 @@ auto-update is a no-op — rebuild manually.
|
||||||
|
|
||||||
The dashboard surfaces pending updates per agent: a clickable
|
The dashboard surfaces pending updates per agent: a clickable
|
||||||
"needs update ↻" badge appears whenever the marker differs from
|
"needs update ↻" badge appears whenever the marker differs from
|
||||||
current rev. The badge POSTs `/api/rebuild/<name>`, calling the same
|
current rev. The badge POSTs `/rebuild/<name>`, calling the same
|
||||||
`auto_update::rebuild_agent` path so manual triggers and the
|
`auto_update::rebuild_agent` path so manual triggers and the
|
||||||
startup scan can't drift. When at least one container is stale, a
|
startup scan can't drift. When at least one container is stale, a
|
||||||
top-level `↻ UPD4TE 4LL` button appears that loops over every
|
top-level `↻ UPD4TE 4LL` button appears that loops over every
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ somewhere."
|
||||||
| `Destroy` | For future use (`destroy --purge` does real I/O). Variant exists so the wire shape doesn't change later; not currently routed through the queue. |
|
| `Destroy` | For future use (`destroy --purge` does real I/O). Variant exists so the wire shape doesn't change later; not currently routed through the queue. |
|
||||||
| `Restart` | Stop + start a container without touching config (~5-10s). Routed through the queue so it serialises against in-flight rebuilds for the same agent — prevents a restart racing a rebuild mid-flight. Sources: dashboard ↺ button, the `restart` MCP tool. |
|
| `Restart` | Stop + start a container without touching config (~5-10s). Routed through the queue so it serialises against in-flight rebuilds for the same agent — prevents a restart racing a rebuild mid-flight. Sources: dashboard ↺ button, the `restart` MCP tool. |
|
||||||
| `PermChange` | Write a tool-group or capability change to the shared JSON file (`tool-groups.json` / `capabilities.json`), then rebuild the agent so the updated `HIVE_TOOL_GROUPS` / `HIVE_CAPABILITIES` env var takes effect. Serialising the file write through the queue prevents concurrent dashboard batch-apply actions from racing on the shared file. After a successful file write, emits `CapabilitiesChanged` or `ToolGroupsChanged` SSE snapshot so the P3RM1SS10NS tab updates live. |
|
| `PermChange` | Write a tool-group or capability change to the shared JSON file (`tool-groups.json` / `capabilities.json`), then rebuild the agent so the updated `HIVE_TOOL_GROUPS` / `HIVE_CAPABILITIES` env var takes effect. Serialising the file write through the queue prevents concurrent dashboard batch-apply actions from racing on the shared file. After a successful file write, emits `CapabilitiesChanged` or `ToolGroupsChanged` SSE snapshot so the P3RM1SS10NS tab updates live. |
|
||||||
| `GracefulStop` | Quiesce then stop a container (the `?graceful=true` path on `/api/kill/<agent>`). Signals the harness (its next `Recv` returns `GracefulStop` — the inbound fence — so it runs one stop-checkpoint turn to flush durable `/state`, then exits), waits for it to drain (bounded by a 3-min timeout → hard-stop fallback), then runs the normal container-stop teardown. Queued so it can't race an in-flight rebuild for the same agent. |
|
| `GracefulStop` | Quiesce then stop a container (the `?graceful=1` path on `/kill/<agent>`). Signals the harness (its next `Recv` returns `GracefulStop` — the inbound fence — so it runs one stop-checkpoint turn to flush durable `/state`, then exits), waits for it to drain (bounded by a 3-min timeout → hard-stop fallback), then runs the normal container-stop teardown. Queued so it can't race an in-flight rebuild for the same agent. |
|
||||||
|
|
||||||
**Intentionally not queued** (sub-second ops): the *hard* `start`, `stop`, `kill`. (A *graceful* stop is the `GracefulStop` kind above — it takes a checkpoint turn, so it rides the queue.)
|
**Intentionally not queued** (sub-second ops): the *hard* `start`, `stop`, `kill`. (A *graceful* stop is the `GracefulStop` kind above — it takes a checkpoint turn, so it rides the queue.)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -838,9 +838,9 @@ the per-agent `⋮` menu and the bulk selection bar.
|
||||||
**Graceful stop** — the `■ ST0P` confirm dialog (per-agent and
|
**Graceful stop** — the `■ ST0P` confirm dialog (per-agent and
|
||||||
bulk) carries a `stop gracefully — let the agent finish its turn
|
bulk) carries a `stop gracefully — let the agent finish its turn
|
||||||
and flush state before the container stops` checkbox. When ticked,
|
and flush state before the container stops` checkbox. When ticked,
|
||||||
the action POSTs `/api/kill/<name>?graceful=true` (the bulk path
|
the action POSTs `/kill/<name>?graceful=1` (the bulk path appends
|
||||||
appends the flag per-agent); unticked is the instant hard stop
|
the flag per-agent); unticked is the instant hard stop
|
||||||
(`/api/kill/<name>` with no query). The backend enqueues a
|
(`/kill/<name>` with no query). The backend enqueues a
|
||||||
`GracefulStop` rebuild-queue transient: the harness runs one
|
`GracefulStop` rebuild-queue transient: the harness runs one
|
||||||
stop-checkpoint turn (so the agent can flush `/state`) and then
|
stop-checkpoint turn (so the agent can flush `/state`) and then
|
||||||
exits, with a 3-minute timeout that falls back to a hard stop. The
|
exits, with a 3-minute timeout that falls back to a hard stop. The
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue