@monster-orange/den 0.4.27 → 0.4.28

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/CHANGELOG.md CHANGED
@@ -4,6 +4,53 @@ All notable changes to Den are documented here. Each release lists the
4
4
  config and manifest changes a distribution must make to move to it under
5
5
  **Migrations**.
6
6
 
7
+ ## [0.4.28] - 2026-11-10
8
+
9
+ ### Added
10
+
11
+ - **An agent's helpers (D32).** When an agent starts helpers of its own
12
+ (Claude Code's Agent and Workflow subagents), Den shows them, read-only:
13
+ under the agent's row on the Agents tab, in a **Helpers (n)** list from
14
+ the pane's bar, and as a count on the rail's Agents item on every page.
15
+ Click one to read its transcript: what it was asked, its answers, and
16
+ its tool calls in a few words. Den can't stop or steer a helper, and
17
+ says so; to change what one does, tell the agent. Helpers from the
18
+ agent's earlier conversations are folded under "Earlier (n)". A
19
+ helper's own helpers sit under it, and a running one is listed first,
20
+ with the helper it belongs to. Also
21
+ `<cli> agents helpers <id> [<helper>]` (`--all`, `--limit`, `--json`),
22
+ the MCP tool `agent_helpers`, and the routes `GET
23
+ /api/workspaces/<ws>/agents/<id>/helpers[/<helper>]` and `GET
24
+ /api/sessions/helpers`.
25
+ - **Hub in the rail.** Once this install is connected, the rail has a
26
+ **Hub ↗** link above Settings: the company's page on Hub, in a new tab,
27
+ with a count of the threads waiting on you. When Hub rejects the token
28
+ or forbids the role, the link is greyed and goes to Settings › Hub.
29
+ - **Connect sends `den_url`:** this Den's edge address, when it has one
30
+ (https, else `http://<name>.localhost`), so Hub can link back to it.
31
+ - **`agents.helpers` settings:** `active_minutes` (default 10: no activity
32
+ this long and not known done shows idle) and `collapse_done_minutes`
33
+ (default 30: done helpers fold away after this).
34
+
35
+ ### Changed
36
+
37
+ - **Connect to Hub from a `.localhost` address.** An edge on this machine
38
+ reached over http (`http://<name>.localhost`) now counts as this
39
+ machine, like localhost.
40
+ - **Disconnect asks first,** saying it revokes this Den's Hub key on Hub
41
+ and that agents lose Hub until you Connect again.
42
+
43
+ ### Fixed
44
+
45
+ - The Agents list no longer drops keyboard focus every few seconds: its
46
+ refresh kept redrawing it. Focus stays on the row or button it was on.
47
+
48
+ ### Migrations
49
+
50
+ - `helpers` under `agents:` is now a reserved key (D32's settings). A
51
+ distribution with an agent whose id is `helpers` must rename it.
52
+ Nothing else: `agents.helpers` is optional.
53
+
7
54
  ## [0.4.27] - 2026-11-10
8
55
 
9
56
  ### Added
@@ -935,7 +935,12 @@ Settings, connected. Nobody copies a token or edits config.
935
935
  what protect it. It then moves on to Settings by script, which carries
936
936
  the cookie again.
937
937
  - Hub can only send the person back to https or to this machine, so
938
- open Den over https (its edge address) or on localhost to Connect.
938
+ open Den over https (its edge address), on localhost, or on a
939
+ `<name>.localhost` address (an edge on this machine over http; RFC 6761
940
+ keeps it on this machine) to Connect.
941
+ - When this Den has an edge address, Connect sends it as `den_url`:
942
+ its https one, else an `http://<name>.localhost` one. Hub links back to Den with it when the browser came over
943
+ loopback. A Reconnect sends it again.
939
944
  - This install's label on Hub is `<cli> on <machine>`.
940
945
  - The token is the install's (SEC-0), kept in the install's own secrets
941
946
  store when it keeps secrets: a 1Password item `<Product> Hub token`
@@ -947,7 +952,8 @@ Settings, connected. Nobody copies a token or edits config.
947
952
  - Connect writes `hub.url` (Hub's own address), `hub.token` (the store
948
953
  ref, or `file:<path>`) and `hub.mcp_url` (Hub's MCP address, as given)
949
954
  to `config/local/user.yml`.
950
- - **Disconnect** revokes the token on Hub (`POST <hub>/connect/revoke`),
955
+ - **Disconnect** asks first: "This revokes this Den's Hub key on Hub.
956
+ Agents lose Hub until you Connect again." Then it revokes the token on Hub (`POST <hub>/connect/revoke`),
951
957
  then removes it here and clears `hub.token` and `hub.mcp_url`;
952
958
  `hub.url` stays, so Connect is one click. If Hub can't be reached,
953
959
  nothing is removed; **Remove it here anyway** removes it, and says the
@@ -955,6 +961,11 @@ Settings, connected. Nobody copies a token or edits config.
955
961
  - A token Hub no longer accepts (revoked, or replaced by a newer
956
962
  connect) shows **Reconnect**. A role that may no longer connect Den
957
963
  installs says to ask a Hub admin; Den never retries it.
964
+ - Once connected, the rail has a **Hub ↗** link above Settings. It opens
965
+ the company's page on Hub in a new tab, with the company in its tooltip
966
+ and a count of the threads waiting on you (Hub's `unread`). A token Hub
967
+ rejects, or a role it forbids, greys it, and it goes to Settings › Hub
968
+ instead. Den looks at Hub for it once a minute while a page shows.
958
969
 
959
970
  ### Config
960
971
 
@@ -3020,6 +3031,66 @@ The pane's header and the workspace's heading in the list link to the
3020
3031
  Workspaces page focused on that workspace (`/local-dev?ws=<ws>`), and ⌘K
3021
3032
  has "Go to workspace <ws>" for each workspace with agents.
3022
3033
 
3034
+ ### Helpers: what an agent started in its own session
3035
+
3036
+ An agent can start helpers of its own: Claude Code's Agent and Workflow
3037
+ subagents (D32). They run inside the agent's session, so Den shows them
3038
+ but can't stop or steer them. To change what they do, tell the agent.
3039
+
3040
+ Where they show:
3041
+
3042
+ - **The Agents tab.** Under a running or stopped agent's row, its recent
3043
+ helpers, running ones first, each with what it was asked to do, its
3044
+ state and when. "All helpers (n)" opens the full list. Done, failed and
3045
+ stopped helpers fold away after a while (`collapse_done_minutes`).
3046
+ - **A pane's bar.** **Helpers (n)** opens the list, with a count while any
3047
+ run. Helpers from the agent's earlier conversations (before a relaunch)
3048
+ are folded under "Earlier (n)".
3049
+ - **A helper's transcript.** Click a helper: what it was asked, its
3050
+ answers, and its tool calls in a few words, the newest at the bottom.
3051
+ Never its thinking.
3052
+ - **The rail.** The Agents item counts the helpers running now, on every
3053
+ page.
3054
+
3055
+ A helper's state comes from Claude Code's files, best evidence first: the
3056
+ person stopped it, its workflow said, the agent was told it ended, its
3057
+ result is in the agent's transcript, its own files say it finished, its
3058
+ last answer went quiet, or recent activity. A helper with no activity for
3059
+ `active_minutes` that isn't known to be done shows **idle**. When the
3060
+ agent isn't running, none of its helpers are. Hover a state to see which
3061
+ evidence it came from.
3062
+
3063
+ From the CLI and MCP:
3064
+
3065
+ ```sh
3066
+ <cli> agents helpers <id> # this conversation's helpers
3067
+ <cli> agents helpers <id> --all # earlier conversations' too
3068
+ <cli> agents helpers <id> <helper> # one helper's transcript
3069
+ <cli> agents helpers <id> <helper> --limit 50 --json
3070
+ ```
3071
+
3072
+ The MCP tool `agent_helpers` reads the same, in the agent's own workspace
3073
+ or one it is granted. The routes are `GET
3074
+ /api/workspaces/<ws>/agents/<id>/helpers[/<helper>]` and `GET
3075
+ /api/sessions/helpers` (the running count). All of them only read.
3076
+
3077
+ Settings, under `agents.helpers` in the org config:
3078
+
3079
+ ```yaml
3080
+ agents:
3081
+ helpers:
3082
+ active_minutes: 10 # no activity this long, not known done: idle
3083
+ collapse_done_minutes: 30 # done helpers fold away after this
3084
+ ```
3085
+
3086
+ | Key | Values | Default |
3087
+ | ----------------------- | -------------------------- | ------- |
3088
+ | `active_minutes` | minutes, above 0 to 100000 | 10 |
3089
+ | `collapse_done_minutes` | minutes, above 0 to 100000 | 30 |
3090
+
3091
+ A runtime other than Claude Code shows no helpers: Den says it can't tell
3092
+ which helpers that agent started.
3093
+
3023
3094
  ### Stopped agents: Resume, Start fresh, Remove
3024
3095
 
3025
3096
  An agent that stops stays in the list, below the running ones (AG-14, the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monster-orange/den",
3
- "version": "0.4.27",
3
+ "version": "0.4.28",
4
4
  "description": "Den: a local multi-repo dev orchestrator, HTTPS edge and E2E harness",
5
5
  "type": "module",
6
6
  "bin": {