@scotthuang/agent-knock-knock 0.16.2 → 0.16.3

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 (56) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/connectors/deepseek-harness/README.md +86 -49
  3. package/connectors/pi/README.md +19 -9
  4. package/dist/src/callback-cli-adapter.js +2 -1
  5. package/dist/src/callback-cli-adapter.js.map +1 -1
  6. package/dist/src/callback-outbox-service.d.ts +2 -1
  7. package/dist/src/callback-outbox-service.js +15 -1
  8. package/dist/src/callback-outbox-service.js.map +1 -1
  9. package/dist/src/callback-transport.d.ts +3 -0
  10. package/dist/src/callback-transport.js +8 -0
  11. package/dist/src/callback-transport.js.map +1 -1
  12. package/dist/src/claude-native-outbox.d.ts +2 -1
  13. package/dist/src/claude-native-outbox.js +6 -1
  14. package/dist/src/claude-native-outbox.js.map +1 -1
  15. package/dist/src/claude-native-runtime.js +1 -0
  16. package/dist/src/claude-native-runtime.js.map +1 -1
  17. package/dist/src/codex-native-outbox.d.ts +2 -1
  18. package/dist/src/codex-native-outbox.js +6 -1
  19. package/dist/src/codex-native-outbox.js.map +1 -1
  20. package/dist/src/codex-native-runtime.js +1 -0
  21. package/dist/src/codex-native-runtime.js.map +1 -1
  22. package/dist/src/codex-running-executable.d.ts +7 -0
  23. package/dist/src/codex-running-executable.js +143 -0
  24. package/dist/src/codex-running-executable.js.map +1 -0
  25. package/dist/src/desktop-runtime.js +1 -0
  26. package/dist/src/desktop-runtime.js.map +1 -1
  27. package/dist/src/desktop-task-service.d.ts +2 -1
  28. package/dist/src/desktop-task-service.js +3 -1
  29. package/dist/src/desktop-task-service.js.map +1 -1
  30. package/dist/src/host-adapter.d.ts +5 -0
  31. package/dist/src/host-adapter.js +3 -0
  32. package/dist/src/host-adapter.js.map +1 -1
  33. package/dist/src/host-callback-recovery-candidates.d.ts +8 -0
  34. package/dist/src/host-callback-recovery-candidates.js +14 -0
  35. package/dist/src/host-callback-recovery-candidates.js.map +1 -0
  36. package/dist/src/host-profile-callback-recovery.d.ts +31 -0
  37. package/dist/src/host-profile-callback-recovery.js +107 -0
  38. package/dist/src/host-profile-callback-recovery.js.map +1 -0
  39. package/dist/src/host-profile-callback-transport.d.ts +6 -2
  40. package/dist/src/host-profile-callback-transport.js +28 -2
  41. package/dist/src/host-profile-callback-transport.js.map +1 -1
  42. package/dist/src/host-profile-runtime.d.ts +5 -0
  43. package/dist/src/host-profile-runtime.js +27 -4
  44. package/dist/src/host-profile-runtime.js.map +1 -1
  45. package/dist/src/host-profile.d.ts +1 -1
  46. package/dist/src/host-profile.js +3 -1
  47. package/dist/src/host-profile.js.map +1 -1
  48. package/dist/src/terminal-monitor-decision-policy.d.ts +1 -1
  49. package/dist/src/terminal-permission-control-list-projection.d.ts +1 -1
  50. package/dist/src/terminal-runtime-cli-adapter.js +5 -4
  51. package/dist/src/terminal-runtime-cli-adapter.js.map +1 -1
  52. package/dist/src/terminal-watch-cli-adapter.js +1 -1
  53. package/dist/src/terminal-watch-cli-adapter.js.map +1 -1
  54. package/dist/src/terminal-watch-cli-contract.d.ts +2 -0
  55. package/package.json +1 -1
  56. package/templates/openclaw-skills/agent-knock-knock/SKILL.md +2 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.16.3 / Pi 0.1.0-poc.11 / DeepSeek Harness 0.1.0-rc.14 — 2026-10-28
4
+
5
+ - Identify the exact running Codex native executable behind a verified npm Node launcher. Check process generation, forwarded arguments and mapped file identity before using its reported version; never substitute an unrelated executable from PATH. Fresh observations can recover existing versionless activity Watches without changing their saved anchors.
6
+ - Recover DSH callbacks across supported Web Host restarts within the same canonical Profile/Store scope. Persist controller ownership and prepared/accepted receipts; resolve and verify the original persisted Session, use the current trusted helper/socket/token, and acknowledge only after Session flush. Keep command identity separate from recovered callback aliases.
7
+ - Add an internal opt-in callback recovery catalogue with exact authorized route identities. Skip unowned routes before claiming delivery; explicitly adopt pre-fix Watch IDs and verified historical Profiles rather than scanning temporary files or inferring authorization from a session ID.
8
+ - Preserve process/input fences, Store authority, exact task attribution, original envelopes, deadlines and deduplication. Do not reset permanent or uncertain delivery outcomes. Older Hosts without the required Session restore/flush APIs retain live-session-only behavior; OpenClaw's default transport is unchanged.
9
+ - Keep action contract **35**, compact List **v4**, Watch schema **3**, Store writer protocol **11** and public tool parameters. Recovery does not turn stable idle into exact task success or solve reconciliation latency. The upstream live restart evidence covers Codex terminal activity; other producers have automated regression coverage, not new live-channel validation.
10
+ - Release Pi **0.1.0-poc.11** and DeepSeek Harness **0.1.0-rc.14**, both pinning core **0.16.3** with synchronized Skills. Core remains on `latest`; both connectors remain prereleases on `next`, with unchanged Host version ranges.
11
+
3
12
  ## 0.16.2 / Pi 0.1.0-poc.10 / DeepSeek Harness 0.1.0-rc.13 — 2026-10-27
4
13
 
5
14
  - Allow degraded terminal-activity Watch creation without optional native process UUID or birth metadata. Reuse Claude's independently observed physical OS birth when available, retain every captured process fence, and report incomplete evidence instead of claiming exact task completion. Do not mix OS birth with Claude's UTC process-start value or substitute UUID namespaces.
@@ -13,10 +13,9 @@ tests, lockfile, bundle manifest, and connector-specific release tag.
13
13
 
14
14
  ## Compatibility
15
15
 
16
- Connector **0.1.0-rc.13** pins AKK **0.16.2** in its package and lockfile,
17
- including state-derived List guidance and degraded terminal-activity Watch
18
- identity handling. It
19
- exposes that runtime's 27 semantic tools, including Codex CLI backend and
16
+ Connector **0.1.0-rc.14** pins AKK **0.16.3** in its package and lockfile,
17
+ including scoped persistent callback recovery and verified running-process
18
+ Codex version discovery. It exposes that runtime's 27 semantic tools, including Codex CLI backend and
20
19
  Desktop operations when the selected conversation advertises them. `list`
21
20
  returns current discoverable conversations; `watches` separately returns recent
22
21
  monitoring records (24 hours by default), plus active or unresolved records.
@@ -38,16 +37,18 @@ split runtime sets fail before mounting. The Host's own plugin peer preflight
38
37
  must also pass without a version-risk exemption. Message and schema helpers
39
38
  come from that verified Host tree, not checkout development dependencies.
40
39
 
41
- Callbacks use AKK's producer-specific message source and the same live Agent's
40
+ Callbacks use AKK's producer-specific message source and the exact live Agent's
42
41
  Inbox. Idle Agents receive a waking `followup`; running Agents receive
43
- `inject` context at a later step. Acceptance means Inbox admission, not proof
44
- that a model has consumed it or a user has seen it. Host exit or plugin unload
45
- invalidates that Host instance's routes; callbacks do not migrate to a new
46
- Agent merely because it has the same session ID.
47
-
48
- Headless/one-shot Harness processes, Host-exit callback continuity, Windows
49
- named pipes, and DSH Desktop's embedded launcher are outside this connector's
50
- validated scope. Existing Codex CLI backend and Desktop connections need no
42
+ `inject` context at a later step. Acceptance does not prove that a model has
43
+ consumed the message or a user has seen it. Hosts with the required persistent
44
+ Session resolver, event inventory and flush barrier can restore the original
45
+ Session after restart within the same Web Profile and AKK Store. Earlier
46
+ process-private Watches require explicit operator adoption; a matching session
47
+ ID alone is never recovery authority. Older Hosts without these APIs retain
48
+ live-session delivery only. See [Callback delivery and recovery](#callback-delivery-and-recovery).
49
+
50
+ Headless/one-shot Harness processes, Windows named pipes, and DSH Desktop's
51
+ embedded launcher are outside this connector's validated scope. Existing Codex CLI backend and Desktop connections need no
51
52
  terminal container when their advertised capability is available. Claude Code
52
53
  and terminal-specific operations retain their documented transport conditions;
53
54
  see [core compatibility](../../README.md#compatibility) and the
@@ -79,7 +80,7 @@ can select an older `latest` build.
79
80
  DSH `0.2.1-rc.2` requires connector `0.1.0-rc.6` or a later release that
80
81
  explicitly supports that Host. Connector `0.1.0-rc.5` does not support this RC.
81
82
  Use `next`, or pin
82
- `@scotthuang/agent-knock-knock-deepseek-harness@0.1.0-rc.13`.
83
+ `@scotthuang/agent-knock-knock-deepseek-harness@0.1.0-rc.14`.
83
84
 
84
85
  ```sh
85
86
  dsh plugin --profile web add @scotthuang/agent-knock-knock-deepseek-harness@next
@@ -253,30 +254,42 @@ The related controls are deliberately different:
253
254
 
254
255
  ## Callback delivery and recovery
255
256
 
256
- The synchronous callback acknowledgement means that the message was admitted
257
- to the exact DeepSeek Harness Agent's inbox/session log. It does not prove that
258
- the model consumed the message or that asynchronous persistence reached stable
259
- storage. `status` and Terminal Watch are the recovery path.
260
-
261
- - Inspect the original `turn_id` or `watch_id` with `status`. If that exact
262
- record advertises `retry_callback`, a requested retry reuses the persisted
263
- callback message and delivery identity. An uncertain result is not evidence
264
- of non-delivery; do not replay it without a supported recovery action.
265
- - A completed Watch still provides its exact result even when the original
266
- callback route is gone. Read that result; creating another Watch does not
267
- recover or replay the historical notification. For work that is still
268
- running, a fresh observation from a current `list` row requires the user's
269
- monitoring request. Do not transfer an old record's callback ownership.
270
- - A Host restart creates a new private Profile revision. Existing watches retain
271
- their original route, so callbacks owned by the old Host incarnation fail
272
- closed instead of being redirected to a new Agent. There is deliberately no
273
- cross-restart callback migration in this prerelease.
274
- - Replacing an Agent object with another Agent that has the same session id also
275
- does not transfer its route. Start a current command/tool invocation from the
276
- new Agent before expecting new callback ownership.
277
- - Exact process-lifetime idempotency records return the original acceptance id
278
- for a duplicate callback. Reusing an idempotency key with different content
279
- is rejected.
257
+ On Hosts exposing persistent session recovery and a durability barrier, callback
258
+ ownership is stored under the canonical Web Profile and AKK Store. Restarting
259
+ that same Host restores the original persistent Session through DSH's session
260
+ controller. The callback contract revision stays stable across restarts; the
261
+ private socket and token still rotate. Each callback uses the current runtime's
262
+ helper and credentials, never an old socket left in a temporary directory.
263
+
264
+ - A successful callback acknowledgement means DSH admitted the message and its
265
+ session durability barrier completed. It does not prove that the model has
266
+ consumed the message or that the browser displayed it.
267
+ - Delivery identity and the precreated DSH message ID are journaled before
268
+ admission. Retries retain the original ID; after restart, recovery checks the
269
+ original Session's own persisted events, including consumed inbox messages.
270
+ Inherited fork messages do not prove admission. Ambiguous evidence remains
271
+ uncertain instead of authorizing a duplicate injection.
272
+ - The same session ID alone is not recovery authority: profile/Store ownership,
273
+ immutable Session header, and the live Agent object must match. A different
274
+ same-ID Agent in the current process cannot inherit an existing callback.
275
+ - Inspect the original `turn_id` or `watch_id` with `status`. Observation and
276
+ settlement are separate from notification delivery. A working or unknown
277
+ activity Watch does not settle merely because the Host restarted. Terminal
278
+ activity becoming idle remains best-effort evidence, not exact task success.
279
+ - Older Hosts without the required APIs retain live-session callback behavior
280
+ and log that restart recovery is unavailable. OpenClaw and other connectors
281
+ do not opt into the DSH recovery authority.
282
+
283
+ Watches created by the earlier process-private connector require explicit
284
+ operator adoption; their nonce and encoded Session ID do not establish which
285
+ Web Profile owns them. Select the original Watch and its original generated
286
+ Profile file in the configuration below. AKK validates both records, the known
287
+ connector callback contract, and the original persistent DSH Session before
288
+ recording scoped adoption. It does not rewrite the Watch, change its deadline,
289
+ reset an uncertain/permanent notification, or run the historical helper. Once
290
+ adoption is recorded, the old temporary file is no longer required. Missing or
291
+ conflicting evidence stops adoption with a diagnostic; do not hand-edit Store
292
+ records or substitute a similarly named Session.
280
293
 
281
294
  ## Configuration
282
295
 
@@ -288,6 +301,11 @@ configuration object:
288
301
  name: '@scotthuang/agent-knock-knock-deepseek-harness'
289
302
  config:
290
303
  lifecycleIntervalMs: 5000
304
+ # Optional, explicit one-time adoption of an earlier connector's Watch:
305
+ # callbackRecovery:
306
+ # adoptWatches:
307
+ # - watchId: terminal-watch-user-send-<exact-id>
308
+ # historicalProfilePath: /absolute/path/to/original/host-profile.json
291
309
  pluginConfig:
292
310
  storeDir: /absolute/path/to/akk-store
293
311
  ```
@@ -296,10 +314,9 @@ configuration object:
296
314
  `storeDir`; a relative value is resolved from the Web Host's working directory.
297
315
  When omitted, this connector uses
298
316
  `~/.agent-knock-knock/hosts/deepseek-harness/store` for both tools and lifecycle
299
- reconciliation. Keep a custom Store separate from OpenClaw, Pi, and other DSH
300
- Host processes: the pinned core does not isolate every native callback claim
301
- by Host authority when several Hosts share one Store. An unrelated reconciler
302
- can otherwise claim a callback that it cannot deliver.
317
+ reconciliation. Keep a custom Store separate from OpenClaw, Pi, and other DSH Host processes.
318
+ The opt-in recovery runtime filters unowned callback routes before claiming
319
+ notifications; this does not authorize unrelated Hosts to share Store writers.
303
320
 
304
321
  The default separates DSH from other Host types, not from another DSH process.
305
322
  If running multiple DSH Hosts or profiles concurrently, configure a distinct
@@ -328,7 +345,12 @@ The optional bundle patch mounts only the Host plugin:
328
345
  absolute Node executable and package artifact without a shell or `PATH`
329
346
  lookup.
330
347
  - The callback IPC frame is authenticated and bounded. Successful admission is
331
- tied to one exact Agent object and one Host incarnation.
348
+ tied to the authorized persistent Session and its current exact Agent object.
349
+ - Durable callback authority and delivery journals are private files under
350
+ `<profile>/.akk-callback-authority/`, scoped to the canonical Store path. An
351
+ exclusive process-generation lock rejects concurrent owners; only a proven
352
+ dead owner can be reclaimed. Keep this directory when upgrading or backing
353
+ up the profile. Deleting it discards restart recovery authority.
332
354
  - AKK's durable Store contains task, Session, Turn, receipt, watch, and callback
333
355
  recovery metadata and may contain user request or callback text. AKK creates
334
356
  Store directories as `0700` and files as `0600`; keep a custom Store on a
@@ -348,8 +370,8 @@ The optional bundle patch mounts only the Host plugin:
348
370
  | Activation reports an unsupported or split Harness | Check `dsh --version` and run `dsh plugin --profile web why @deepseek-ai/dsh-base @deepseek-ai/dsh-agent @deepseek-ai/dsh-commands @deepseek-ai/dsh-llm @deepseek-ai/dsh-tools`. Update the whole Host coherently; do not repair it with a standalone connector npm install. |
349
371
  | `/akk list` finds no live conversations | Check the selected target's direct-connection or terminal discovery diagnostics and core compatibility. A supported Codex CLI backend/Desktop connection does not require tmux/Herdr; terminal-only control needs an eligible live pane. Do not infer missing identity from cwd alone. |
350
372
  | A mutation is absent or rejected | Refresh `/akk list` or structured `list` and use only the action currently advertised for that exact row. Resolve a current approval first when it blocks input. Do not reuse stale IDs or action payloads. |
351
- | The callback never appears | Query the original Turn/Watch Status and separate task result, callback admission, and user visibility. Use only a retry/recovery action advertised for that record and requested by the user. A new Host does not inherit old callback ownership. |
352
- | Callback delivery reports IPC unavailable or timeout | Keep the originating Web Host alive and inspect whether it was restarted or disposed. The socket is Host-process-private and has an eight-second callback boundary; there is no cross-process fallback route. |
373
+ | The callback never appears | Query the original Turn/Watch Status and separate task result, callback admission, and user visibility. Use only a retry/recovery action advertised for that record and requested by the user. Recovery requires the same profile/Store owner and original persistent Session; legacy routes require explicit adoption. |
374
+ | Callback delivery reports IPC unavailable or timeout | Inspect the current Host startup and recovery diagnostics. A restarted authorized Host uses its new private socket; old socket files are not recovery targets. Missing session authority must be resolved explicitly. |
353
375
  | A Watch completed but its callback was missed | Read the original `watch_id` Status for its exact task result and callback disposition. Do not create a replacement Watch for completed work or treat it as historical-notification recovery. |
354
376
  | A tool call fails schema validation | Pass only the documented fields and complete semantic IDs returned by AKK. DeepSeek's discovery schema is a projection; the connector always enforces the full original AKK schema before execution. |
355
377
  | Windows, headless, or one-shot use fails | These surfaces are outside this prerelease's supported scope. Use the resident POSIX Web Host. |
@@ -368,7 +390,7 @@ exact reviewed version:
368
390
 
369
391
  ```sh
370
392
  dsh plugin --profile web add @scotthuang/agent-knock-knock-deepseek-harness@next
371
- dsh plugin --profile web add @scotthuang/agent-knock-knock-deepseek-harness@0.1.0-rc.13
393
+ dsh plugin --profile web add @scotthuang/agent-knock-knock-deepseek-harness@0.1.0-rc.14
372
394
  ```
373
395
 
374
396
  Restart the Web Host after either operation. The connector pins the exact AKK
@@ -396,7 +418,7 @@ dsh plugin --profile web add "file:$(pwd -P)/connectors/deepseek-harness"
396
418
  ```
397
419
 
398
420
  Restart `dsh web` after installation. The child package currently installs and
399
- tests against its pinned AKK runtime `0.16.2`; building the current repository
421
+ tests against its pinned AKK runtime `0.16.3`; building the current repository
400
422
  root does not silently replace that dependency. Before core publication, test
401
423
  the candidate core tarball in isolation as described in the
402
424
  [coordinated release policy](../../CONTRIBUTING.md#coordinated-package-releases);
@@ -407,6 +429,21 @@ compatibility review rather than an implicit local link.
407
429
 
408
430
  ## Tests and release status
409
431
 
432
+ Connector **`0.1.0-rc.14`** pins AKK **`0.16.3`** and its synchronized Skill.
433
+ Hosts with the required persistent Session resolver, event inventory and flush
434
+ barrier can recover callback ownership within the same Web Profile and AKK
435
+ Store. Durable message IDs, admission journals and exact Session/Agent checks
436
+ preserve deduplication across restarts; restored callback aliases do not change
437
+ the tools' current action authority. Earlier process-private Watches require
438
+ explicit operator adoption, and older Hosts without these APIs remain live-only.
439
+ A callback acknowledgement proves durable Host admission, not model consumption
440
+ or delivery to an external channel. Codex version discovery also verifies the
441
+ selected process's mapped executable instead of borrowing an installed version.
442
+ The supported DSH/Cordis version set is unchanged. This release does not extend
443
+ restart recovery to Pi/OpenClaw or claim acceptance for every Host/native task;
444
+ see [Callback delivery and recovery](#callback-delivery-and-recovery) for the
445
+ scope and evidence requirements. The connector remains on npm `next`.
446
+
410
447
  Connector **`0.1.0-rc.13`** pins AKK **`0.16.2`** and its synchronized Skill.
411
448
  Degraded terminal-activity Watches tolerate absent optional process UUID/birth
412
449
  metadata. A proven identity change still invalidates the observation; temporarily
@@ -493,7 +530,7 @@ npm run pack:check
493
530
 
494
531
  These commands typecheck the connector, run its fast wiring/profile/IPC/schema
495
532
  tests, and inspect the package tarball. They do not publish anything. The
496
- `0.1.0-rc.13` lockfile uses the published DeepSeek Harness `0.2.1-rc.2`
533
+ `0.1.0-rc.14` lockfile uses the published DeepSeek Harness `0.2.1-rc.2`
497
534
  SDK packages and Cordis `4.0.5`. Its real ToolRuntime regression checks
498
535
  canonical result rendering, exact Agent ownership, typed questionnaire payloads,
499
536
  and rejection before dispatch when targets are ambiguous or stale. This is
@@ -538,7 +575,7 @@ gate to both connectors. Their package versions are validated independently.
538
575
  Publishing additionally requires both explicit flags:
539
576
 
540
577
  ```sh
541
- npm run release:check -- --publish --confirm-version 0.1.0-rc.13
578
+ npm run release:check -- --publish --confirm-version 0.1.0-rc.14
542
579
  ```
543
580
 
544
581
  Prereleases use npm tag `next`; stable versions use `latest`. Repository tags
@@ -12,9 +12,10 @@ socket.
12
12
 
13
13
  ## Status and compatibility
14
14
 
15
- Connector **0.1.0-poc.10** pins AKK **0.16.2**, including CLI direct
16
- connections, Codex Desktop, Recovery, state-derived List guidance and degraded
17
- terminal-activity Watch identity handling. Its generated Skill and registered tools are verified
15
+ Connector **0.1.0-poc.11** pins AKK **0.16.3**, including CLI direct
16
+ connections, Codex Desktop, Recovery, state-derived List guidance and verified
17
+ running-process Codex version discovery. Its generated Skill and registered
18
+ tools are verified
18
19
  against that exact core package at startup. See the [root compatibility
19
20
  summary](../../README.md#compatibility) for the coding-agent versions and
20
21
  operation-specific limits. Updating AKK core elsewhere does not update this
@@ -34,7 +35,7 @@ The current compatibility contract is intentionally exact:
34
35
  supported older runtime, installed from the official
35
36
  `@earendil-works/pi-coding-agent` package.
36
37
  - Node.js `22.19.0` or newer.
37
- - AKK `0.16.2`, pinned by this connector's package and lockfile. A different
38
+ - AKK `0.16.3`, pinned by this connector's package and lockfile. A different
38
39
  version at the repository root is not substituted automatically. Before core
39
40
  publication, test its candidate tarball in isolation under the
40
41
  [coordinated release policy](../../CONTRIBUTING.md#coordinated-package-releases).
@@ -86,8 +87,8 @@ pi list
86
87
  ```
87
88
 
88
89
  Using `next` follows compatible Pi connector prereleases. To pin this exact
89
- core `0.16.2` connector, install
90
- `npm:@scotthuang/agent-knock-knock-pi@0.1.0-poc.10`; exact versions are pinned
90
+ core `0.16.3` connector, install
91
+ `npm:@scotthuang/agent-knock-knock-pi@0.1.0-poc.11`; exact versions are pinned
91
92
  and are not advanced by Pi's bulk update command.
92
93
 
93
94
  ### 4. Start Pi
@@ -452,7 +453,7 @@ Harness independently; it does not require their package versions to match.
452
453
  Publishing Pi additionally requires explicit version confirmation:
453
454
 
454
455
  ```sh
455
- npm run release:check -- --publish --confirm-version 0.1.0-poc.10
456
+ npm run release:check -- --publish --confirm-version 0.1.0-poc.11
456
457
  ```
457
458
 
458
459
  Prereleases use npm tag `next`; stable versions use `latest`. Tags and GitHub
@@ -502,6 +503,15 @@ a presentation change, not evidence that a candidate is disconnected, and it
502
503
  does not change Send routing or callback ownership. Sole empty conversations
503
504
  and exact frontend associations remain visible.
504
505
 
506
+ Connector **`0.1.0-poc.11`** pins AKK **`0.16.3`** and its synchronized Skill.
507
+ Codex version discovery verifies the executable mapped by the selected live
508
+ process, including the official Node launcher's unique native child, before
509
+ using its version. It does not substitute the newly installed CLI version for
510
+ an older running process. Pi Host compatibility, callback ownership and restart
511
+ limits remain unchanged; the DSH-specific durable recovery support does not
512
+ migrate Pi callbacks. This dependency refresh adds no new Pi live-model or
513
+ external-channel acceptance claim and remains on npm `next`.
514
+
505
515
  Connector **`0.1.0-poc.10`** pins AKK **`0.16.2`** and its synchronized Skill.
506
516
  Degraded terminal-activity Watches tolerate absent optional process UUID/birth
507
517
  metadata. A proven identity change still invalidates the observation; temporarily
@@ -558,8 +568,8 @@ or external-channel delivery run.
558
568
 
559
569
  These are POC acceptance results, not a promise of compatibility with every
560
570
  future Pi, Codex, Claude Code, tmux, or Herdr release. Version
561
- `0.1.0-poc.10` is an npm prerelease distributed through the `next` dist-tag;
562
- its publication is coordinated with core `0.16.2` and the DSH connector.
571
+ `0.1.0-poc.11` is an npm prerelease distributed through the `next` dist-tag;
572
+ its publication is coordinated with core `0.16.3` and the DSH connector.
563
573
  ClawHub publication remains a separate channel.
564
574
 
565
575
  ## Deliberate POC limits
@@ -203,7 +203,8 @@ function callbackOutboxService() {
203
203
  }
204
204
  }
205
205
  },
206
- delivery: { deliver: deliverCallbackViaTransport,
206
+ delivery: { canDeliver: runtime.delivery.transport.canDeliver,
207
+ deliver: deliverCallbackViaTransport,
207
208
  runTransaction: runCallbackTransaction }
208
209
  });
209
210
  }
@@ -1 +1 @@
1
- {"version":3,"file":"callback-cli-adapter.js","sourceRoot":"","sources":["../../src/callback-cli-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"callback-cli-adapter.js","sourceRoot":"","sources":["../../src/callback-cli-adapter.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export { resolveCallbackGatewayRoute } from "./callback-route-service.js";
6
6
  export type { CallbackGatewayRouteCandidate, CallbackPreparationOptions } from "./callback-route-service.js";
7
7
  import { type CallbackOutboxLane } from "./callback-outbox-settlement.js";
8
8
  import type { TranscriptEvent } from "./transcript.js";
9
- import { type CallbackEnvelopeV1, type CallbackRouteV1 } from "./callback-transport.js";
9
+ import { type CallbackEnvelopeV1, type CallbackRouteV1, type CallbackTransport } from "./callback-transport.js";
10
10
  export interface PrepareCallbackOutboxInput {
11
11
  options: CallbackPreparationOptions;
12
12
  logPath: string;
@@ -152,6 +152,7 @@ export interface CallbackOutboxServicePorts {
152
152
  crashCheckpoint(name: "after_local_completion_state"): void;
153
153
  };
154
154
  delivery: {
155
+ canDeliver?: CallbackTransport["canDeliver"];
155
156
  deliver(input: DeliverCallbackInput): CallbackDeliveryOutcome;
156
157
  runTransaction(options: CallbackPreparationOptions): CallbackExecutionResult;
157
158
  };
@@ -6,7 +6,8 @@ export { resolveCallbackGatewayRoute } from "./callback-route-service.js";
6
6
  import { callbackOutboxEvent, callbackOutboxField, createCallbackOutboxSettlement } from "./callback-outbox-settlement.js";
7
7
  import { createDurableNotificationLease } from "./durable-notification-kernel.js";
8
8
  import { canonicalJson } from "./canonical-json.js";
9
- import { parseCallbackAttemptOutcome } from "./callback-transport.js";
9
+ import { callbackRouteDeliveryEligible, parseCallbackAttemptOutcome } from "./callback-transport.js";
10
+ import { resolveCallbackRouteAuthority } from "./callback-route-authority.js";
10
11
  import { isRecord, nonBlankString as stringValue } from "./value-guards.js";
11
12
  function supersedeNotificationForLifecycleMessage(conversation, message, now) {
12
13
  return message.type === "done" || message.type === "error"
@@ -86,6 +87,8 @@ export function createCallbackOutboxService(ports) {
86
87
  inheritedDelivery
87
88
  });
88
89
  assertDispatchCallbackRouteAuthority(conversation, callbackRoute);
90
+ if (options.recordOnly !== true)
91
+ assertCallbackRouteRuntime(ports.delivery, callbackRoute);
89
92
  const deliveryOptions = resolvedDeliveryOptions({
90
93
  options,
91
94
  conversation,
@@ -1003,6 +1006,11 @@ function rejectManualRetryDisposition(conversation, disposition) {
1003
1006
  disposition.reason);
1004
1007
  }
1005
1008
  }
1009
+ function assertCallbackRouteRuntime(transport, route) {
1010
+ if (!callbackRouteDeliveryEligible(transport, route)) {
1011
+ throw new Error("callback route is unavailable in this Host runtime; no delivery attempt was claimed");
1012
+ }
1013
+ }
1006
1014
  function reconcileCallbackDelivery(ports, settlement, { statePath, logPath, delayMs, callbackOutboxLane = "lifecycle" }) {
1007
1015
  const storeDir = ports.state.storeDirForStatePath(statePath);
1008
1016
  return ports.state.withWriter(storeDir, () => ports.state.withTransaction(statePath, () => {
@@ -1088,6 +1096,10 @@ function reconcileCallbackDelivery(ports, settlement, { statePath, logPath, dela
1088
1096
  reason: disposition.reason
1089
1097
  };
1090
1098
  }
1099
+ if (!callbackRouteDeliveryEligible(ports.delivery, resolveCallbackRouteAuthority({ conversation, primaryOutbox: callbackDelivery }))) {
1100
+ return { handled: true, conversationId, status: "skipped",
1101
+ reason: "callback_route_runtime_unavailable" };
1102
+ }
1091
1103
  const configuredDelayMs = Number(delayMs);
1092
1104
  const retryDelayMs = Number.isFinite(configuredDelayMs) &&
1093
1105
  configuredDelayMs >= 0
@@ -1194,6 +1206,8 @@ function observeCallbackRetryMonitor(ports, statePath, callbackOutboxLane) {
1194
1206
  if (disposition.state !== "retryable") {
1195
1207
  return { kind: "stop" };
1196
1208
  }
1209
+ if (!callbackRouteDeliveryEligible(ports.delivery, resolveCallbackRouteAuthority({ conversation, primaryOutbox: delivery })))
1210
+ return { kind: "stop" };
1197
1211
  return {
1198
1212
  kind: "retryable",
1199
1213
  conversation,