v10.0.0-rc.2
Pre-release
Pre-release
·
2921 commits
to main
since this release
V10 RandomSampling + V8/V10 staking consolidation. Testnet reset required (Base Sepolia) — see docs/TESTNET_RESET.md.
Added
- V10 RandomSampling end-to-end (
packages/random-sampling): per-node challenge/proof loop driven byRandomSampling.sol; chunk selection readsmerkleLeafCountfrom on-chain V10 storage; non-zerogetNodeEpochProofPeriodScoreonce a node holds V10 stake. - Auto chain-reset wipe (
packages/cli/src/daemon/chain-reset-wipe.ts): on boot, the daemon compares the bundlednetwork.chainResetMarkeragainst the persisted marker and one-shot wipesstore.nq{,.tmp}+publish-journal.*+random-sampling.walwhen they differ. Operators no longer need a manual wipe procedure on a testnet reset. ensureProfileauto-stake via V10 path (packages/chain/src/evm-adapter.ts): on a clean chain, agents auto-create their on-chain identity and stake 50k TRAC into a V10 NFT position viaDKGStakingConvictionNFT.createConviction(identityId, amount, lockTier=1)so the V10 stake vault (ConvictionStakingStorage.nodeStakeV10) is non-zero from the first proof period.- Required
merkleLeafCounton the V9→V10 publish bridge (packages/chain/src/chain-adapter.ts,evm-adapter.ts):PublishToContextGraphParams.merkleLeafCountis now required; the bridge throws on missing/invalid input instead of silently defaulting to 1 (which would corrupt RandomSampling chunk selection for any KC with more than one leaf). - Stale-proof-period detection in the prover (
packages/random-sampling/src/prover.ts): tick now checks the actual chain block height against the cached period's expiry and forcescreateChallengeto rotate when the period has elapsed, instead of stranding on a stale "already-solved" cache view. - Testnet reset runbook (
docs/TESTNET_RESET.md): full procedure for the V10 cutover covering maintainer release (npm publish + git merge), contracts deploy, automatic per-node state wipe, and smoke verification. - Operator-supplied
randomSampling.walPath(packages/cli/src/daemon/chain-reset-wipe.ts,daemon/lifecycle.ts): chain-reset wipe now honors a custom WAL path from config instead of only the default location. - Codex PR review workflow (
.github/workflows/codex-review.yml):pull_request_target+ SHA-pinned for review on every PR.
Changed
- Consolidated V8
StakingStorageinto V10ConvictionStakingStorage: the dual-store coupling between V8Staking/DelegatorsInfoand V10 storage is dropped. V10 contracts (StakingV10,DKGStakingConvictionNFT,ConvictionStakingStorage,RandomSampling,RandomSamplingStorage) are the canonical staking surface; V8 staking is unregistered from the Hub on the testnet reset. - Test helpers updated to V10 staking (
hardhat-harness.ts:stakeAndSetAsk): switches from V8Staking.staketoDKGStakingConvictionNFT.createConvictionso E2E flows match the agent's actual auto-stake path. enrichEvmErrorregex generalised (packages/chain): now decodes EVM revert reasons across Hardhat-styledata="0x..."and the broader provider variants.
Fixed
- Zero RandomSampling node scores caused by V8/V10 stake-vault split —
RandomSampling.calculateNodeScorereadsConvictionStakingStorage.getNodeStakeV10exclusively, but legacyStaking.stakeonly updated V8StakingStorage. Resolved by routing all stake through V10 (ensureProfile,stakeAndSetAsk). chainResetWipedaemon crash on FS errors (packages/cli/src/daemon/chain-reset-wipe.ts): wipe +saveStateare now wrapped intry/catch; FS errors log a warning and boot continues instead of crashing the daemon.ensureProfileprofile-without-stake on partial failure: profile creation and staking are now in separatetry/catchblocks so a failed stake leaves the on-chain identity intact for retry instead of leaving the operator without either.- ABI pinning test drift for V10 publish/update functions after
merkleLeafCountwas added (abi-pinning.test.ts): pin digests refreshed.
What's Changed
- fix: repair codex PR review pipeline by @zsculac in #59
- Feature/define liftjob states and allowed transitions by @lupuszr in #62
- feat(v10): live publish with ACK collection and KnowledgeAssetsV10 contract by @branarakic in #70
- Update testnet relays and auto-update branch for V10-rc by @Niks988 in #75
- test: consolidated P0/P1 + oracle/validation + Hardhat + gossip for v10-rc by @branarakic in #93
- fix: batch bug fixes for 15 open issues by @branarakic in #92
- feat(v10): CCL + ENDORSE + VERIFY — trust extensions for v10-rc by @branarakic in #74
- ci: tier-based test coverage gates (TORNADO/BURA/KOSAVA) by @branarakic in #90
- fix: address remaining Codex review feedback from PRs #74 and #90 by @branarakic in #94
- feat: V10 mainnet conviction staking, publisher conviction, and migration by @branarakic in #95
- V10 Spec Alignment: ERC-721 governance, conviction NFTs, 6-field ACK, memory model by @branarakic in #100
- feat: convention-based sub-graphs (spec §16.2) by @branarakic in #101
- feat: add SKILL.MD agent onboarding and MarkItDown document processor by @branarakic in #104
- V10 publisher by @lupuszr in #97
- fix: consolidated V10 API hardening + finality principle (supersedes #105, #106, #107) by @branarakic in #108
- Add beacon-01 and beacon-02 as testnet relay endpoints by @Niks988 in #109
- fix: gossip promoted triples when WM assertion is promoted to SWM by @branarakic in #111
- fix: sub-graph polish (issue #81 findings 1, 3, 4, 5, 7) by @Jurij89 in #112
- fix: migrate devnet test scripts to SWM-first publish flow by @branarakic in #110
- fix: promote edge cases — size pre-check, owner-only upsert, empty selection by @branarakic in #116
- fix: route publisher CLI commands through daemon API to prevent store corruption by @branarakic in #114
- feat: wire import-file endpoint and Phase 2 markdown extraction (#77, #79, #80) by @Jurij89 in #113
- fix(cli): harden async publisher recovery and batching safeguards by @lupuszr in #115
- Fix/sync pagination and auth by @Niks988 in #103
- fix: publisher recovery timing, stale metadata, and daemon fallback by @branarakic in #117
- fix: address review feedback from merged PRs #110-#116 by @branarakic in #119
- test: harden V10 test coverage — assertions, publisher queue, memory layers, sub-graph gossip by @branarakic in #118
- feat: source-file linkage triples + devnet hardening (chain onto PR #120) by @Jurij89 in #121
- fix: align markdown rootEntity override with promote identity by @Jurij89 in #126
- test: add devnet e2e sections 18-24 covering V10 feature gaps by @branarakic in #120
- fix: broaden markdown extractor IRI validation by @Jurij89 in #127
- chore: remove dead markdown extractor now field by @Jurij89 in #128
- feat: link imports to markdown form by @Jurij89 in #129
- feat: sync test/devnet-e2e-sections-18-24 into v10-rc by @Jurij89 in #130
- feat: ship MarkItDown binaries through release and install paths by @Jurij89 in #131
- feat: V10 node UI, Hermes adapter, and LLM extraction pipeline by @branarakic in #132
- fix: PR #132 review followup — CI lockfile + 12 remaining bugs by @branarakic in #133
- chore(v10): delete MigratorV10Staking (phase 0a) by @zsculac in #138
- chore(v10): rip selectiveDisclosureMerkleRoot, restore V8 shape (phase 0c) by @zsculac in #140
- chore(v10): delete dead public staking entries (phase 0d) by @zsculac in #141
- feat(v10): DKGPublishingConvictionNFT rewrite (phase 6) by @zsculac in #142
- feat(v10): ContextGraphValueStorage (phase 1) by @zsculac in #143
- fix(v10): Paymaster routes TRAC to StakingStorage (H1, phase 9) by @zsculac in #144
- feat: modernize OpenClaw local agent integration by @Jurij89 in #137
- feat: Tri-modal memory architecture + Memory Explorer UI overhaul by @branarakic in #146
- fix: PR #133 review followup — sync semantics, import target, preview types by @branarakic in #134
- feat(v10): ContextGraphs + ContextGraphStorage rewrite (phase 7, absorbs 0b) by @zsculac in #145
- feat(v10): KAV10 rewire — publishing core integration (phase 8) by @zsculac in #154
- feat(v10): Phase 10 — RandomSampling value-weighted CG selection by @zsculac in #157
- feat(v10): Phase 2 — ConvictionStakingStorage (diff/cumulative per-epoch) by @zsculac in #155
- fix: address PR 137 carry-forward follow-ups by @Jurij89 in #148
- feat: Tri-modal memory devnet tests (Section 26) + sessionUri validation fix by @branarakic in #153
- refactor(v10): Phase 3 — DelegatorsInfo revert to V8 by @zsculac in #161
- Add node-owned OpenClaw chat attachments by @Jurij89 in #160
- fix: CI failures on v10-rc — cross-platform test + coverage thresholds by @Bojan131 in #162
- feat: free CG creation, on-chain registration as explicit upgrade by @branarakic in #156
- fix: polish local agent chat UX and inject active context graph by @lupuszr in #165
- feat(v10): Phase 4 — Staking._recordStake two-layer wire (tokenId-keyed delegator) by @zsculac in #164
- feat(publisher) cli fixes by @lupuszr in #136
- V10 Publish Off-Chain Rewire (publishDirect) by @zsculac in #167
- V10 contracts redesign part 1 by @zsculac in #149
- fix import duplicate by @lupuszr in #186
- chore(evm): redeploy PR #149 contracts to Base Sepolia testnet by @zsculac in #188
- fix(evm): drop wall-clock mining interval to kill proof-period race by @zsculac in #187
- fix: harden free CG endpoints and gossip security by @branarakic in #166
- feat(publisher) fix context-graph register by @lupuszr in #191
- feat: persistent assertion lifecycle provenance across memory layers by @branarakic in #193
- feat: agent identity, access control, CLI invite flow, SSE notifications by @branarakic in #195
- chore: point testnet Hub to base_sepolia_test deployment by @zsculac in #203
- feat: OpenClaw → DKG primary memory via WM assertion routes by @Jurij89 in #168
- fix: use on-chain context graph authority in publish flows by @lupuszr in #210
- fix public publish by @lupuszr in #214
- feat(node-ui): project overview redesign with layer-centric UI and split-pane canvas by @branarakic in #208
- fix(adapter-openclaw): activate memory slot + sync SKILL.md on startup by @Jurij89 in #211
- feat: lazy meta refresh for private CG sync + SWM on join approval by @Niks988 in #205
- feat(adapter-openclaw): persist chat turns from all channels to DKG by @Jurij89 in #216
- Test/evm integration by @Bojan131 in #189
- Fixes by @lupuszr in #220
- Fixes by @lupuszr in #222
- fix(v10-rc): unblock gossip replication, legacy peer-ID invite, and private-root updates by @Bojan131 in #221
- feat: V10 npm publish prep project.json, version bump, CI workflow by @Niks988 in #226
- Tests/improve by @Bojan131 in #227
- fix: multi-agent correctness polish (follow-up to #195) by @branarakic in #200
- fix failing npm publish blocking by @Bojan131 in #230
- feat(node-ui): multi-agent collaboration surface — sub-graph pages, agent attribution, activity feed, GenUI, profile ontology by @branarakic in #223
- feat: bundle OpenClaw setup in-process, add UI refresh/disconnect by @Jurij89 in #228
- feat(openclaw): consolidate adapter config into openclaw.json entry by @Jurij89 in #233
- feat(openclaw): remove canonical node skill on Disconnect by @Jurij89 in #234
- fix(openclaw): trim entry.config.installedWorkspace on Disconnect read by @Jurij89 in #236
- Sync refactor rebased by @lupuszr in #237
- feat(mcp-dkg): Cursor & Claude Code DKG integration — MCP read tools + chat capture by @branarakic in #224
- docs: refresh README and node SKILL.md for V10 RC by @Jurij89 in #246
- docs(skill): document token discovery and auth troubleshooting by @Jurij89 in #247
- fix(agent): A-12 migrate agent DID subject to EVM-address form by @branarakic in #243
- docs: Phase 2 architecture-PR plan for daemon.ts + DKGAgent split by @branarakic in #244
- fix(query): honor minTrust in verified-memory view resolution (P-13) by @branarakic in #239
- fix(publisher): emit chain:writeahead phase around on-chain broadcast (P-1, partial) by @branarakic in #241
- fix(agent+cli): A-1 enforce Working-Memory isolation at query boundary by @branarakic in #242
- chore(v10-rc): Phase 0 cleanup — dead code, unused deps, knip baseline by @branarakic in #238
- fix(adapter-openclaw): auto-patch openclaw.json for full-runtime tool registration by @Jurij89 in #250
- feat(adapter-openclaw): expand dkg_* tool surface to canonical workflow by @Jurij89 in #254
- feat(adapter-openclaw): expose
viewon dkg_query to match HTTP surface by @Jurij89 in #257 - docs(skill): tool-vs-HTTP guidance, adapter tool reference, audit fixes by @Jurij89 in #251
- fix(adapter-openclaw): resolve dkg CLI absolute path for daemon start by @Jurij89 in #260
- Stabilize sync catch-up and join flows for PR review by @lupuszr in #245
- fix backfill sync by @lupuszr in #267
- fix(agent,devnet): align bootstrap CG creator triples + retire V9 registry call in devnet.sh by @branarakic in #253
- refactor(cli): split daemon.ts (10.5k lines) into focused sub-modules by @branarakic in #258
- refactor(cli): split handle-request.ts by route group (stacked on #258) by @branarakic in #259
- docs: add Mermaid diagram preset as a Cursor rule by @branarakic in #265
- Inject proper agent identifier and teach claw to use it by @lupuszr in #271
- docs: add WSL2 daemon persistence guidance to JOIN_TESTNET.md by @anabevc in #274
- fix(node-ui): hydrate OpenClaw chat history on mount (closes #255) by @Jurij89 in #262
- Add SWM tool support for openclaw by @lupuszr in #278
- extend openclaw tool to register on chain the context graph by @lupuszr in #288
- Add
dkg integrationCLI: list / info / install from the registry by @branarakic in #276 - fix(cli): align ChatMemoryManager agentAddress with assertion.write resolution (closes #277) by @Jurij89 in #280
- feat(config,ci): align repo refs + branch with renamed dkg repo, make… by @Niks988 in #290
- Restore testnet faucet funding on OpenClaw setup by @Jurij89 in #281
- fix(cli): use ResolvedAutoUpdateConfig in auto-update subsystem by @Niks988 in #291
- docs(readme): add community integrations section + dkg integration CLI by @branarakic in #289
- V10 PR #97 spec implementation — stacked on #231 by @branarakic in #240
- V10 contracts: Codex fixes on top of rebased PR #202 by @branarakic in #231
- chore(v10): remove installable apps framework + origin-trail-game pilot by @branarakic in #293
- refactor(node-ui): split ProjectView.tsx into project/ subdir by @branarakic in #298
- refactor(agent): extract standalone helpers to dkg-agent-utils.ts by @branarakic in #297
- fix(v10): align context graph registration semantics by @branarakic in #295
- imporove skill to start looking in the dkg right away by @lupuszr in #300
- fix(adapter-openclaw): bind bridge on a fallback port to avoid 9201 EADDRINUSE (#272) by @Jurij89 in #294
- chore: redeploy V10 testnet on isolated Hub by @zsculac in #302
- config: field-level merge for chain (operator partial overrides) by @Niks988 in #321
- autoupdater: harden git-based update path against ARM64 build-timeout… by @Niks988 in #303
- fix(adapter-openclaw): stop pinning network chain/autoUpdate into user config by @Niks988 in #322
- Fix OpenClaw hook log noise by @Jurij89 in #336
- fix(openclaw): align DKG home and state-dir resolution by @Jurij89 in #337
- fix(core): T75 — resolveDkgHome fresh-install fallback mirrors resolveDkgConfigHome's monorepo heuristic by @Jurij89 in #340
- fix(adapter-openclaw): T76 — memory_search probes ensureNodePeerId on no-keystore nodes by @Jurij89 in #344
- feat(adapter-openclaw): make DKG the primary OpenClaw memory backend (W1-W4 wires, fixes #207 + #199) by @Jurij89 in #264
- fix(openclaw): avoid setup timeout during slot migration by @Jurij89 in #341
- track cg subscription by @lupuszr in #304
- fix(openclaw): align dkg-ui health lifecycle by @Jurij89 in #342
- fix(openclaw): use node auth for agent identity probe by @Jurij89 in #343
- fix libp2p recursion issue by @lupuszr in #355
- fix(openclaw): quiet duplicate typed hook timeouts by @Jurij89 in #353
- fix(cli): build Node UI bundle during blue-green update by @Jurij89 in #354
- feat: V10 RandomSampling pipeline + StakingStorage→ConvictionStakingStorage consolidation by @branarakic in #357
- chore(release): align all monorepo packages to 10.0.0-rc.2 by @branarakic in #358
New Contributors
- @lupuszr made their first contribution in #62
- @Jurij89 made their first contribution in #112
- @Bojan131 made their first contribution in #162
- @anabevc made their first contribution in #274
Full Changelog: v9.0.0-beta.6...v10.0.0-rc.2