@staix/agent-hub 0.12.44 → 0.12.45

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.
Files changed (137) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +3 -3
  3. package/THIRD_PARTY_NOTICES.md +29 -0
  4. package/docs/adding-an-ai-tool.md +102 -14
  5. package/docs/agent-notes/README.md +9 -0
  6. package/docs/agent-notes/adapters.md +58 -44
  7. package/docs/agent-notes/budget.md +1 -1
  8. package/docs/agent-notes/daemon.md +9 -7
  9. package/docs/agent-notes/local-worker.md +4 -3
  10. package/docs/agent-notes/tasks.md +8 -5
  11. package/docs/agent-notes/tests.md +7 -7
  12. package/docs/operations.md +99 -7
  13. package/docs/quickstart.md +5 -1
  14. package/docs/sdlc.md +26 -8
  15. package/docs/security.md +6 -3
  16. package/docs/specs/2026-09-19-agent-hub-design.md +114 -5
  17. package/docs/verification/2026-10-21-469-r1-dashboard-tokens.md +43 -0
  18. package/docs/verification/2026-10-21-469-r2-dashboard-shell.md +54 -0
  19. package/docs/verification/2026-10-21-469-r3-dashboard-board.md +51 -0
  20. package/docs/verification/2026-10-21-469-r4-dashboard-views.md +77 -0
  21. package/docs/verification/2026-10-21-469-r6-dashboard-motion-states.md +82 -0
  22. package/docs/verification/2026-10-22-0.12.45.md +60 -0
  23. package/docs/verification/assets/469-r1-board-1440-dark.png +0 -0
  24. package/docs/verification/assets/469-r1-board-1440-light.png +0 -0
  25. package/docs/verification/assets/469-r1-board-390-dark.png +0 -0
  26. package/docs/verification/assets/469-r1-board-390-light.png +0 -0
  27. package/docs/verification/assets/469-r2-agents-1440-dark.png +0 -0
  28. package/docs/verification/assets/469-r2-agents-768-dark.png +0 -0
  29. package/docs/verification/assets/469-r2-board-1024-light.png +0 -0
  30. package/docs/verification/assets/469-r2-board-1440-dark.png +0 -0
  31. package/docs/verification/assets/469-r2-board-1440-light.png +0 -0
  32. package/docs/verification/assets/469-r2-board-390-dark.png +0 -0
  33. package/docs/verification/assets/469-r2-board-390-light.png +0 -0
  34. package/docs/verification/assets/469-r2-board-768-light.png +0 -0
  35. package/docs/verification/assets/469-r3-board-1440-dark.png +0 -0
  36. package/docs/verification/assets/469-r3-board-1440-light.png +0 -0
  37. package/docs/verification/assets/469-r3-board-390-light.png +0 -0
  38. package/docs/verification/assets/469-r3-detail-1440-dark.png +0 -0
  39. package/docs/verification/assets/469-r3-detail-1440-light.png +0 -0
  40. package/docs/verification/assets/469-r3-detail-390-dark.png +0 -0
  41. package/docs/verification/assets/469-r3-plan-1440-light.png +0 -0
  42. package/docs/verification/assets/469-r3-plan-390-light.png +0 -0
  43. package/docs/verification/assets/469-r4-agents-1440-dark.png +0 -0
  44. package/docs/verification/assets/469-r4-agents-1440-light.png +0 -0
  45. package/docs/verification/assets/469-r4-agents-390-dark.png +0 -0
  46. package/docs/verification/assets/469-r4-memory-1440-dark.png +0 -0
  47. package/docs/verification/assets/469-r4-memory-1440-light.png +0 -0
  48. package/docs/verification/assets/469-r4-memory-390-dark.png +0 -0
  49. package/docs/verification/assets/469-r4-message-1440-light.png +0 -0
  50. package/docs/verification/assets/469-r4-office-1440-dark.png +0 -0
  51. package/docs/verification/assets/469-r4-office-1440-light.png +0 -0
  52. package/docs/verification/assets/469-r4-settings-1440-dark.png +0 -0
  53. package/docs/verification/assets/469-r4-settings-1440-light.png +0 -0
  54. package/docs/verification/assets/469-r4-stream-1440-light.png +0 -0
  55. package/docs/verification/assets/469-r4-stream-390-light.png +0 -0
  56. package/docs/verification/assets/469-r6-agents-empty-390-dark.png +0 -0
  57. package/docs/verification/assets/469-r6-agents-empty-390-light.png +0 -0
  58. package/docs/verification/assets/469-r6-board-1440-light.png +0 -0
  59. package/docs/verification/assets/469-r6-board-390-dark.png +0 -0
  60. package/docs/verification/assets/469-r6-board-empty-1440-dark.png +0 -0
  61. package/docs/verification/assets/469-r6-board-empty-1440-light.png +0 -0
  62. package/docs/verification/assets/469-r6-disconnected-1440-dark.png +0 -0
  63. package/docs/verification/assets/469-r6-disconnected-1440-light.png +0 -0
  64. package/docs/verification/assets/469-r6-disconnected-390-dark.png +0 -0
  65. package/docs/verification/assets/469-r6-skeleton-1440-light.png +0 -0
  66. package/docs/verification/assets/469-r6-skeleton-390-dark.png +0 -0
  67. package/docs/verification/assets/469-r6-toasts-1440-dark.png +0 -0
  68. package/docs/verification/assets/469-r6-toasts-1440-light.png +0 -0
  69. package/docs/verification/assets/469-r6-toasts-390-light.png +0 -0
  70. package/docs/verified.json +19 -16
  71. package/package.json +5 -1
  72. package/plugins/agent-hub/.claude-plugin/plugin.json +1 -1
  73. package/plugins/agent-hub/server.js +9818 -9605
  74. package/src/adapters/adapter-api.ts +2 -0
  75. package/src/adapters/agy/definition.ts +3 -1
  76. package/src/adapters/claude-channel.ts +14 -5
  77. package/src/adapters/codex-appserver.ts +1 -0
  78. package/src/adapters/conformance/acp.ts +114 -0
  79. package/src/adapters/conformance/codex.ts +191 -0
  80. package/src/adapters/conformance/enrollment.ts +43 -0
  81. package/src/adapters/conformance/factories.ts +17 -0
  82. package/src/adapters/conformance/fake-paths.ts +12 -0
  83. package/src/adapters/conformance/fakes/acp-server.ts +267 -0
  84. package/src/adapters/conformance/fakes/acp-watchdog-agent.ts +10 -0
  85. package/src/adapters/conformance/fakes/app-server.ts +119 -0
  86. package/src/adapters/conformance/fakes/codex-bin.ts +15 -0
  87. package/src/adapters/conformance/fakes/jcode-agent.ts +91 -0
  88. package/src/adapters/conformance/fakes/model-server.ts +39 -0
  89. package/src/adapters/conformance/fakes/pi-rpc.ts +32 -0
  90. package/src/adapters/conformance/index.ts +11 -0
  91. package/src/adapters/conformance/kit.ts +50 -0
  92. package/src/adapters/conformance/local-pi.ts +100 -0
  93. package/src/adapters/conformance/owned-acp.ts +44 -0
  94. package/src/adapters/definitions/builtin-metadata.ts +23 -6
  95. package/src/adapters/definitions/native-cli-entry-kimi.ts +7 -1
  96. package/src/adapters/definitions/native-cli-entry.ts +7 -19
  97. package/src/adapters/definitions/native-cli-preview.ts +2 -11
  98. package/src/adapters/definitions/qwen.ts +4 -1
  99. package/src/adapters/external-metadata.ts +48 -0
  100. package/src/adapters/external-module-scan.ts +126 -0
  101. package/src/adapters/external-modules.ts +240 -0
  102. package/src/adapters/pi.ts +2 -0
  103. package/src/adapters/public.ts +7 -0
  104. package/src/adapters/registry-types.ts +10 -0
  105. package/src/adapters/registry.ts +51 -15
  106. package/src/cli/help.ts +21 -16
  107. package/src/cli/identity.ts +1 -1
  108. package/src/cli/main.ts +23 -5
  109. package/src/cli/upgrade-labels.ts +1 -1
  110. package/src/cli/upgrade-presentation.ts +1 -1
  111. package/src/cli/upgrade-restore-state.ts +3 -2
  112. package/src/cli/upgrade-runtime.ts +4 -1
  113. package/src/hub/board.ts +30 -4
  114. package/src/hub/config-apply.ts +18 -10
  115. package/src/hub/config-reload.ts +8 -5
  116. package/src/hub/config-trust.ts +1 -1
  117. package/src/hub/control-client.ts +4 -1
  118. package/src/hub/daemon.ts +95 -39
  119. package/src/hub/facts.ts +76 -13
  120. package/src/hub/hub-tools.ts +21 -5
  121. package/src/hub/instance-config.ts +17 -5
  122. package/src/hub/instance-execution.ts +20 -8
  123. package/src/hub/instances.ts +2 -1
  124. package/src/hub/peers.ts +9 -0
  125. package/src/hub/plan-conformance.ts +83 -0
  126. package/src/hub/review-findings.ts +104 -0
  127. package/src/hub/roster.ts +31 -5
  128. package/src/hub/sdlc-queue.ts +19 -4
  129. package/src/hub/sdlc-release.ts +16 -1
  130. package/src/hub/sdlc.ts +27 -12
  131. package/src/hub/settings.ts +5 -1
  132. package/src/hub/snapshots.ts +8 -6
  133. package/src/hub/tasks.ts +275 -45
  134. package/src/hub/ui.ts +2 -2
  135. package/src/ui/index.html +559 -78
  136. package/src/ui/office-model.ts +3 -1
  137. package/src/ui/peer-palette.ts +44 -0
@@ -0,0 +1,60 @@
1
+ # 0.12.45 release verification
2
+
3
+ This record covers release preparation and source review. It does not claim publication, installation, a running-hub restart or a live TUI launch.
4
+
5
+ ## Candidate
6
+
7
+ Version 0.12.45, from merged main at 0612e5d5. The person directed on 2026-10-22 to finish the work in progress and release it.
8
+
9
+ - Dashboard redesign (#469): tokens (#649), app shell and view keys (#650), board cards with detail and Plan sheets (#651), view restyle and Office colours (#659), keyed rendering, motion and loading, empty, disconnected and toast states (#660), and follow-ups (#662, #664).
10
+ - External adapter modules and the conformance kit (#451 A4, #648, #653); the A5 guide and adapters note pass (#668).
11
+ - Peer lists and the CLI surface derived from adapter definitions (#625, #656), and PeerAdapter capability members (#625 phase 6 slice 1, #667).
12
+ - Structured review findings with an Important gate (#481 S3, #652, #657) and plan conformance with person-only departure acceptance (#481 S2, #665).
13
+ - #230 S10 review-readiness rulings (#641, #643, #644), #428 racy same-size rewrites of large files (#646), #221 channel hints (#647), #225 stale roster keys and the shared git budget (#663), #654 Kimi TUI retained-command diagnostic (#658), and #661 held snapshot clocks for runner-speed-dependent daemon tests (#666, #669).
14
+ - Still open: #655 (dependency-ready auto-assignment ignores the owner's WIP cap), board task #287 (external-kind instances), the later #625 phase 6 slices and #481 S4-S7.
15
+
16
+ ## Reviews
17
+
18
+ | PR | Final head | Review | CI |
19
+ | --- | --- | --- | --- |
20
+ | #641, #643, #644 (#230) | see PRs | Spec ruling, then code review with red-first regressions | exact head, success |
21
+ | #646 (#428) | e4b3fb9a | Two rounds with an independent reviewer (unbounded hashing and the atHead regression fixed) | exact head, success |
22
+ | #647 (#221) | 0b1ae257 | Reviewer read; a connector P2 (legacy nudge under a held hint) fixed by the reviewer | exact head, success |
23
+ | #648, #653 (#451 A4) | 222a5839, 4a271455 | Two rounds with independent security and packaging reviews; project-cwd SDK resolution, whole-daemon refusal and offline roster fixed; follow-ups in #653 | exact head, success |
24
+ | #649, #650, #651, #659, #660 (#469) | see PRs | Reviewer read per phase; R3 seed rot re-anchored; connector findings fixed or tracked (#293, #296) | exact head, success (R6 after one Ubuntu rerun of the #661 flake) |
25
+ | #652, #657 (#481 S3) | d60d5bd6, ecc4b39f | Two rounds with an independent reviewer (unbound-head bypass and head carry-forward fixed); a connector P1 (supplied head) fixed in #657 | exact head, success |
26
+ | #656 (#625) | d803de2b | Reviewer read against the projection ruling; fixture correction (#294); bundle rebuilt after #658 | exact head, success |
27
+ | #658 (#654) | a6409371 | Reviewer read; root cause reproduced by delay | exact head, success |
28
+ | #662 | f46cb77f | Main-red fix after #656 and #660 crossed | exact head, success |
29
+ | #663 (#225) | fd71191b | Reviewer read; three connector findings (instance eligibility, shared-config removal, result text) fixed red-first | exact head, success |
30
+ | #664 (#296) | 0d21de7a | Reviewer read; fixes two connector P2s from #660 | exact head, success |
31
+ | #665 (#481 S2) | 88bec9ab | Three rounds with an independent reviewer (rename and root-entry bypasses, status writes, off-mode, queue rename regression fixed); a connector P1 (departure scope) fixed red-first (#298) | exact head, success |
32
+ | #666, #669 (#661) | 948b6afd, 389262df | Reviewer read; red-first with a slowed-git stand-in; a connector P1 (20 s per-test ceiling) fixed | exact head, success |
33
+ | #667 (#625) | 17ab88d2 | Reviewer read against the phase 6 rulings | exact head, success |
34
+ | #668 (#451 A5) | fc052e89 | Reviewer read; two connector P2s fixed by the reviewer | exact head, success |
35
+
36
+ ## Document review
37
+
38
+ Fourteen documents were stale against the 0.12.44 stamps. Each was checked against `git log <stamp>..HEAD` over its paths (with PR #665's diff) by read-only reviewers in four groups, and corrected where a merged change made a statement wrong or missing.
39
+
40
+ | Document | Result | Checked claims and correction |
41
+ | --- | --- | --- |
42
+ | `README.md` | corrected | Status 0.12.45; dashboard, adapter modules, review findings and plan conformance, stale roster key removal; verification link. |
43
+ | `docs/quickstart.md` | corrected | Install pin `v0.12.45`; "Upgrading to 0.12.45" (dashboard, modules, findings, plan conformance and `accept-departure`, Kimi diagnostic, channel hints, #428). |
44
+ | `docs/operations.md` | corrected | New "External adapter modules" section; recovery floor; conditional source refusal; shared git budget; stale roster keys; SDLC S3 and S2 with pointers to `docs/sdlc.md`. |
45
+ | `docs/security.md` | corrected | A4 trust paragraph (a pin authorizes code, not a sandbox); delegated-CLI refusals include departure acceptance; metadata-only plan conformance reads; stale roster keys grant nothing. |
46
+ | `src/cli/help.ts` | corrected | `release-assign <reason...>`; roster remove deletes a stale instance key; `plan-review` flag grouping; native usage rendered from definitions matches each entry parser. |
47
+ | `docs/agent-notes/tasks.md` | corrected | Supplied-head binding, id-only settlement, hub-proposed recurrence markers, S2 conformance and departure consent rules; `plan-conformance.ts` in scope. |
48
+ | `docs/agent-notes/daemon.md` | corrected | Module recovery floor, conditional source refusal, historical receipt reads, stale keys, external catalog, retained `kimi_cmd` diagnostic. |
49
+ | `docs/agent-notes/adapters.md` | corrected | PeerAdapter capability ports (#667). |
50
+ | `docs/agent-notes/tests.md` | corrected | Held snapshot clocks, the 20 s per-test ceiling, seed re-anchoring, CI tests the PR head, kit and fakes under `src/adapters/conformance/`. |
51
+ | `docs/agent-notes/local-worker.md` | corrected | #428 racy large-file rule. |
52
+ | `docs/agent-notes/budget.md` | corrected | `Budget.report` skips external module kinds. |
53
+ | `docs/agent-notes/README.md` | corrected | Background section holding the rationale moved out of the notes. |
54
+ | `docs/agent-notes/benchmarks.md`, `bus.md` | no change | Rules checked against the diffs; no contradiction. |
55
+
56
+ `AGENTS.md` and `docs/verified.json` gain the new task-board and test paths, and the pre-0.7.7 issue-numbering note is removed from `AGENTS.md` at the person's request.
57
+
58
+ ## Release mechanics
59
+
60
+ Merge the release PR with a merge commit (the stamps name release-branch commits), run `node scripts/check-docs.mjs --require-fresh` on the merged main, then tag `v0.12.45`.
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": 1,
3
3
  "documents": {
4
4
  "README.md": {
5
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
5
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
6
6
  "paths": [
7
7
  "package.json",
8
8
  "src/",
@@ -11,14 +11,14 @@
11
11
  ]
12
12
  },
13
13
  "docs/security.md": {
14
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
14
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
15
15
  "paths": [
16
16
  "src/",
17
17
  "templates/"
18
18
  ]
19
19
  },
20
20
  "docs/operations.md": {
21
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
21
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
22
22
  "paths": [
23
23
  "package.json",
24
24
  "src/",
@@ -35,7 +35,7 @@
35
35
  ]
36
36
  },
37
37
  "docs/quickstart.md": {
38
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
38
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
39
39
  "paths": [
40
40
  "package.json",
41
41
  "src/",
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  },
45
45
  "docs/agent-notes/adapters.md": {
46
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
46
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
47
47
  "paths": [
48
48
  "src/adapters/",
49
49
  "src/pi/",
@@ -73,7 +73,7 @@
73
73
  ]
74
74
  },
75
75
  "docs/agent-notes/benchmarks.md": {
76
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
76
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
77
77
  "paths": [
78
78
  "scripts/benchmarks/",
79
79
  "test/benchmarks/",
@@ -85,7 +85,7 @@
85
85
  ]
86
86
  },
87
87
  "docs/agent-notes/budget.md": {
88
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
88
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
89
89
  "paths": [
90
90
  "src/hub/budget.ts",
91
91
  "src/cli/statusline-tee.ts",
@@ -103,7 +103,7 @@
103
103
  ]
104
104
  },
105
105
  "docs/agent-notes/bus.md": {
106
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
106
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
107
107
  "paths": [
108
108
  "src/hub/bus.ts",
109
109
  "src/hub/envelope.ts",
@@ -118,7 +118,7 @@
118
118
  ]
119
119
  },
120
120
  "docs/agent-notes/daemon.md": {
121
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
121
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
122
122
  "paths": [
123
123
  "src/hub/daemon.ts",
124
124
  "src/hub/control-client.ts",
@@ -179,7 +179,7 @@
179
179
  ]
180
180
  },
181
181
  "docs/agent-notes/local-worker.md": {
182
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
182
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
183
183
  "paths": [
184
184
  "src/adapters/local-worker.ts",
185
185
  "src/local/",
@@ -199,7 +199,7 @@
199
199
  ]
200
200
  },
201
201
  "docs/agent-notes/tasks.md": {
202
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
202
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
203
203
  "paths": [
204
204
  "src/hub/tasks.ts",
205
205
  "src/hub/board.ts",
@@ -224,11 +224,13 @@
224
224
  "src/hub/checks.ts",
225
225
  "src/hub/task-repository.ts",
226
226
  "src/hub/no-writes.ts",
227
- "src/adapters/registry.ts"
227
+ "src/adapters/registry.ts",
228
+ "src/hub/review-findings.ts",
229
+ "src/hub/plan-conformance.ts"
228
230
  ]
229
231
  },
230
232
  "docs/agent-notes/tests.md": {
231
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
233
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
232
234
  "paths": [
233
235
  "test/",
234
236
  "scripts/check.sh",
@@ -242,11 +244,12 @@
242
244
  "src/hub/child-process.ts",
243
245
  "src/local/sandbox.ts",
244
246
  "src/models/mlx.ts",
245
- "src/cli/upgrade-interactive.ts"
247
+ "src/cli/upgrade-interactive.ts",
248
+ "src/adapters/conformance/"
246
249
  ]
247
250
  },
248
251
  "docs/agent-notes/README.md": {
249
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
252
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
250
253
  "paths": [
251
254
  "src/cli/console-state.ts",
252
255
  "src/cli/attention.ts",
@@ -255,7 +258,7 @@
255
258
  ]
256
259
  },
257
260
  "src/cli/help.ts": {
258
- "verifiedAgainst": "e185b9e62bd96aa0638f8e694628eeb698e38649",
261
+ "verifiedAgainst": "864dc1db576c21909bfe403897248756f8825a5b",
259
262
  "paths": [
260
263
  "src/cli/main.ts",
261
264
  "src/cli/launch.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@staix/agent-hub",
3
- "version": "0.12.44",
3
+ "version": "0.12.45",
4
4
  "description": "Native multi-agent hub: Claude Code, Codex, Kimi Code, Pi and local inference as peers in one project",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -46,5 +46,9 @@
46
46
  "homepage": "https://github.com/STAIxBWLB/agent-hub",
47
47
  "publishConfig": {
48
48
  "access": "public"
49
+ },
50
+ "exports": {
51
+ "./adapter": "./src/adapters/public.ts",
52
+ "./conformance": "./src/adapters/conformance/index.ts"
49
53
  }
50
54
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-hub",
3
- "version": "0.12.44",
3
+ "version": "0.12.45",
4
4
  "description": "Channel between Claude Code and the agent-hub daemon: peer messages from Codex, Kimi and the local worker arrive as channel events; hub_send replies.",
5
5
  "author": {
6
6
  "name": "Young Joon Lee",