c8ctl-plugin-nano 1.65.0 → 1.66.0

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
@@ -379,6 +379,22 @@ If workers show `advisory` (or stay `connecting`) while jobs still run, that's t
379
379
  "connected to the engine but empty Cockpit" case: point them at the app with
380
380
  `export NANO_AGENTIC_URL=http://<engine-host>:<appUi.port>` (e.g. `:3000`).
381
381
 
382
+ **`settlement-pending` in the `JOB` column.** A worker's `JOB` cell normally
383
+ shows the job key it is running (or `idle`). If an agent finished its external
384
+ side effect but the worker then lost its activation lease around
385
+ `completeJob`/`failJob` — so the fenced settle failed and the engine may still
386
+ project the job as `CREATED` — the cell instead shows
387
+ `<jobKey> settlement-pending (<age>)`, where `<age>` is how long settlement has
388
+ been pending (measured from the failed settle, not the job's start). This is
389
+ **observational only**: recovery is
390
+ already handled by the lease-fence + transcript-resume path, and such a job is
391
+ *not* counted as busy/in-flight (it doesn't hold up a drain). The state lets you
392
+ *see* a job caught between side effect and settlement rather than inferring it
393
+ from a silently-idle worker plus a stuck `CREATED` job; it clears when the job is
394
+ re-activated on this worker, self-expires after a bounded TTL (so a re-activation
395
+ that lands on a *different* worker can't leave a ghost lingering here), or the
396
+ worker restarts.
397
+
382
398
  **Liveness watchdog (auto-recovery from a wedged channel).** If the nano server
383
399
  restarts, crashes, or a network partition drops the connection *without* a clean
384
400
  close (a **half-open** socket), a worker's channel client can sit `disconnected`