@dreb/coding-agent 2.43.3 → 2.44.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
@@ -81,7 +81,7 @@ Or use a custom provider (corporate proxy, Bedrock, etc.) — see [Custom provid
81
81
 
82
82
  Then just talk to dreb. All 11 built-in tools are enabled by default: `read`, `write`, `edit`, `bash`, `grep`, `find`, `ls`, `web_search`, `web_fetch`, `subagent`, and `wait`. Use `--tools` to restrict to a subset (e.g., `--tools read,grep,find,ls` for read-only). Three additional tools — `search`, `skill`, and `tasks_update` — are always active regardless of `--tools`. `suggest_next` is active by default but excluded when `--tools` is specified. The model uses these to fulfill your requests. Add capabilities via [skills](#skills), [prompt templates](#prompt-templates), [extensions](#extensions), or [packages](#packages).
83
83
 
84
- **Also available:** [`@dreb/telegram`](https://www.npmjs.com/package/@dreb/telegram) — run dreb as a Telegram bot with live tool status and visible results for user-facing tools (`npm install -g @dreb/telegram`). [`@dreb/dashboard`](https://www.npmjs.com/package/@dreb/dashboard) — run `dreb dashboard` for a browser UI with fleet overview, full chat steering, subagent observability, host file browser, curated appearance themes (per-browser light/dark), and Tailscale/rotating-code pairing (`npm install -g @dreb/dashboard`; see [docs/dashboard.md](docs/dashboard.md)). Its top bar and persistent session header indicators report connecting, connected, retrying, resyncing, disconnected, or auth failed; bounded SSE replay plus an explicit snapshot barrier restores session state and tasks after a reload, restart, gap, backpressure disconnect, or stalled stream.
84
+ **Also available:** [`@dreb/telegram`](https://www.npmjs.com/package/@dreb/telegram) — run dreb as a Telegram bot with live tool status and visible results for user-facing tools (`npm install -g @dreb/telegram`). [`@dreb/dashboard`](https://www.npmjs.com/package/@dreb/dashboard) — run `dreb dashboard` for a browser UI with fleet overview, full chat steering, subagent observability, host file browser, curated appearance themes (per-browser light/dark), and Tailscale/rotating-code pairing (`npm install -g @dreb/dashboard`; see [docs/dashboard.md](docs/dashboard.md)). Compact SSE snapshots update live fleet cards without repeatedly fetching the cross-project inventory, and session drill-in hydrates state, messages, and background agents through one ordered snapshot request. Its top bar and persistent session header indicators report connecting, connected, retrying, resyncing, disconnected, or auth failed; bounded SSE replay plus an explicit snapshot barrier restores session state and tasks after a reload, restart, gap, backpressure disconnect, or stalled stream.
85
85
 
86
86
  **Platform notes:** [Windows](docs/windows.md) | [Termux (Android)](docs/termux.md) | [tmux](docs/tmux.md) | [Terminal setup](docs/terminal-setup.md) | [Shell aliases](docs/shell-aliases.md)
87
87
 
package/docs/dashboard.md CHANGED
@@ -126,6 +126,34 @@ networking window above.
126
126
  | **Settings** | Persistent defaults (default model, thinking level, steering/follow-up queue modes, auto-compaction, auto-retry) via `get_settings`/`set_settings` — validation errors are shown verbatim. Entering Settings flushes pending writes and reloads durable global + project settings, so external edits appear; read, parse, or write failures fail loudly instead of showing stale settings. The global-only nested-context policy lists every explicit trusted root for audit and revoke, offers a simple add-by-path control, and includes a prominently warned expert trust-all toggle; the Files view remains the primary place to grant trust while browsing. Most defaults seed new sessions; context-trust changes are observed by active main/subagent processes for future lazy loads, but cannot remove already injected content. Dashboard-local preferences (always expand thinking, needs-attention notification permission) live in the browser, alongside an appearance section: a theme gallery of eight curated themes (entropist.ca, Dim, Solarized, Gruvbox, Caves of Qud, Van Gogh, and the colorblind-safe Okabe-Ito and Paul Tol) with live preview cards and a system/light/dark mode selector, saved per browser. Shows the current rotating pairing code on the host/local dashboard, plus the paired-devices list with unpair. |
127
127
  | **Pairing** | Remote first-login: identity echo, rotating-code entry, and the security copy explaining what pairing grants. |
128
128
 
129
+ ## Fleet transport and freshness
130
+
131
+ A normal dashboard load makes one authoritative `GET /api/fleet`; the fleet is
132
+ also included in the ordered `/api/resync` response only during exceptional
133
+ recovery. After initial load, global event-derived `fleet_snapshot` SSE frames
134
+ update live runtime cards. The runtime pool emits those frames with a 200 ms
135
+ debounce from its in-memory state, so an update performs neither child RPC calls
136
+ nor a disk inventory scan.
137
+
138
+ Live runtime state and on-disk session inventory have separate refresh paths.
139
+ After creating, resuming, stopping, or deleting a session, the client narrowly
140
+ refreshes the disk list through `GET /api/sessions` rather than reloading the
141
+ whole fleet. While the Fleet screen is visible, it polls each live runtime's
142
+ stats no more often than every 30 seconds. That poll is single-flight, retains a
143
+ card's last good stats if an update fails, and surfaces failures in the Fleet UI.
144
+
145
+ For the activity preview, a card prefers the newest assistant text derived from
146
+ its hydrated client transcript entries. Until those entries exist, the
147
+ authoritative initial-load or resync fleet preview is the fallback. `ctx%` is
148
+ never a browser estimate: it comes from authoritative session state or stats.
149
+ Live card ordering remains deterministic by project path and then session start
150
+ time, not mutable activity.
151
+
152
+ A session drill-in hydrates through one `GET /api/runtimes/:key/hydrate` request.
153
+ The server backs it with one `getDashboardSnapshot` RPC call and its matching
154
+ barrier, rather than three independently timed state/message/background-agent
155
+ calls. Replay and resync retain their ordering guarantees below.
156
+
129
157
  ## Live connection and recovery
130
158
 
131
159
  The top bar and persistent session header expose the live-stream state as an accessible text `output`, not color alone: **connecting**, **connected**, **retrying** (including its delay), **resyncing**, **disconnected**, or **auth failed**. The session-header indicator remains visible when the session details or composer controls are collapsed. This is the state of the dashboard's single SSE connection, not the state of an individual agent.
@@ -284,6 +312,22 @@ session view prioritizes read-and-steer (model/thinking switchers collapse into
284
312
  Composer modes, abort, and needs-attention affordances are never reduced away
285
313
  — steering a running agent from a phone is the primary remote use case.
286
314
 
315
+ ## Mobile transport profiling
316
+
317
+ The opt-in profiler runs locally on the dashboard host:
318
+
319
+ ```bash
320
+ npm run --workspace @dreb/dashboard profile:mobile -- http://127.0.0.1:5343
321
+ ```
322
+
323
+ Its output is aggregate and payload-free: HTTP response sizes/timings plus SSE
324
+ sizes, event types, and burst summaries; it does not retain fleet or event
325
+ contents. The default capture is 60 seconds. Profile a realistic workload of at
326
+ least five live runtimes so both fleet and event behavior are representative.
327
+
328
+ For browser acceptance, use Chromium's network throttling with 100 ms RTT and
329
+ 1.5 Mbps. This profile does not emulate HTTP packet loss.
330
+
287
331
  ## Architecture
288
332
 
289
333
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dreb/coding-agent",
3
- "version": "2.43.3",
3
+ "version": "2.44.0",
4
4
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "drebConfig": {