agent-conveyor 0.1.21 → 0.1.23

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/README.md CHANGED
@@ -168,6 +168,7 @@ conveyor plugin-status
168
168
 
169
169
  The per-project default ledger for operator sessions is
170
170
  `.codex-workers/workerctl.db`. The initial included skills are
171
+ `conveyor-app-wake-relay`, `conveyor-smoke-app-connections`,
171
172
  `conveyor-create-pair`, `conveyor-create-worker-set`,
172
173
  `conveyor-check-status`, and `conveyor-whats-next-nudger`.
173
174
 
@@ -185,7 +186,16 @@ For multiple workers, start with `Use the conveyor-create-worker-set skill`.
185
186
  The installed plugin skill should call the `conveyor` CLI, choose names, create
186
187
  the no-tmux binding with `create-disposable-binding`, point the worker at
187
188
  `worker-inbox`, and use `loop-status` plus telemetry receipts before reporting
188
- that the loop is ready. When the manager is itself running in the Codex app and
189
+ that the loop is ready. Pair and worker-set skills run
190
+ `conveyor-smoke-app-connections` before real task work by default. Required
191
+ smoke first checks package/plugin/ledger/thread metadata, then starts a
192
+ nonce-scoped `app-smoke` session and blocks real work until the manager and each
193
+ worker have visible app-thread send receipts, fresh app heartbeats, durable
194
+ received/accepted acknowledgements, and an `app-smoke status` result with
195
+ `real_work_allowed=true`. The plain CLI records and evaluates receipts; the
196
+ Codex app skill/operator layer must perform live `send_message_to_thread`
197
+ delivery and record `sent`, `blocked`, or skipped/advisory evidence.
198
+ When the manager is itself running in the Codex app and
189
199
  thread tools are available, the skill should first call `create_thread` for a
190
200
  fresh same-project worker, name it with `set_thread_title`, pass the returned
191
201
  thread identity through `--worker-codex-app-thread-id` and
@@ -207,6 +217,12 @@ single `CONVEYOR IDLE` line.
207
217
  For bounded follow-up passes after the first worker result, use
208
218
  `Use the conveyor-whats-next-nudger skill`.
209
219
 
220
+ For stale Codex app roles, use `Use the conveyor-app-wake-relay skill`. It
221
+ runs `app-wakeup-dispatch`, sends only prepared `send_ready=true` prompts with
222
+ Codex app thread tools, and records `sent`, `skipped`, or `blocked` delivery
223
+ receipts with `app-wakeup-record-delivery`. The app-thread prompt wakes the
224
+ session to poll; it is not durable task truth.
225
+
210
226
  Dispatch is core infrastructure for supervised worker/manager pairs. The
211
227
  `pair` workflow starts a detached Dispatch watch process by default so worker
212
228
  completion is routed to the bound manager mechanically. For manually bound
@@ -515,7 +531,8 @@ stay out of receipts.
515
531
  [--json]` — Record what the Codex app/operator layer did with a wake action.
516
532
  `sent` is accepted only when the referenced `app-wakeup-dispatch` receipt has
517
533
  a matching `ready_to_send` action with `send_ready=true` and the same thread
518
- id; healthy and blocked roles must be recorded as `skipped` or `blocked`.
534
+ id; healthy roles must be recorded as `skipped`; missing-thread blockers and
535
+ failed app-thread sends must be recorded as `blocked` with a reason.
519
536
  - `app-autopilot start|stop|status TASK [--dispatcher-id ID]
520
537
  [--interval SECONDS] [--watch-iterations N] [--stale-after N]
521
538
  [--quiet-after N] [--json]` —
@@ -531,6 +548,19 @@ stay out of receipts.
531
548
  heartbeats since the last command or inbox-consumption receipt, it recommends
532
549
  `stop_autopilot` so operators can quiesce blocked/no-progress loops instead
533
550
  of repeating idle pulses.
551
+ - `app-smoke preflight|start|record|status TASK [--mode required|advisory|skip]
552
+ [--scope pair|worker-set] [--smoke-id ID] [--nonce NONCE]
553
+ [--role manager|worker] [--status sent|skipped|received|accepted|blocked]
554
+ [--thread-id ID] [--notification-id N] [--worker-count N] [--from-stdin]
555
+ [--json]` —
556
+ Record and evaluate the durable side of Codex app connection smoke. Required
557
+ mode blocks real work until the active binding has bound app thread ids,
558
+ nonce-matching send receipts, fresh app heartbeats after smoke start, worker
559
+ `received`, and manager/worker `accepted` receipts. Advisory mode reports the
560
+ same blockers without blocking, and skip mode records an explicit bypass. The
561
+ CLI does not call Codex app thread tools; use the
562
+ `conveyor-smoke-app-connections` plugin skill from a Codex app operator
563
+ session for live `send_message_to_thread` delivery.
534
564
  - `app-worker-rotation-plan TASK --old-worker-thread-id ID [--require-handoff]
535
565
  [--reason TEXT] [--json]` — Prepare a Codex app fresh-worker rotation. The
536
566
  CLI verifies that `ID` exactly matches the active bound worker session before
@@ -807,6 +837,15 @@ stay out of receipts.
807
837
  - `worker-inbox <task> [--consume-next] [--wait] [--timeout N] [--interval N]
808
838
  [--limit N] [--json]` — Resolve the task's bound worker session and read its
809
839
  dispatcher inbox.
840
+ - `inbox-ack <task> --notification-id N [--json]` — Read durable
841
+ role-authored acknowledgement history for one routed notification.
842
+ - `inbox-ack <task> --notification-id N --role manager|worker
843
+ --status received|accepted|blocked --from-stdin [--correlation-id C]
844
+ [--json]` — Record that the addressed role saw a delivered notification and
845
+ either received, accepted, or blocked on it. `received` requires delivery;
846
+ `accepted` and `blocked` require consumption. Use this after visible Codex app
847
+ sessions print `CONVEYOR RECEIVED`; do not use direct app-thread text as the
848
+ durable receipt.
810
849
 
811
850
  ### Actuation
812
851