Skip to content

v10.0.0-rc.2

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 May 12:48
· 2921 commits to main since this release
72ee90e

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 by RandomSampling.sol; chunk selection reads merkleLeafCount from on-chain V10 storage; non-zero getNodeEpochProofPeriodScore once a node holds V10 stake.
  • Auto chain-reset wipe (packages/cli/src/daemon/chain-reset-wipe.ts): on boot, the daemon compares the bundled network.chainResetMarker against the persisted marker and one-shot wipes store.nq{,.tmp} + publish-journal.* + random-sampling.wal when they differ. Operators no longer need a manual wipe procedure on a testnet reset.
  • ensureProfile auto-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 via DKGStakingConvictionNFT.createConviction(identityId, amount, lockTier=1) so the V10 stake vault (ConvictionStakingStorage.nodeStakeV10) is non-zero from the first proof period.
  • Required merkleLeafCount on the V9→V10 publish bridge (packages/chain/src/chain-adapter.ts, evm-adapter.ts): PublishToContextGraphParams.merkleLeafCount is 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 forces createChallenge to 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 StakingStorage into V10 ConvictionStakingStorage: the dual-store coupling between V8 Staking / DelegatorsInfo and 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 V8 Staking.stake to DKGStakingConvictionNFT.createConviction so E2E flows match the agent's actual auto-stake path.
  • enrichEvmError regex generalised (packages/chain): now decodes EVM revert reasons across Hardhat-style data="0x..." and the broader provider variants.

Fixed

  • Zero RandomSampling node scores caused by V8/V10 stake-vault split — RandomSampling.calculateNodeScore reads ConvictionStakingStorage.getNodeStakeV10 exclusively, but legacy Staking.stake only updated V8 StakingStorage. Resolved by routing all stake through V10 (ensureProfile, stakeAndSetAsk).
  • chainResetWipe daemon crash on FS errors (packages/cli/src/daemon/chain-reset-wipe.ts): wipe + saveState are now wrapped in try/catch; FS errors log a warning and boot continues instead of crashing the daemon.
  • ensureProfile profile-without-stake on partial failure: profile creation and staking are now in separate try/catch blocks 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 merkleLeafCount was 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 view on 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 integration CLI: 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

Full Changelog: v9.0.0-beta.6...v10.0.0-rc.2