@staix/agent-hub 0.12.38 → 0.12.40
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 +34 -0
- package/README.md +19 -10
- package/docs/agent-notes/adapters.md +6 -1
- package/docs/agent-notes/benchmarks.md +1 -1
- package/docs/agent-notes/budget.md +2 -0
- package/docs/agent-notes/bus.md +2 -2
- package/docs/agent-notes/daemon.md +10 -5
- package/docs/agent-notes/models.md +4 -4
- package/docs/agent-notes/tasks.md +3 -0
- package/docs/agent-notes/tests.md +2 -2
- package/docs/memory.md +1 -1
- package/docs/operations.md +167 -30
- package/docs/quickstart.md +25 -5
- package/docs/security.md +20 -8
- package/docs/smoke.md +2 -2
- package/docs/specs/2026-09-19-agent-hub-design.md +167 -72
- package/docs/specs/2026-10-04-switchyard-source-port-design.md +12 -7
- package/docs/verification/2026-10-20-0.12.39.md +55 -0
- package/docs/verification/2026-10-20-0.12.40.md +63 -0
- package/docs/verification/2026-10-20-jcode-tui-0.98.1.md +39 -0
- package/docs/verified.json +38 -19
- package/package.json +1 -1
- package/plugins/agent-hub/.claude-plugin/plugin.json +1 -1
- package/plugins/agent-hub/server.js +679 -193
- package/src/adapters/acp.ts +54 -3
- package/src/adapters/claude-channel.ts +35 -4
- package/src/adapters/codex-appserver.ts +12 -3
- package/src/adapters/definitions/builtin-metadata.ts +6 -4
- package/src/adapters/definitions/native-cli-doctor.ts +8 -5
- package/src/adapters/definitions/native-cli-entry-claude.ts +7 -2
- package/src/adapters/definitions/native-cli-entry-codex.ts +13 -14
- package/src/adapters/definitions/native-cli-entry-jcode.ts +90 -11
- package/src/adapters/definitions/native-cli-entry-pi.ts +9 -7
- package/src/adapters/definitions/native-cli-entry-types.ts +3 -0
- package/src/adapters/definitions/native-cli-jcode-mcp.ts +55 -1
- package/src/adapters/definitions/native-cli-preview-common.ts +1 -0
- package/src/adapters/definitions/native-cli-preview-jcode.ts +7 -7
- package/src/adapters/definitions/native-daemon-policy.ts +1 -1
- package/src/adapters/jcode.ts +165 -2
- package/src/adapters/local-worker.ts +21 -37
- package/src/adapters/pi.ts +7 -0
- package/src/adapters/registry.ts +1 -1
- package/src/cli/console-state.ts +1 -0
- package/src/cli/console.ts +11 -1
- package/src/cli/help.ts +13 -8
- package/src/cli/identity-audit.ts +33 -7
- package/src/cli/jcode-mcp.ts +1 -1
- package/src/cli/main.ts +138 -28
- package/src/cli/output.ts +5 -2
- package/src/cli/preview.ts +2 -2
- package/src/cli/status-lines.ts +1 -1
- package/src/cli/terminal-recovery.ts +54 -4
- package/src/cli/upgrade-interactive.ts +5 -0
- package/src/cli/upgrade-runtime.ts +13 -1
- package/src/cli/upgrade.ts +67 -1
- package/src/hub/board.ts +4 -2
- package/src/hub/bus.ts +8 -3
- package/src/hub/checks.ts +15 -5
- package/src/hub/conductor.ts +2 -1
- package/src/hub/config-apply.ts +20 -2
- package/src/hub/config-reload.ts +2 -8
- package/src/hub/control-client.ts +26 -3
- package/src/hub/daemon.ts +166 -67
- package/src/hub/delivery-superseded.ts +19 -2
- package/src/hub/events.ts +4 -1
- package/src/hub/hub-tools.ts +4 -4
- package/src/hub/inference.ts +4 -8
- package/src/hub/lifecycle.ts +3 -3
- package/src/hub/main-checkout.ts +36 -0
- package/src/hub/memory-profile-check.ts +6 -2
- package/src/hub/memory-profile.ts +18 -1
- package/src/hub/peers.ts +4 -2
- package/src/hub/ports.ts +1 -0
- package/src/hub/routing.ts +24 -14
- package/src/hub/settings.ts +1 -1
- package/src/hub/start-mode.ts +1 -1
- package/src/hub/task-repository.ts +136 -0
- package/src/hub/tasks.ts +101 -21
- package/src/hub/terminal-launch.ts +130 -0
- package/src/hub/usage.ts +44 -18
- package/src/models/route/config.ts +1 -1
- package/src/omniroute/client.ts +7 -19
- package/templates/AGENTS.block.md +1 -0
- package/templates/routing.toml +10 -44
- package/src/switchyard/config.ts +0 -45
- package/src/switchyard/sidecar.ts +0 -136
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# 0.12.39 release verification
|
|
2
|
+
|
|
3
|
+
This record covers release preparation and source review. It does not claim publication, installation, a running-hub restart or native/live acceptance.
|
|
4
|
+
|
|
5
|
+
## Candidate
|
|
6
|
+
|
|
7
|
+
Version 0.12.39, control protocol 16 (unchanged; the daemon adds the `native_tui_launch` feature), from merged main `f9df83d6`. The person directed the release on 2026-10-20 ("finish the open PRs and release the next version").
|
|
8
|
+
|
|
9
|
+
- #464 (PR #557, hub task #246): `ahub jcode` opens jcode's native TUI by default, attached to the hub-driven ACP session.
|
|
10
|
+
- The console-only `native_tui_launch` hands the launch tuple only to the person's launcher, after a bounded read-only proof that the session is saved.
|
|
11
|
+
- The launcher waits with one fixed line and opens the TUI once the session is saved; Ctrl-C ends only the wait.
|
|
12
|
+
- Start mode resolves from the flag, then the accepted daemon mode, then file/default; `--mode headless` is unchanged.
|
|
13
|
+
- J1.4 is amended: jcode 0.98.1 saves a session only after its first real prompt.
|
|
14
|
+
- #542 D4 (PR #547, hub task #245): an announced ACP tool call that has not completed or failed keeps the turn alive up to a 30 min tool ceiling (never below `watchdog_ms`). The watchdog re-arms only for the remaining ceiling.
|
|
15
|
+
- #548 (PR #552, hub task #247): the MLX test fixtures take a free loopback port.
|
|
16
|
+
- Still open (unchanged from 0.12.38): live native clients, installed managed-Pi #418 AC8 (#142), #438 AC7, the native console settings leg (#439 AC5), real upgrades with reattach (#463) and with a managed terminal and cancelled rows (#478), a live fresh Codex review with a real account, a live split of a real memory home (#536), the agy live TUI/account leg (#251), and Kimi's interactive-TUI coexistence and usage checks (#533).
|
|
17
|
+
- New open legs:
|
|
18
|
+
- Jcode's TUI with a personal account, a real provider and hub-tool calls (#464). The receipt covers only an isolated HOME with a loopback fixture provider (docs/verification/2026-10-20-jcode-tui-0.98.1.md).
|
|
19
|
+
- A live Jcode tool call held past the inactivity watchdog (#542); only fake-ACP tests cover it.
|
|
20
|
+
- Follow-ups: #559 (review nits of #557), #558 (macOS `runCheck` hang), #555 (agy native reads into Facts).
|
|
21
|
+
|
|
22
|
+
## Reviews
|
|
23
|
+
|
|
24
|
+
| PR | Final head | Review | CI |
|
|
25
|
+
| --- | --- | --- | --- |
|
|
26
|
+
| #552 (#548) | 28e37cf2 | codex approved hub task #247 | exact head, success |
|
|
27
|
+
| #557 (#464) | 7c0475c3 | planner: full-diff read-only review of 26 paths, no Important findings; affected tests run by the planner (43 pass; the one failure only reproduces under macOS's symlinked default TMPDIR, follow-up #559 N6); nits in #559 | exact head, success on Ubuntu and macOS with all four seeded shards |
|
|
28
|
+
| #547 (#542 D4) | 26ad11cb | round 1 changes requested by codex, fixed at 36015a76; codex re-review approved with no findings (109 ACP and daemon tests pass) | exact head, success; macOS passed on a rerun of the failed job after the unrelated #558 hang |
|
|
29
|
+
|
|
30
|
+
## Document review
|
|
31
|
+
|
|
32
|
+
Eleven documents were stale against the 0.12.38 stamps (`adf2d5fd`). Two fresh-context reviewers read them against the three PRs above, one the person-facing documents and the other the agent notes, and applied their own corrections. The planner spot-checked the claims against the code.
|
|
33
|
+
|
|
34
|
+
| Document | Result | Checked claims and correction |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| `README.md` | corrected | Status 0.12.39 (protocol 16 unchanged); the Jcode TUI default and how to keep headless (#464); the verification link; open legs add Jcode's live TUI with a real account and a live tool call held past the watchdog. |
|
|
37
|
+
| `docs/quickstart.md` | corrected | Install pin `v0.12.39`; "Upgrading to 0.12.39": restart Claude sessions; `ahub jcode` opens the TUI after the first hub turn saves the session; hub-made starts open a terminal; how to keep headless. The 0.12.38 notes are kept for upgrades from 0.12.37 or earlier. |
|
|
38
|
+
| `docs/operations.md` | corrected | Version line and upgrade commands 0.12.39 (protocol-16 range through 0.12.39); `hub_peer_start` includes Jcode; `peers.jcode.start_mode` in the settings and start-mode tables; the ACP tool-ceiling paragraph (#542). |
|
|
39
|
+
| `docs/security.md` | corrected | `JCODE_NO_TELEMETRY` covers probe, serve, ACP and TUI (#559 N5); start words with `--mode tui` for Pi, Kimi and Jcode; Jcode was headless-only before 0.12.39. |
|
|
40
|
+
| `docs/agent-notes/adapters.md` | corrected | New ACP tool-ceiling rule (re-arm for the remaining ceiling, reset per delivery, private-turn log latch); the Jcode TUI rule: saved-session proof only through `savedSession`, option drift refused, the tuple only to a person's launcher, previews resolve nothing, no synthesized save or prompt. |
|
|
41
|
+
| `docs/agent-notes/daemon.md` | corrected | New `native_tui_launch` rule (console-only, refusals, binding, the tuple only in the console reply, feature-gated); a TUI start of an owned-ACP peer opens a terminal even while ACP is online. |
|
|
42
|
+
| `docs/agent-notes/benchmarks.md` | corrected | The driver's Qwen `AcpPeer` now runs a silent open tool call to the ACP tool ceiling, which counts as a changed study condition. |
|
|
43
|
+
| `docs/agent-notes/tests.md` | corrected | Fixtures that need a port take it from a free-port probe, never a fixed number (#548). |
|
|
44
|
+
| `docs/agent-notes/budget.md` | no change | The changed paths touch no quota, pause or context rule. |
|
|
45
|
+
| `docs/agent-notes/bus.md` | no change | Delivery, digest and steer code is unchanged; the Jcode TUI is not a pull-only peer. |
|
|
46
|
+
| `docs/agent-notes/tasks.md` | no change | The changes are launch and preview only, with no task, board, routing or reviewer logic. |
|
|
47
|
+
| `docs/agent-notes/README.md` | no change | Stale only because `daemon.md`, a tracked path, changed; its content is unaffected. |
|
|
48
|
+
|
|
49
|
+
Found during the review, not changed here: `test/local-worker.test.ts` still derives Sidecar ports from the PID (removed with the sidecar under #553); older tests call `realpathSync` on temp dirs (`test/liveness.test.ts`, `test/peer-stop.test.ts`, `test/conflicts.test.ts`); `ahub upgrade` announces no Jcode default change, as it does for Kimi.
|
|
50
|
+
|
|
51
|
+
## Checks
|
|
52
|
+
|
|
53
|
+
- Each merged PR's exact-head CI passed (table above). The release branch is main `f9df83d6` plus the version, release notes and document corrections. The bundle is rebuilt with the pinned Bun 1.4.2 under host admission and is fresh; `tsc` is clean.
|
|
54
|
+
- The stale stamps are restamped to the release commit `09d85684` (reviewed against main `f9df83d6`; the release commit adds only the version, notes and documents); `node scripts/check-docs.mjs --require-fresh` reports 0 stale documents and runs again on the merged main before the tag.
|
|
55
|
+
- Exact-head CI on the release PR.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# 0.12.40 release verification
|
|
2
|
+
|
|
3
|
+
This record covers release preparation and source review. It does not claim publication, installation, a running-hub restart or native/live acceptance.
|
|
4
|
+
|
|
5
|
+
## Candidate
|
|
6
|
+
|
|
7
|
+
Version 0.12.40, control protocol 16 (unchanged; the daemon adds the `terminal_owner` and `cli_audit_delegated` features), from merged main. The person directed a bug-fix release on 2026-10-20 ("find the bug-fix issues, assign and implement them; include every bug fix in this release", then "finish and merge every PR, then release").
|
|
8
|
+
|
|
9
|
+
- Delivery and tasks: held task offers settle once the recipient owns and accepted the task (#434, PR #578); capacity-only declines are not lasting exclusions and planner-pull refusals name the cause (#531, PR #580); overlap findings stay within one repository, with `refs.repo` on propose and accept (#476, PR #583); Pi and the local worker report a hop-capped reply as not delivered (#550, PR #582).
|
|
10
|
+
- Recovery and launch: terminal records bind the live native owner and connected orphaned panes get reattach guidance (#482, PR #573); the Jcode TUI launcher records no managed terminal (#564, PR #565); `--print-command` names a mismatched session option (#574, PR #577); Jcode TUI review follow-ups (#559, PR #568).
|
|
11
|
+
- Jcode operations (#572, PR #575): a busy Jcode takes an `important` message into its running turn over its own socket (the hub never cancels a turn), an advisory when the main checkout is on a branch, an `ahub init` line that ends the turn after `hub_task_done`, and doctor lists the extra MCP servers the owned Jcode loads.
|
|
12
|
+
- Runtime: the completion-check runner settles within a 1 s kill grace when a killed child's events never arrive, and ignores a late exit or a retained stop after settling (#558, PR #581); Claude's turn completion is found beyond the 4 MiB tail (#528, PR #566); a reconnect re-announces a changed tool list (#490, PR #569); delegated CLI audits need the daemon feature `cli_audit_delegated` (#410, PR #571); stale-launch Claude channel plugins are refused (#551, PR #560).
|
|
13
|
+
- Config and models: the `pet` block is accepted by the schema and live reload (#483, PR #567); doctor names routing parse errors (#563, PR #570); the Switchyard sidecar is retired for in-process routes (#553, PR #561); `ahub memory profile-check` is split-aware (#536, PR #579).
|
|
14
|
+
- Still open (unchanged from 0.12.39): live native clients, installed managed-Pi #418 AC8, #438 AC7, the native console settings leg (#439 AC5), real upgrades with reattach (#463) and with a managed terminal and cancelled rows (#478), a live fresh Codex review, a live split of a real memory home, the agy live TUI/account leg (#251), Kimi's interactive-TUI coexistence and usage checks (#533), Jcode's TUI with a personal account (#464) and a live Jcode tool call past the watchdog (#542).
|
|
15
|
+
- New open legs: a live steer of a busy Jcode turn with a real provider (#572; fakes only) and a real upgrade that exercises the `terminal_owner` record (#482).
|
|
16
|
+
- Not in this release: #576 (the daemon runs hot under open turns; profile first, hub task #263), #584 (a manager test can leak a process on Ubuntu CI), #434 T3 (live check).
|
|
17
|
+
|
|
18
|
+
## Reviews
|
|
19
|
+
|
|
20
|
+
| PR | Final head | Review | CI |
|
|
21
|
+
| --- | --- | --- | --- |
|
|
22
|
+
| #578 (#434) | b1c4071e | planner approved at c03f79a7; the head adds only a main merge (CHANGELOG) | exact head, success |
|
|
23
|
+
| #573 (#482) | 1ff026c2 | planner: round 1 changes requested (synchronous `ps` per tick), approved at cc4ec070; the head adds a main merge (CHANGELOG, `DAEMON_FEATURES` union, bundle rebuilt) | exact head, success |
|
|
24
|
+
| #575 (#572) | 8a93ebd3 | codex: changes requested twice, approved at 359b0ad2; the head adds a main merge (CHANGELOG, bundle rebuilt) | exact head, success |
|
|
25
|
+
| #579 (#536) | 8215437b | codex approved at bd9b50be; the head adds a main merge (CHANGELOG) | exact head, success |
|
|
26
|
+
| #581 (#558) | 743c191a | codex approved; its finding (late exit or retained stop after settlement) fixed red-first at 743c191a; 200 macOS reruns: 1200 pass, 0 fail | exact head, success |
|
|
27
|
+
| #580 (#531) | 995bf1b2 | planner: changes requested (spec sentence, CHANGELOG placement), approved at a1ec66e4; the head adds a bundle rebuilt with the pinned Bun | exact head, success |
|
|
28
|
+
| #582 (#550) | 8249813e | planner approved at 3a2b33d7 (5 focused tests run); the head adds a main merge (import line) | exact head, success |
|
|
29
|
+
| #583 (#476) | 0e03675a | planner approved at d910d661 (19 focused tests run); the head adds a main merge (import union, bundle rebuilt) and a seed whose search text followed the changed line | exact head, success |
|
|
30
|
+
| #577 (#574), #571 (#410), #570 (#563), #569 (#490), #568 (#559), #567 (#483), #566 (#528), #565 (#564), #561 (#553), #560 (#551) | merged before this train | reviewed and merged earlier on 2026-10-20 | exact head, success |
|
|
31
|
+
|
|
32
|
+
## Document review
|
|
33
|
+
|
|
34
|
+
Fifteen documents were stale against the 0.12.39 stamps (`09d85684`), including `src/cli/help.ts`, newly registered so that the release review checks the `ahub help` text against the commands. Three fresh-context reviewers read them against the PRs above: one the person-facing documents, one the agent notes and one the help text. Each applied its own corrections, and the planner spot-checked the claims against the code.
|
|
35
|
+
|
|
36
|
+
| Document | Result | Checked claims and correction |
|
|
37
|
+
| --- | --- | --- |
|
|
38
|
+
| `README.md` | corrected | Status 0.12.40 (protocol 16); repository-scoped overlap (#476); the 0.12.39 Jcode TUI stop fixed (#564); delegated live-test commands need `cli_audit_delegated` (#410); open legs add the busy-Jcode steer (#572) and a real upgrade with `terminal_owner` (#482). |
|
|
39
|
+
| `docs/quickstart.md` | corrected | Install pin `v0.12.40`; "Upgrading to 0.12.40" (plugin restart, Jcode fixes, Switchyard retirement, re-run `ahub init` for the new block line, capacity declines, `refs.repo`, hop-cap result, the two daemon features); the local worker routes through `hub/stage` with `fixed_model` as the fallback. |
|
|
40
|
+
| `docs/operations.md` | corrected | Version and upgrade commands 0.12.40; capacity declines are not lasting and planner-pull refusals name the cause (#531); repository-scoped overlap (#476); the 1 s kill grace (#558); the main-checkout advisory (#572); tool-list re-announce (#490); the `routing.toml` defaults `ahub init` writes; doctor's routing parse-error row (#563); `--print-command` names a mismatched option (#574). |
|
|
41
|
+
| `docs/security.md` | corrected | The Jcode busy steer is a soft interrupt over the private socket, never a cancel, with an uncertain steer held as `needs_review`; the owned Jcode loads the MCP servers in its four config files (doctor shows names only); `refs.repo` is metadata and grants no access. |
|
|
42
|
+
| `src/cli/help.ts` | corrected | Added `ahub pet --palette`, `--as <instance>` for instance kinds, `ahub memory decay` and `ahub memory profile-check`; added missing flags (`pi --model`, `agy [args...]`, `settings get --json`, `task label --created`, `review --head`, `bench --json`, and `--json`, `--verbose`, `--color` on `upgrade` and `restart`). `test/help.test.ts`: 18 pass. |
|
|
43
|
+
| `docs/agent-notes/adapters.md` | corrected | The Jcode steer and MCP-set rules (#575); `JcodeOptionMismatch` names only the flag (#568, #577); the Jcode TUI is never a managed terminal (#565); `terminalOwner(launchId)` for Codex and Pi (#573). |
|
|
44
|
+
| `docs/agent-notes/bus.md` | corrected | A native peer's `onMessage` returns the hop-drop result and no off-roster note follows a hop drop (#582); an owner offer is moot only on the recipient's own acceptance (#578). Now tracks `src/hub/delivery-superseded.ts`. |
|
|
45
|
+
| `docs/agent-notes/daemon.md` | corrected | Delegated CLI audits and `cli_audit_delegated` (#571); `pet` only through `validatePetConfig` (#567); split-aware profile-check (#579); stale-launch refusal (#560); tool-list re-announce (#569); `native_tui_launch` errors may name the flag (#568). |
|
|
46
|
+
| `docs/agent-notes/models.md` | corrected | Switchyard removal checked (#561); the scope line fixed. |
|
|
47
|
+
| `docs/agent-notes/tasks.md` | corrected | The main-checkout note is advisory and a branch name reaches task text only through `publicMetadataText` (#575); #583 adds the repository-key rule. Now tracks `src/hub/main-checkout.ts`, `src/hub/checks.ts` and `src/hub/task-repository.ts`. |
|
|
48
|
+
| `docs/agent-notes/budget.md` | no change | No quota, pause or context rule changed; the 32 MiB line is already present. |
|
|
49
|
+
| `docs/agent-notes/local-worker.md` | no change | The send outcome (#582) is covered in `bus.md`. |
|
|
50
|
+
| `docs/agent-notes/benchmarks.md` | no change | The Jcode steer does not affect Qwen; #573 has no driver effect. |
|
|
51
|
+
| `docs/agent-notes/tests.md` | no change | No new test-gate rule. |
|
|
52
|
+
| `docs/agent-notes/README.md` | no change | Stale only through `daemon.md`. |
|
|
53
|
+
|
|
54
|
+
`AGENTS.md`: the project's own hub block is synced to `templates/AGENTS.block.md` (it lagged four lines, including the #572 line), the release rule now names the help-text check, and the area list names the new source files.
|
|
55
|
+
|
|
56
|
+
Found during the review, not changed here: `test/liveness.test.ts` and `test/conflicts.test.ts` still call `realpathSync` on temp dirs.
|
|
57
|
+
|
|
58
|
+
## Checks
|
|
59
|
+
|
|
60
|
+
- Each merged PR's exact-head CI passed (table above). The main run at `dc0ef55b` failed only on a leaked `ahub manager` process from the manager tests (4473 pass, 0 fail), filed as #584; the next main run passed.
|
|
61
|
+
- The release branch is merged main plus the version, release notes and document corrections. The bundle is rebuilt with the pinned Bun 1.4.2 under host admission and is fresh; `tsc` is clean.
|
|
62
|
+
- The stale stamps are restamped to the release commit `e57b1936` (reviewed against main `744a8ac9`; the release commit adds only the version, notes, bundle and documents); `node scripts/check-docs.mjs --require-fresh` reports 0 stale documents and runs again on the merged main before the tag.
|
|
63
|
+
- Exact-head CI on the release PR.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Jcode 0.98.1 TUI native prerequisite (#464, task #246)
|
|
2
|
+
|
|
3
|
+
The parent-sanitized native receipt `task246-native-evidence.json` records the prerequisite transport proof below. Installed Jcode was 0.98.1; the public native source revision was `1c7426eb1`. This record does not verify the pending hub implementation, its CI, or personal OAuth/account behavior. It supplements [the 0.98.1 contract record](2026-10-19-jcode-0.98.1.md).
|
|
4
|
+
|
|
5
|
+
## Probe scope
|
|
6
|
+
|
|
7
|
+
- Isolated `HOME`, `JCODE_HOME` and `TMPDIR`, with an owned private socket directory of mode `0700`; no real-home access.
|
|
8
|
+
- The same fixture prefix, `-p anthropic-api -m claude-sonnet-4-6`, on `serve`, ACP and the top-level native TUI. The TUI did not use `connect`.
|
|
9
|
+
- Only dummy per-run auth for a loopback provider fixture. No personal credentials or remote provider account proof; earlier failed OAuth fixture probes are not passes.
|
|
10
|
+
- Actual native PTY TUI observations, with provider replies supplied by the loopback fixture. This proves native transport behavior under that fixture, not model quality, production provider behavior or hub-tool execution.
|
|
11
|
+
|
|
12
|
+
## Recorded native results
|
|
13
|
+
|
|
14
|
+
| Case | Evidence | Result and boundary |
|
|
15
|
+
| --- | --- | --- |
|
|
16
|
+
| First save | `session/new` left no saved native session JSON. The first real loopback-provider `session/prompt` ended normally, made one loopback request and produced a verified native save. | A new ACP session ID alone is insufficient evidence for opening the selected TUI conversation. |
|
|
17
|
+
| J0-1 | The actual native PTY TUI displayed a new reply marker supplied only by the loopback provider after an ACP prompt. The native turn ended normally. | Passed the new ACP reply visibility prerequisite; the marker was not merely old transcript text. |
|
|
18
|
+
| J0-4 | The TUI closed during an in-flight prompt. The owned server and ACP remained alive at detach; the original prompt completed. | Passed the detach independence prerequisite for that owned native runtime. |
|
|
19
|
+
| J0-5 | The owned server restarted with the same home; `session/load` selected the same session ID. The top-level TUI displayed both the old transcript marker and a new ACP-turn marker. | Passed the native selected-session continuity prerequisite. The load response omitted the ID echo, so this is not automatic adapter recovery success. |
|
|
20
|
+
| Cleanup | Seven owned process groups had cleanup confirmations. The final process table was available and showed zero survivors. | Cleanup confirmed for the probe's owned groups. |
|
|
21
|
+
|
|
22
|
+
Native `session/load` still does not echo its selected session ID. The adapter's existing refusal of unproven automatic recovery remains unchanged; the observed native continuity does not satisfy that adapter identity contract.
|
|
23
|
+
|
|
24
|
+
## Launcher contract (J1.4)
|
|
25
|
+
|
|
26
|
+
The planner-approved correction follows the observed first-save boundary. While the same launch, socket and session lack saved native evidence, the launcher prints exactly:
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
jcode's TUI opens after its first hub turn; send it work, or Ctrl-C
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
It waits for the native save and then opens the TUI. Ctrl-C ends only the launcher wait and retains ACP; a provider-opened terminal runs the same launcher. The implementation must not send artificial production prompts or create native session JSON on the hub's behalf. These are launcher requirements, not validation results of this native probe.
|
|
33
|
+
|
|
34
|
+
## Accepted limits and remaining evidence
|
|
35
|
+
|
|
36
|
+
- No single-writer guard: TUI input may join an ACP turn.
|
|
37
|
+
- Native policy remains unmanaged, without hub approval or a hub sandbox.
|
|
38
|
+
- Source implementation, focused regressions, the full local gate and exact-head CI require separate receipts. This document's author performed read-only/text checks only and did not rerun the native probe, tests or builds.
|
|
39
|
+
- Personal account/OAuth behavior, real provider serving, project MCP discovery and real hub-tool calls remain unverified by this receipt.
|
package/docs/verified.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"documents": {
|
|
4
4
|
"README.md": {
|
|
5
|
-
"verifiedAgainst": "
|
|
5
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
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": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
15
15
|
"paths": [
|
|
16
16
|
"src/",
|
|
17
17
|
"templates/"
|
|
18
18
|
]
|
|
19
19
|
},
|
|
20
20
|
"docs/operations.md": {
|
|
21
|
-
"verifiedAgainst": "
|
|
21
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
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": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
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": "
|
|
46
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
47
47
|
"paths": [
|
|
48
48
|
"src/adapters/",
|
|
49
49
|
"src/pi/",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
]
|
|
70
70
|
},
|
|
71
71
|
"docs/agent-notes/benchmarks.md": {
|
|
72
|
-
"verifiedAgainst": "
|
|
72
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
73
73
|
"paths": [
|
|
74
74
|
"scripts/benchmarks/",
|
|
75
75
|
"test/benchmarks/",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
]
|
|
82
82
|
},
|
|
83
83
|
"docs/agent-notes/budget.md": {
|
|
84
|
-
"verifiedAgainst": "
|
|
84
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
85
85
|
"paths": [
|
|
86
86
|
"src/hub/budget.ts",
|
|
87
87
|
"src/cli/statusline-tee.ts",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
]
|
|
99
99
|
},
|
|
100
100
|
"docs/agent-notes/bus.md": {
|
|
101
|
-
"verifiedAgainst": "
|
|
101
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
102
102
|
"paths": [
|
|
103
103
|
"src/hub/bus.ts",
|
|
104
104
|
"src/hub/envelope.ts",
|
|
@@ -108,11 +108,12 @@
|
|
|
108
108
|
"src/hub/inference.ts",
|
|
109
109
|
"src/hub/daemon.ts",
|
|
110
110
|
"src/hub/supervision.ts",
|
|
111
|
-
"src/cli/reset.ts"
|
|
111
|
+
"src/cli/reset.ts",
|
|
112
|
+
"src/hub/delivery-superseded.ts"
|
|
112
113
|
]
|
|
113
114
|
},
|
|
114
115
|
"docs/agent-notes/daemon.md": {
|
|
115
|
-
"verifiedAgainst": "
|
|
116
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
116
117
|
"paths": [
|
|
117
118
|
"src/hub/daemon.ts",
|
|
118
119
|
"src/hub/control-client.ts",
|
|
@@ -167,7 +168,7 @@
|
|
|
167
168
|
]
|
|
168
169
|
},
|
|
169
170
|
"docs/agent-notes/local-worker.md": {
|
|
170
|
-
"verifiedAgainst": "
|
|
171
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
171
172
|
"paths": [
|
|
172
173
|
"src/adapters/local-worker.ts",
|
|
173
174
|
"src/local/",
|
|
@@ -179,16 +180,15 @@
|
|
|
179
180
|
]
|
|
180
181
|
},
|
|
181
182
|
"docs/agent-notes/models.md": {
|
|
182
|
-
"verifiedAgainst": "
|
|
183
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
183
184
|
"paths": [
|
|
184
185
|
"src/models/",
|
|
185
186
|
"src/hub/inference.ts",
|
|
186
|
-
"src/omniroute/"
|
|
187
|
-
"src/switchyard/"
|
|
187
|
+
"src/omniroute/"
|
|
188
188
|
]
|
|
189
189
|
},
|
|
190
190
|
"docs/agent-notes/tasks.md": {
|
|
191
|
-
"verifiedAgainst": "
|
|
191
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
192
192
|
"paths": [
|
|
193
193
|
"src/hub/tasks.ts",
|
|
194
194
|
"src/hub/board.ts",
|
|
@@ -208,11 +208,14 @@
|
|
|
208
208
|
"src/hub/review-brief.ts",
|
|
209
209
|
"src/hub/reviewer-pool.ts",
|
|
210
210
|
"src/hub/reviewer-pool-config.ts",
|
|
211
|
-
"src/hub/release-admission.ts"
|
|
211
|
+
"src/hub/release-admission.ts",
|
|
212
|
+
"src/hub/main-checkout.ts",
|
|
213
|
+
"src/hub/checks.ts",
|
|
214
|
+
"src/hub/task-repository.ts"
|
|
212
215
|
]
|
|
213
216
|
},
|
|
214
217
|
"docs/agent-notes/tests.md": {
|
|
215
|
-
"verifiedAgainst": "
|
|
218
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
216
219
|
"paths": [
|
|
217
220
|
"test/",
|
|
218
221
|
"scripts/check.sh",
|
|
@@ -224,20 +227,36 @@
|
|
|
224
227
|
".github/workflows/check.yml",
|
|
225
228
|
".github/workflows/release.yml",
|
|
226
229
|
"src/hub/child-process.ts",
|
|
227
|
-
"src/switchyard/sidecar.ts",
|
|
228
230
|
"src/local/sandbox.ts",
|
|
229
231
|
"src/models/mlx.ts",
|
|
230
232
|
"src/cli/upgrade-interactive.ts"
|
|
231
233
|
]
|
|
232
234
|
},
|
|
233
235
|
"docs/agent-notes/README.md": {
|
|
234
|
-
"verifiedAgainst": "
|
|
236
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
235
237
|
"paths": [
|
|
236
238
|
"src/cli/console-state.ts",
|
|
237
239
|
"src/cli/attention.ts",
|
|
238
240
|
"test/console-attention.test.ts",
|
|
239
241
|
"docs/agent-notes/daemon.md"
|
|
240
242
|
]
|
|
243
|
+
},
|
|
244
|
+
"src/cli/help.ts": {
|
|
245
|
+
"verifiedAgainst": "e57b1936bd234fad65aded000c921f5c9d7a3718",
|
|
246
|
+
"paths": [
|
|
247
|
+
"src/cli/main.ts",
|
|
248
|
+
"src/cli/launch.ts",
|
|
249
|
+
"src/adapters/definitions/native-cli-entry-claude.ts",
|
|
250
|
+
"src/adapters/definitions/native-cli-entry-codex.ts",
|
|
251
|
+
"src/adapters/definitions/native-cli-entry-jcode.ts",
|
|
252
|
+
"src/adapters/definitions/native-cli-entry-kimi.ts",
|
|
253
|
+
"src/adapters/definitions/native-cli-entry-local.ts",
|
|
254
|
+
"src/adapters/definitions/native-cli-entry-pi.ts",
|
|
255
|
+
"src/adapters/definitions/native-cli-entry-qwen.ts",
|
|
256
|
+
"src/adapters/definitions/native-cli-entry-types.ts",
|
|
257
|
+
"src/adapters/definitions/native-cli-entry.ts",
|
|
258
|
+
"src/adapters/agy/entry.ts"
|
|
259
|
+
]
|
|
241
260
|
}
|
|
242
261
|
}
|
|
243
262
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-hub",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.40",
|
|
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",
|