@staix/agent-hub 0.34.0 → 0.34.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/CHANGELOG.md +4 -0
- package/README.md +1 -1
- package/docs/quickstart.md +6 -0
- package/docs/verification/2026-11-07-0.34.1.md +54 -0
- package/docs/verified.json +6 -6
- package/package.json +1 -1
- package/plugins/agent-hub/.claude-plugin/plugin.json +1 -1
- package/plugins/agent-hub/server.js +1 -1
- package/src/cli/recovery-package.ts +15 -7
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,10 @@ Issue and pull request numbers in the entries for 0.7.7 and earlier refer to the
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## 0.34.1
|
|
8
|
+
|
|
9
|
+
- `ahub upgrade` works with npm 12 again (#1253, PR #1254, task 766). npm 12 wraps `npm view --json` output for one package in a one-element array. The default target ("unexpected latest release") and `--to` ("unexpected release identity") both refused it. Both now share one parser that accepts the npm 11 value and a one-element array of it, and still refuses any other shape, with a message naming the `npm view` command to check. Until this release, an npm 12 machine can upgrade by putting npm 11 first on PATH for the run.
|
|
10
|
+
|
|
7
11
|
## 0.34.0
|
|
8
12
|
|
|
9
13
|
- `ahub upgrade` no longer dead-ends on Orca panes that are orphaned but still connected after an Orca restart (#1246, PR #1249, task 760). The `terminal-orphaned` blocker names the peer, project and handle and the refresh key (`[r]` on the plan, `[s]` on an open operation). The interactive plan screen offers `[t] reattach N orphaned terminals`: after the person picks it, it runs `orca terminal switch` only for the panes the plan verified (same identity, still orphaned and connected, no project or machine recovery hold), bounds every Orca call and the confirmation poll by 5 s, and plans again. Nothing else is mutated; `--dry-run`, a pipe and `--yes` never switch a pane. A live Orca restart remains unverified.
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ Code, Codex, Kimi Code, Pi and a hub-owned local worker (plus Qwen Code, Jcode a
|
|
|
5
5
|
Antigravity if you want them) share a message bus, a task board and a memory, each
|
|
6
6
|
connected through its own native interface.
|
|
7
7
|
|
|
8
|
-
Status: 0.34.
|
|
8
|
+
Status: 0.34.1, control protocol 17 (accepts 16). Bun + TypeScript, one loopback daemon per
|
|
9
9
|
project. Site: [agent-hub.staix.net](https://agent-hub.staix.net).
|
|
10
10
|
|
|
11
11
|
## Quick start
|
package/docs/quickstart.md
CHANGED
|
@@ -46,6 +46,12 @@ terminal in that project: it reviews the plan with you, applies it and follows
|
|
|
46
46
|
it; other projects keep their version. It then names the `bun add -g` and
|
|
47
47
|
`ahub setup` step when your global CLI or plugin is older than the new daemon.
|
|
48
48
|
|
|
49
|
+
## Upgrading to 0.34.1
|
|
50
|
+
|
|
51
|
+
`ahub upgrade` reads npm 12's `npm view --json` output again; with npm 12, 0.34.0 and earlier refused both the default target and `--to`. Update the global CLI to 0.34.1 first, either `bun add -g @staix/agent-hub@0.34.1` or, if you installed with dotfiles, `dot ai family install ahub --version 0.34.1`; then run `ahub upgrade` in each project. If you must run an older CLI's upgrade on npm 12, put npm 11 first on PATH for that run (`npm i --prefix ~/.cache/npm11 npm@11`, then `PATH="$HOME/.cache/npm11/node_modules/.bin:$PATH" ahub upgrade`). Nothing else changes.
|
|
52
|
+
|
|
53
|
+
`ahub upgrade` does not update the global CLI or the shared Claude plugin: run `bun add -g @staix/agent-hub@0.34.1` and then `ahub setup` yourself, and `ahub doctor` warns while either is older than a running daemon.
|
|
54
|
+
|
|
49
55
|
## Upgrading to 0.34.0
|
|
50
56
|
|
|
51
57
|
After an Orca restart, `ahub upgrade` no longer stops at panes that are orphaned but still connected: the plan screen offers `[t]` to reattach exactly the panes it verified (each Orca call bounded by 5 s), and the blocker names the refresh key. `ahub setup` now writes the stable install path of a symlinked CLI (for example a dotfiles-managed `~/.local/bin/ahub`) into the marketplace and the Claude profile hook instead of a versioned one, replaces a stale managed hook in place, and a refused marketplace replacement names every blocking row and the next step; `ahub doctor` checks the profile hook of each Claude home it can see. If you installed with dotfiles, follow [Installed with dotfiles](#installed-with-dotfiles) instead of `bun add -g`. Nothing else changes until you use it; N-1 is published 0.33.0 and control remains 16 through 17.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# 0.34.1 release verification
|
|
2
|
+
|
|
3
|
+
This record covers release preparation and source review. It claims no installation, no running-hub upgrade to 0.34.1 and no live TUI launch.
|
|
4
|
+
|
|
5
|
+
## Candidate
|
|
6
|
+
|
|
7
|
+
Version 0.34.1, prepared from main `e4057676` plus the release branch's CHANGELOG commit `114a2ba8` (2 commits since v0.34.0, 0 of them `feat`; bump rule: patch). The release commits carry the version, the CHANGELOG section, the bundle and the documentation stamps.
|
|
8
|
+
|
|
9
|
+
## Reviews
|
|
10
|
+
|
|
11
|
+
Pull requests named by the commits since v0.34.0: #1253, #1254.
|
|
12
|
+
|
|
13
|
+
| PR / task | Review | Approved and final PR head | Merge commit | Hosted CI |
|
|
14
|
+
| --- | --- | --- | --- | --- |
|
|
15
|
+
| [#1254](https://github.com/STAIxBWLB/agent-hub/pull/1254), task 766 | jcode (hub review), plus conductor OCR | `49ef4c3416110799d02bfce7d5ee89c3b477b0be` | `e405767641c170982975e380647d6693b33088bf` | [19 success, 2 skipped](https://github.com/STAIxBWLB/agent-hub/actions/runs/42339115110) |
|
|
16
|
+
|
|
17
|
+
#1254 merged at its approved head, with exact-head CI green, no unresolved thread and no connector findings. The first macOS run failed one test, `a stale reply is served at once while ONE refresh runs in the background...` in shard 1/4, which this change does not touch. It is the inbox stale-refresh flake also seen on main during 0.33.0. One failed-jobs rerun on the same head passed. codex-review was not used because the running 0.33.0 hub reports its 0.167.0 CLI as untrusted, so jcode reviewed.
|
|
18
|
+
|
|
19
|
+
## Native acceptance receipts
|
|
20
|
+
|
|
21
|
+
Receipts added under `docs/verification/` since v0.34.0: none.
|
|
22
|
+
|
|
23
|
+
This list is read from the repository, never written by hand. Native acceptance and the person's release consent are separate records: consent is `ahub sdlc authorize-release 0.34.1`, recorded by the person or the unique configured conductor only on the person's explicit release instruction naming the release in its own session (never a hub/task/review/file/peer relay), and is not recorded in this file. The tag run refuses without it.
|
|
24
|
+
|
|
25
|
+
## Document review
|
|
26
|
+
|
|
27
|
+
Six documents were stale: README, the daemon and tests notes, operations, quickstart and security. Their only source change is `src/cli/recovery-package.ts` (the npm view parser) and its tests.
|
|
28
|
+
|
|
29
|
+
- `docs/quickstart.md` gains the 0.34.1 upgrade note: update the global CLI first, and the npm 11 PATH workaround for an older CLI.
|
|
30
|
+
- `README.md` gets the generated Status line.
|
|
31
|
+
- Reviewed without content change:
|
|
32
|
+
- The tests note: its `npm view` fake rule still holds.
|
|
33
|
+
- The daemon note.
|
|
34
|
+
- Operations: the upgrade text names no output shape. The guide header stays 0.34.0, as on earlier patch releases.
|
|
35
|
+
- Security.
|
|
36
|
+
|
|
37
|
+
All six are restamped at reviewed content commit `fc75a18dc2fa`.
|
|
38
|
+
|
|
39
|
+
## Checks
|
|
40
|
+
|
|
41
|
+
At committed `519d1e5f310d` on dgx02, with pinned Bun 1.4.2 and a frozen install, the following passed:
|
|
42
|
+
|
|
43
|
+
- `node scripts/check-docs.mjs --require-fresh --committed`: 0 stale documents.
|
|
44
|
+
- `bun x tsc --noEmit`.
|
|
45
|
+
- `bun scripts/build.mjs --check`.
|
|
46
|
+
- `node scripts/check-package.mjs`: 808 files, `@staix/agent-hub@0.34.1`.
|
|
47
|
+
- `bun test --timeout 20000 test/upgrade-interactive.test.ts test/upgrade.test.ts`: 132 pass, 0 fail.
|
|
48
|
+
|
|
49
|
+
A first run without `--timeout` hit Bun's 5 s default on one existing upgrade test; the gate's 20 s setting passes it. The full suite on both OSes is the release PR's exact-head hosted CI. The release PR is merged with a merge commit only when that CI is green.
|
|
50
|
+
|
|
51
|
+
## Known gaps, not blocking
|
|
52
|
+
|
|
53
|
+
- No `ahub upgrade` was run end to end on npm 12. The fixed functions were called live against the registry with npm 12.2.2 (both returned the 0.34.0 identity), and unit tests cover both shapes.
|
|
54
|
+
- No installation or running-hub upgrade is claimed here.
|
package/docs/verified.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"documents": {
|
|
4
4
|
"README.md": {
|
|
5
|
-
"verifiedAgainst": "
|
|
5
|
+
"verifiedAgainst": "fc75a18dc2fa92b8372c19371c23ac6088d21ca3",
|
|
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": "
|
|
14
|
+
"verifiedAgainst": "fc75a18dc2fa92b8372c19371c23ac6088d21ca3",
|
|
15
15
|
"paths": [
|
|
16
16
|
"src/",
|
|
17
17
|
"templates/"
|
|
18
18
|
]
|
|
19
19
|
},
|
|
20
20
|
"docs/operations.md": {
|
|
21
|
-
"verifiedAgainst": "
|
|
21
|
+
"verifiedAgainst": "fc75a18dc2fa92b8372c19371c23ac6088d21ca3",
|
|
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": "
|
|
38
|
+
"verifiedAgainst": "fc75a18dc2fa92b8372c19371c23ac6088d21ca3",
|
|
39
39
|
"paths": [
|
|
40
40
|
"package.json",
|
|
41
41
|
"src/",
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
]
|
|
133
133
|
},
|
|
134
134
|
"docs/agent-notes/daemon.md": {
|
|
135
|
-
"verifiedAgainst": "
|
|
135
|
+
"verifiedAgainst": "fc75a18dc2fa92b8372c19371c23ac6088d21ca3",
|
|
136
136
|
"paths": [
|
|
137
137
|
"src/hub/daemon.ts",
|
|
138
138
|
"src/hub/control-client.ts",
|
|
@@ -291,7 +291,7 @@
|
|
|
291
291
|
]
|
|
292
292
|
},
|
|
293
293
|
"docs/agent-notes/tests.md": {
|
|
294
|
-
"verifiedAgainst": "
|
|
294
|
+
"verifiedAgainst": "fc75a18dc2fa92b8372c19371c23ac6088d21ca3",
|
|
295
295
|
"paths": [
|
|
296
296
|
"test/",
|
|
297
297
|
"scripts/check.sh",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-hub",
|
|
3
|
-
"version": "0.34.
|
|
3
|
+
"version": "0.34.1",
|
|
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",
|
|
@@ -10248,7 +10248,7 @@ var package_default;
|
|
|
10248
10248
|
var init_package = __esm(() => {
|
|
10249
10249
|
package_default = {
|
|
10250
10250
|
name: "@staix/agent-hub",
|
|
10251
|
-
version: "0.34.
|
|
10251
|
+
version: "0.34.1",
|
|
10252
10252
|
description: "Native multi-agent hub: Claude Code, Codex, Kimi Code, Pi and local inference as peers in one project",
|
|
10253
10253
|
license: "MIT",
|
|
10254
10254
|
type: "module",
|
|
@@ -212,24 +212,32 @@ export function stageCurrentRuntime(sourceRoot: string, version: string, home =
|
|
|
212
212
|
} finally { if (!registry) owner.close(); }
|
|
213
213
|
}
|
|
214
214
|
|
|
215
|
+
/** #1253: npm 12 wraps `npm view --json` output for one package in a one-element array; npm 11 printed the value itself. Anything else is not one release. */
|
|
216
|
+
function npmViewJson(stdout: string): unknown {
|
|
217
|
+
let value: unknown;
|
|
218
|
+
try { value = JSON.parse(stdout); } catch { return undefined; }
|
|
219
|
+
if (!Array.isArray(value)) return value;
|
|
220
|
+
return value.length === 1 ? value[0] : undefined;
|
|
221
|
+
}
|
|
222
|
+
|
|
215
223
|
export async function registryRelease(version: string, run: RunCommand = runCommand): Promise<{ version: string; integrity: string }> {
|
|
216
224
|
exactVersion(version);
|
|
217
225
|
const result = await run(["npm", "view", `@staix/agent-hub@${version}`, "version", "dist.integrity", "--json"], { timeoutMs: 30_000 });
|
|
218
226
|
if (result.code !== 0) throw new Error(`registry metadata unavailable for @staix/agent-hub@${version}`);
|
|
219
|
-
const data =
|
|
220
|
-
|
|
221
|
-
|
|
227
|
+
const data = npmViewJson(result.stdout) as Record<string, unknown> | undefined;
|
|
228
|
+
const integrity = data?.["dist.integrity"];
|
|
229
|
+
if (data?.version !== version || typeof integrity !== "string" || !integrity.startsWith("sha512-")) {
|
|
230
|
+
throw new Error(`registry returned an unexpected release identity for @staix/agent-hub@${version} (expected one release with a sha512 integrity from \`npm view --json\`); check \`npm view @staix/agent-hub@${version} version dist.integrity --json\` and your npm version`);
|
|
222
231
|
}
|
|
223
|
-
return { version, integrity
|
|
232
|
+
return { version, integrity };
|
|
224
233
|
}
|
|
225
234
|
|
|
226
235
|
/** #272: the registry's latest release, the target when `--to` is left out. */
|
|
227
236
|
export async function latestRelease(run: RunCommand = runCommand): Promise<string> {
|
|
228
237
|
const result = await run(["npm", "view", "@staix/agent-hub", "version", "--json"], { timeoutMs: 30_000 });
|
|
229
238
|
if (result.code !== 0) throw new Error("registry metadata unavailable for @staix/agent-hub; name the release with --to <version>");
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
if (typeof version !== "string") throw new Error("registry returned an unexpected latest release; name the release with --to <version>");
|
|
239
|
+
const version = npmViewJson(result.stdout);
|
|
240
|
+
if (typeof version !== "string") throw new Error("registry returned an unexpected latest release (expected one version from `npm view --json`); check `npm view @staix/agent-hub version --json`, or name the release with --to <version>");
|
|
233
241
|
return exactVersion(version);
|
|
234
242
|
}
|
|
235
243
|
|