You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Severity: low (workaround exists; UX/CLI bug, not data-loss)
Reproduction:
dkg context-graph create my-cg # creates local CG as public
dkg context-graph register my-cg --access-policy 1 # sets on-chain to curated; local still public
dkg publish my-cg --file x.nq # → LU-5 mismatch error, refuses
The pre-publish LU-5 guard correctly rejects: "source CG curated=false, target CG curated=true. Refusing to publish: encrypting against the wrong CG's policy would either leak plaintext or be rejected by cores."
Correct pattern (used by devnet-test-rfc38-lu5.sh): set accessPolicy at create time via the HTTP API (POST /api/context-graph/create {accessPolicy:1, register:true, allowedAgents:[...]}), not at register time via CLI. The single-call API works fine.
Fix direction: either (a) context-graph register --access-policy should also update the local CG registry's access policy, or (b) context-graph create CLI should grow --access-policy so policy is set at the right moment, or (c) document that the API path is the only supported path for curated CGs.
Finding #2 — Public-data gossip replication fails in v10-rc-validation §5
Severity: medium — needs reproduction outside this sweep
Reproduction: v10-rc-validation §5 writes Alice data on node 1 then immediately queries nodes 2/3/4. All three return EMPTY.
Caveats that should be checked before filing:
Other tests that exercise gossip (RS proofs in v10-stress Phase 4, rfc38 lu7 catchup) all PASS, so gossip is not globally broken.
May be timing-flaky — the validation script queries quickly after write; gossip may simply not have propagated yet at the moment of query.
Worth re-running v10-rc-validation alone, with a longer settle window, to disambiguate genuine regression vs timing.
Finding #3 — SWM ownership owner-peer not replicated to node 2 after curator promote
Severity: medium — could cause durable owner ambiguity after restart
Reproduction: devnet-test-swm-ownership-restart.sh — owner promotes a root, query node 2's last owners for that root returns empty string (last owners=''). Expected node 2 to observe 12D3KooWQndKUTcWc2googkCt7Rg9Wo9dTYRkvHAETYEYepLjgHf (the promoter's peer id).
The script also has a bash bug (line 71: [: : integer expression expected) which fires when the API returns an empty number; the bug is cosmetic but obscures whether the underlying empty value is the same root cause as the missing owner.
Severity: high — every PROTOCOL_JOIN_REQUEST silently NACKs without this triple
Reproduction: devnet-test-invite-flow.sh step 1b: "DKG_CURATOR triple MISSING from invite-test-…'s _meta graph — createContextGraph regression. Without it, every PROTOCOL_JOIN_REQUEST for this CG silently NACKs."
The test message itself flags this as a regression — i.e. the test was passing before. Should bisect across the 6 main commits + 4 PRs to find when the curator triple stopped being written.
Note: devnet-test-cli-invite.sh (the CLI counterpart) PASSES, so the regression is specific to the API-driven POST /api/context-graph/create path (likely the change in packages/publisher/src/dkg-publisher.ts or metadata.ts from the main delta).
Severity: high — explicitly forbidden by RFC; would cause duplicate execution
Reproduction: devnet-test-rc11-promote-crash-recovery.sh — enqueue promote-async job, catch state=running, SIGKILL supervisor+worker, restart node 5, query job status: state=queued, attempts=0. Test message: "RFC §6.2 explicitly forbids this; would cause duplicate execution."
The companion devnet-test-rc11-shutdown-mid-publish.sh PASSES, so graceful shutdown handling is fine. The break is in the unclean-crash recovery path specifically.
v10-stress phase 2 failed at VM custodial 5/25 with tx broadcast but no receipt within 180000ms. Existing 2s back-off + retry-once mitigation in the test only handles the tentative kcId: 0 path, not the receipt-timeout path. The fix direction in FINDINGS (eth_getTransactionCount('pending')) still applies.
Severity: low — test calibration, not a product issue
The test must kill the core mid-catchup to exercise the lastHostCatchupSeqno resume path. With 200 writes × 16 KiB, M1 catches up in one shot (count=200 ≥ 200) and the kill window never opens. Bump the test's stress parameters.
Ship-readiness recommendation
rc.12 testnet release is plausible but two findings should land first:
Finding the consensus is hardcoded #4 (DKG_CURATOR createContextGraph regression) — high severity, breaks API-driven invite flow. Bisect the integration branch to identify the offending commit; likely in the publisher / metadata changes that landed via the main delta. Either revert the culprit or land a forward fix.
Finding Dockerize the node #5 (RFC §6.2 violation in promote-crash recovery) — high severity, RFC violation, can cause duplicate execution. Was rc11-promote-crash passing on release/rc.12 before the integration? If yes, this is a regression and must be fixed before tagging. If no, this is pre-existing and can ship with a known-issue note.
Lower-priority follow-ups (can ship and fix in rc.13):
rc.12 Stabilization Integration Test — Report
integration/rc.12-stabilize-20260527-2147@fb86f6b9eghorigin/integration/rc.12-stabilize-20260527-2147release/rc.12: 67 files, +9,456 / −697What's in the integration branch
Five clean (no-conflict) merges layered on top of
release/rc.12(8e19c4481):4bb474988chore: merge main into release/rc.12— pulls 6 main commits (#745 CG Overview S2, #754 SWM promote ownership, #756 SWM agent DID, #768/#769/#770 follow-ups)a576d2897171794c50400b5a699fb86f6b9eThe 3 "Do Not Merge (pending: …)" PRs (#688, #700, #718) were skipped per directive.
Devnet topology
NUM_CORE_NODES=4 ./scripts/devnet.sh start 6— 4 cores + 2 edges + 1 mid-run 7th core (phase 3 of stress) + Hardhat chain @ 1s blocks.Headline numbers
Test phase results
tx broadcast but no receipt within 180000ms— pre-existing FINDINGS Bug 2 nonce race, did not regressFindings
Finding #1 —
context-graph register --access-policydoesn't update local CG registry; LU-5 guard refuses publishSeverity: low (workaround exists; UX/CLI bug, not data-loss)
Reproduction:
The pre-publish LU-5 guard correctly rejects: "source CG curated=false, target CG curated=true. Refusing to publish: encrypting against the wrong CG's policy would either leak plaintext or be rejected by cores."
Correct pattern (used by
devnet-test-rfc38-lu5.sh): setaccessPolicyat create time via the HTTP API (POST /api/context-graph/create {accessPolicy:1, register:true, allowedAgents:[...]}), not at register time via CLI. The single-call API works fine.Fix direction: either (a)
context-graph register --access-policyshould also update the local CG registry's access policy, or (b)context-graph createCLI should grow--access-policyso policy is set at the right moment, or (c) document that the API path is the only supported path for curated CGs.Finding #2 — Public-data gossip replication fails in v10-rc-validation §5
Severity: medium — needs reproduction outside this sweep
Reproduction: v10-rc-validation §5 writes Alice data on node 1 then immediately queries nodes 2/3/4. All three return EMPTY.
Caveats that should be checked before filing:
Finding #3 — SWM ownership owner-peer not replicated to node 2 after curator promote
Severity: medium — could cause durable owner ambiguity after restart
Reproduction:
devnet-test-swm-ownership-restart.sh— owner promotes a root, query node 2'slast ownersfor that root returns empty string (last owners=''). Expected node 2 to observe12D3KooWQndKUTcWc2googkCt7Rg9Wo9dTYRkvHAETYEYepLjgHf(the promoter's peer id).The script also has a bash bug (
line 71: [: : integer expression expected) which fires when the API returns an empty number; the bug is cosmetic but obscures whether the underlying empty value is the same root cause as the missing owner.Finding #4 —
createContextGraphregression: DKG_CURATOR triple missing from_metagraphSeverity: high — every PROTOCOL_JOIN_REQUEST silently NACKs without this triple
Reproduction:
devnet-test-invite-flow.shstep 1b: "DKG_CURATOR triple MISSING from invite-test-…'s _meta graph — createContextGraph regression. Without it, every PROTOCOL_JOIN_REQUEST for this CG silently NACKs."The test message itself flags this as a regression — i.e. the test was passing before. Should bisect across the 6 main commits + 4 PRs to find when the curator triple stopped being written.
Note:
devnet-test-cli-invite.sh(the CLI counterpart) PASSES, so the regression is specific to the API-drivenPOST /api/context-graph/createpath (likely the change inpackages/publisher/src/dkg-publisher.tsormetadata.tsfrom the main delta).Finding #5 — RFC §6.2 violation: post-restart promote-async job demoted
running→queuedSeverity: high — explicitly forbidden by RFC; would cause duplicate execution
Reproduction:
devnet-test-rc11-promote-crash-recovery.sh— enqueue promote-async job, catch state=running, SIGKILL supervisor+worker, restart node 5, query job status: state=queued, attempts=0. Test message: "RFC §6.2 explicitly forbids this; would cause duplicate execution."The companion
devnet-test-rc11-shutdown-mid-publish.shPASSES, so graceful shutdown handling is fine. The break is in the unclean-crash recovery path specifically.Finding #6 — pre-existing publisher nonce race (FINDINGS.md Bug 2)
Severity: known, pre-existing, in FINDINGS.md
v10-stress phase 2 failed at VM custodial 5/25 with
tx broadcast but no receipt within 180000ms. Existing 2s back-off + retry-once mitigation in the test only handles thetentative kcId: 0path, not the receipt-timeout path. The fix direction in FINDINGS (eth_getTransactionCount('pending')) still applies.Finding #7 — rfc38-unclean-restart needs WRITES_COUNT/PAYLOAD_BYTES tuning
Severity: low — test calibration, not a product issue
The test must kill the core mid-catchup to exercise the
lastHostCatchupSeqnoresume path. With 200 writes × 16 KiB, M1 catches up in one shot (count=200 ≥ 200) and the kill window never opens. Bump the test's stress parameters.Ship-readiness recommendation
rc.12 testnet release is plausible but two findings should land first:
release/rc.12before the integration? If yes, this is a regression and must be fixed before tagging. If no, this is pre-existing and can ship with a known-issue note.Lower-priority follow-ups (can ship and fix in rc.13):
Strong signals for ship-readiness (no regressions detected):
Artifacts
.devnet/comprehensive-results/20260527T200927Z/.devnet/comprehensive-results/20260527T200927Z/*.log.integration-test-logs/{v10-stress,200-vm-publishes,bulk-topup,comprehensive}.log.integration-test-logs/RC12_STABILIZATION_REPORT.md