Repository navigation
Release candidate 10.0.21-rc.1 - #2984
Merged
Merged
Conversation
Turn [Unreleased] into the dated [10.0.21] section and add entries for the 33 pull requests merged since 10.0.20 that had none. The two existing entries (#2961, #2926) are kept as written. The section has a theme paragraph, an "Upgrading from 10.0.20" table, the known issues (four carried over from 10.0.20, #2871 removed as fixed), and Fixed, Changed and Added entries. CI-only and test-only changes (#2918, #2920, #2938) have no entry. The date is the day of this draft and is set again at the cut. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Version-only bump of the root package and every packages/* manifest from 10.0.20 to 10.0.21 (25 files, including the new dkg-node-store). The lockfile is unchanged. `release-packages.mjs verify-versions --version 10.0.21` passes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
otReviewAgent
left a comment
There was a problem hiding this comment.
Review Agent completed this review and found no issues.
Adds Changed entries for #2797 (relative and RFC 3987-invalid IRIs are counted on every adapter write), #2624 (Shared Working Memory materialization memo on the embedded Oxigraph backends), #2611 (a sync page is decoded once), #2615 (one admission probe warning), and one line for the refactors without a behaviour change (#2613, #2598, #2631, #2617, #2629). Corrects the #2581 entry and its upgrade row: the 409 mapping also covers `wm/write` on a shared or published asset, which #2977's tests pin. #2977 itself is tests only and has no entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
otReviewAgent
left a comment
There was a problem hiding this comment.
Review Agent completed this review and found no issues.
Merged
4 of 6 tasks
Adds the busy-Core answer on the batch stream, the removal of the search over old workspace operations in chain reconcile, and the retirement of root-entity publishes at the node, with their upgrade notes. The stream known issue is brought in line with #2987. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
otReviewAgent
left a comment
There was a problem hiding this comment.
Review Agent completed this review and found no issues.
Adds read batching through Multicall3 (#2996), the endpoint that refuses a read (#3020), the receipt requested with the authentication views (#3021) and the reconcile pass that waits for sync capacity (#2994), with their upgrade notes. The share-recovery entry and its upgrade row take in #3004, the gossip restart entry takes in #3005, the large-content guide (#2997) is listed, and #3000, #3001, #3002 and #3016 join the list of changes without a behaviour change. The summary names the recovery speed-up, and the date moves to 4 October. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
otReviewAgent
left a comment
There was a problem hiding this comment.
Review Agent completed this review and found no issues.
…and #3024 Adds the authority fixes for publishing through Shared Working Memory (#2992) with the scoped-query answer and the known issue of #2993, the start-up reconcile that asks again (#3024), the damaged working-draft record (#3009), the chat turn linked to two sessions (#3010), and sync admission per peer and plane with byte-budget pages for Shared Working Memory (#3012). #3008 joins the list of changes without a behaviour change. Four rows are added to the upgrade table. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
otReviewAgent
left a comment
There was a problem hiding this comment.
Review Agent completed this review and found no issues.
…3036 Adds the share that failed right after a registration (#3027, #3034) with its upgrade row, catalog catch-up under authority contention (#3036), and the on-chain Context Graph enumeration read in aggregate requests (#3025), which also joins the read-batching upgrade row and the summary. #3030 joins the list of changes without a behaviour change, and the known issue of #2993 notes that its timings predate #3036. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
otReviewAgent
left a comment
There was a problem hiding this comment.
Review Agent completed this review and found no issues.
This was referenced Oct 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
10.0.21 release candidate
This branch is
testnet-canaryata58fbf36fplus the[10.0.21]changelog section and the version bump. Every code change in it is already ontestnet-canaryand was reviewed in its own PR. It is meant to merge last: after it,testnet-canarycalls itself 10.0.21, and anything merged later needs its own changelog edit.Open before it merges:
41cfe62bfitself, passed as well.What 10.0.21 contains
72 PRs merged into
testnet-canarysincev10.0.20(abfd785d3), 19 of them on 4 October.DKG_EXACT_BATCH_STREAM_ENABLED(the first name is still read) andDKG_VM_RECOVERY_PREFETCH_ENABLED.BUSY; the requester pauses and asks the same Core again, and a busy or broken attempt no longer costs the Core its turn in the peer rotation.DKG_DISABLE_RPC_READ_BATCHING=1.tx_submit_timeout.retryState.blockersays why a job is not moving.blocker.lastCheck).409 PUBLISH_INTENT_STALE.swmCurrentAssertionstamp after the commit is retried instead of reported as success.KA_WM_LIFECYCLE_CORRUPT) instead of the 409 that tells a caller to reopen the draft.lastError.diagnosticCode, cannot be cleared while it has retry budget, and a synchronous share answers a retryable 503.wm/discardandwm/writeon a shared or published asset answer 409 instead of 500; #2977 adds the tests forwm/write.publishFromSharedMemoryrefuses a publish withoutcontentScopeVersion(LEGACY_KA_READ_ONLY). About 1,150 lines of root-entity promotion code are removed.stop()drains Context Graph subscription writes.dkg-coredeep-import path of the RFC 3987 validator resolves again.@origintrail-official/dkg-node-store. Same database, no migration.misc/and next to what they configure.Commits on this branch
3139984c4,e1db8d88f,a675ec4ee,0086a4f82,41cfe62bf):[Unreleased]becomes the dated[10.0.21]section. It has a theme paragraph, an "Upgrading from 10.0.20" table with 24 rows, ten known issues, and Fixed, Changed and Added entries for the 62 PRs that had none. The two existing entries (fix(agent): number a draft of a published KA from its confirmed version; refuse a version gap with a typed terminal error (#2958) #2961, fix(core): keep the former dist path of the RFC 3987 IRI validator #2926) are kept as written. ci: rotate trusted CI controller to dfb3460 #2918, ci(planner): route repository scripts by who runs them #2920, test: cover subscribe-by-name-hash on a real chain and a real devnet #2938, test(cli): cover wm/write on a shared asset after the WM lifecycle 409 mapping #2977, fix(ci): route the moved mutation-pilot configs to the core job #2983, test(chain): stabilize governed HTTP pacing assertion #2986, refactor: share promotion-agent recovery test harness #2998 and test(agent): accept either send order from the sender-key fan-out #3023 have no entry (CI and tests only).91c5797ee): 25package.jsonfiles move from 10.0.20 to 10.0.21, version only; the lockfile is unchanged.release-packages.mjs verify-versions --version 10.0.21passes.testnet-canary(d517ff872,b61b94090,065225d0c,cff35e1db,ca81a78c8), without conflicts. The branch differs fromtestnet-canaryonly inCHANGELOG.mdand the 25 version fields.What operators and the release need to do
DKG_EXACT_BATCH_STREAM_ENABLED=1on the Cores that should serve recovery, on more than one Core per graph: a recovery that cannot finish an exchange falls back to the ordinary protocol on the other holders. A Core that already runs withDKG_EXPERIMENTAL_EXACT_BATCH_STREAM=1keeps serving without a change.publishFromSharedMemorywithoutcontentScopeVersionis refused (fix(agent): retire root-entity publishes (ignore old-format finalization, refuse unscoped publish) #2991); publish throughpublishFromFinalizedAssertion. The daemon's publish routes are unaffected./api/statusreadsaturatedat times.eth_callunder the consumermulticall3.aggregate3(perf(chain): send background contract views together through Multicall3 #2996), with fewer requests under the seven read labels they replace. The usage snapshot'sconsumerVocabularyVersionis 3.@origintrail-official/dkg-node-storeis new and public, anddkg-node-uianddkgdepend on it. The release helper discovers it; it has to be published with the set.scripts/lib/ci-routing.mjs, which takes effect only after the trusted controller pin is rotated (as ci: rotate trusted CI controller to dfb3460 #2918 did) to a commit that contains them.Not in this candidate
a58fbf36fit conflicts in one test file and its baseline is 18 files behind; it needs a rebase and a fresh baseline (comments on the PR). For after the release.testnet-canarywas red from7b04cd785to62851c708: #2957 and #2920 landed together and failed the routing guard in "Build packages". #2983 fixed it. Nine PRs that the merge queue dropped during that time, and #2629, were merged directly on 3 October after the local check below.Validation
Done:
release-packages.mjs verify-versions --version 10.0.21: 25 files.testnet-canary384f75258(same git tree object).pnpm install --frozen-lockfile,build:packages(26 of 26),lint,test:scripts(435 pass, including the routing guard that had failed) andtest:inventorypass. Unit suites on that tree: rdf-utils 236, core 2,261, storage 1,259 (34 skipped: live Blazegraph), publisher 1,800, chain 2,362 (4 skipped), the CLI suites these PRs touch 258, and the agent's sync, shared-memory and recovery suites 2,015 (110 files). No failure. The whole agent lane and the Hardhat-backed suites were not run locally.testnet-canaryhead5ca8ca7e9(after #2979)7b04cd785(after #2938, #2934, #2764, #2935, #2930, #2920, #2957)6c14e9f1b(testnet-canary8dfa2d6aawith fix(sync): a busy stream Core answers BUSY, is asked again and keeps its turn in recovery #2987, plus fix(agent): stop searching historical workspace operations in chain reconcile #2988), with the same build on the test node and on the serving Core:384f75258on both sides6c14e9f1bon both sidesIn the passing run about 2.9 s of each asset's 3.5 s is the test node's own verified store step and about 0.4 s is waiting for the Core. No busy answer, retry or error-level line on either side. The first run's Core spent its store on the search that #2988 removes.
The final head adds #2991 and three test-only commits to that build. #2991 does not touch the recovery path, and no run includes it.
The same-Core retry of #2979 fired twelve times in the
384f75258run; theBUSYanswer of #2987 has not occurred on live data.6c14e9f1b(3 October, for comparison)8097794bdplus #2992 at5cda7d2c40086a4f82plus #2992, #3008, #3009, #3012, #3010 and #3024, as 10.0.21: the same git tree as this head outside the changelog41cfe62bf, while a second test harness ran on the same machineThe time before the first asset arrives varied between 81 s and 139 s across these runs for a reason unrelated to them (#3024 addresses it), so the per-asset column is the one to compare. The run on
8097794bdplus #2992 was made on a busier machine; its processor-only stages were 6% slower. In the run on the candidate tree the first recovery started 76 s after the cold start: with #3024 the node asked for its read authority again eleven times in the first 66 s and did not wait for the periodic sweep. In the run on41cfe62bfit started at 82 s.The last two rows are the same code. The run on
41cfe62bfshared its machine with another test harness: its processor-only stages were 45% to 125% slower, while its chain-side figures per asset (authority read, batch sizing, wait for the request budget) were unchanged, so the difference is the machine. In that run the serving Core dropped the connection once in the middle of an exchange. The ten assets of that batch were already stored, the node was connected again within a second and went on; 59 of 60 exchanges completed.9fa40f9f9: build, lint, test inventory, 435 script tests, and 1,087 agent, 157 chain, 96 publisher and 31 CLI tests in the suites they touch.2a7964c4d(with chore(ci): enforce the source size ratchet on current canary #2999 for its scripts):pnpm install --frozen-lockfile,build:packages(26 of 26),lint,test:scripts(453 pass) andtest:inventorypass. The chain unit suite (135 files, 2,455 tests) and the publisher unit suite (100 files, 1,806 tests) pass, and so do 151 agent test files (every changed one and the reconcile, recovery and sync suites: 3,224 tests, 2 performance files skipped), the changed node-ui tests (163) and the changed CLI tests (125 in six files, and the 69 live-daemon route tests ofknowledge-assets-route.test.ts; in one of five runs of that file a share right after a graph registration answeredA promote prerequisite is temporarily unavailablewhile the machine was busy, which has also been seen in CI on an unrelated PR). The source-size guard of chore(ci): enforce the source size ratchet on current canary #2999 fails on that tree.2a7964c4d: CI and EVM Integration Tests passed. This PR's CI on0086a4f82passed.git diffbetween the two is empty outsideCHANGELOG.md.a58fbf36f: EVM Integration Tests passed; in CI one CLI shard failed because its runner could not reach the download host for a test binary (a connect timeout, no test ran), and the failed jobs were re-run. This PR's CI on41cfe62bf, the same code, passed.Not done, and needed before the cut:
RELEASE_PROCESS.mdsection 4), and the testnet soak.Decisions for the release lead
After the merge
The steps of
RELEASE_PROCESS.md: the canary tomainpromotion PR, the devnet gate on the resultingmaincommit, the signed tag, npm (canary, thentestnet, thenlatestandmainnet), the beacons and Cores, and the GitHub release assembled from the[10.0.21]section.🤖 Generated with Claude Code