v7.41.0
conexus 7.41.0: the agent ledger did not populate; fixed in 7.41.1
Affects: every install of conexus 7.41.0, local and cloud.
What happened: the background hook that records each subagent's start and report into the tuple space (the ledger/<session> subspace) failed silently on installed boxes. On cloud-mode installs it could not resolve the engine; on local installs it presented only a data-token credential that a local install never has. Each skip is logged under ~/.local/state/nexus/orchestration/<session>.tuple-projection.log.
What you saw: the orchestration skill's "wait for this agent's report" parked read never woke (the harness's own completion notification still fires; work still finishes). expectations_census reports SPACE_FALLBACK or SPACE_BLINDSPOT with the reason and falls back to the TSV ledger. nx tuple stats ledger/<session> reads zero.
Not affected: the tuple space itself, nx tuple, the eight tuple_* MCP tools, the mailbox and cross-instance request and ack, the doctor rows, the engine.
Fix: conexus 7.41.1. nx upgrade (or uv tool upgrade conexus), then /plugin in Claude Code and update conexus to 7.41.1, then restart the session. The interim plugin-only tag plugin-v7.41.0-1 carried the same fix but a same-version plugin tag does not refresh an installed plugin; it is superseded by 7.41.1. After updating, dispatch one agent and check nx tuple stats ledger/<your session id> reads two.
Tracking: nexus-0zsmg (cloud endpoint), nexus-g2lln (local credential), nexus-konsk (plugin-only channel delivery). Post-mortem lands with RDR-205's close.
Paired engine: engine-service-v0.1.114 (tagged on a2801df; deployed and
live before this client tag, all-additive on the wire). REQUIRED_ENGINE_VERSION
is (0, 1, 114).
RDR-205: tuple space client surface
HttpTupleStoreover/v1/tuples(ten operations: out, rd, rdp, in,
inp, ack, nack, registry, subspace_list, subspace_stats), typed
errors, an 8 KB pre-send guard, anddb.tupleson the T2 facade
(nexus-em75s.9).- Eight
tuple_*MCP tools, thenx tupleCLI verb, and threenx doctorrows, gated behind the tuple route's floor
(_TUPLE_ROUTE_FIRST_ENGINE_VERSION, now (0, 1, 114)) so an older
pinned engine reads as an informational skip, never a false FAIL
(nexus-em75s.10, nexus-em75s.12). - Two async ledger-projection hooks (
subagent-start-tuple-async.sh,
subagent-stop-tuple-async.sh) post start/report tuples beside the
existing blocking TSV hooks, over stdliburllib.requestwith a
tenant-scoped lease, never a bearer token on a subprocess argv
(nexus-em75s.11). expectations_censusreads the ledger space first (nx tuple list --prefix ledger/), falls back to the TSV with a named
SPACE_FALLBACKreason when the engine is unreachable, and reports
projections that never ran; a zero-subspace read isSPACE_BLINDSPOT,
never a silent "every session outside the window" (nexus-em75s.19,
nexus-em75s.22).- The
mailboxskill and a new orchestration paragraph: send by
tuple_outwith a sender-minted nonce, drain bytuple_inbefore any
hand-back, dead-letter after three attempts, plus the
instance-addressed form for cross-instance request/ack pairing
(nexus-em75s.20, nexus-em75s.24, nexus-em75s.28, nexus-em75s.29). - The relay sweep's mailbox-scan arm: T2 findings survive an unrunnable
mailbox scan, and the mailbox arm gets the samemax_age_daysgrace
as the T2 arm (nexus-em75s.30).
Paired engine: engine-service-v0.1.114
- One new route family,
/v1/tuples(RDR-205):out,rd,rdp,
in,inp,ack,nack,registry,subspace_list,
subspace_stats, backed by three new tables (nexus.tuples,
nexus.tuple_claim_log,nexus.tuple_tenants) across seven
Liquibase changesets, and a second scheduled sweep task. No existing
route, request field, or response field changed shape -- all-additive,
deployed and cloud-gated before this client tag (see
docs/wire-contract-pending.md).
GH #1533: pdftext bound below mineru's breaking release
pdftextnow travels as a real[project.dependencies]entry
(bounded below 0.7.0) rather than only an override, so a bareuv tool install conexussees the bound inRequires-Dist.nx doctor --check-mineru's real-parse probe synthesizes its own one-page
formula PDF instead of relying on a fixture the published wheel never
ships, so the check runs on any installed box, not only an editable
checkout. The shakedown's MinerU verdict filter and the fresh-install
MVV both widened to see the new parse line and assert the resolved
pdftexton both the uv-tool and generation layers (nexus-gqrg0;
Closes #1533).
Fixes
ensure_storage_supervisormarks the process-wide lease-evidence flag
from its ownServiceRegistry.discover()call, not only from
discover_lease()-- a freshnx init --serviceinstall could lose
the ladder-converge and plan-seed steps' first-ever resolution to a
zero-wait fail-fast, landing with no builtin plan templates untilnx plan reseed(nexus-jw44t).- The MCP entrypoint probe distinguishes a slow-but-alive server from a
genuine hang: a crashed process still fails within a few hundred
milliseconds, while a process that is alive and simply slow under
load gets up to 4x the base timeout before being reported as hung.