fix(tests): build the test harness against ant-node's ChunkStore - #196
Merged
Conversation
Closes V2-1033 ant-node #216 replaced the LMDB chunk store with one file per chunk and changed `AntProtocol::new` to take `Arc<ChunkStore>` instead of `Arc<LmdbStorage>`. `ant-core/tests/support/mod.rs` still constructs the LMDB type, so all seven e2e test binaries fail to compile against it with `error[E0308]: mismatched types`. This was invisible until now because ant-client's CI compiles against the published ant-node 0.18.1, which predates #216. It surfaced at the rc-2026.9.2 cut, where ant-core's dev-dep points at ant-node's rc branch and `cargo check --all-targets --all-features` broke. `ChunkStoreConfig` is `LmdbStorageConfig` plus a `migration` field and `ChunkStore::new` has the same shape, so the harness change is mechanical. The ant-node pins move to rev 31fcbae (#216's merge on ant-node `main`) because 0.18.1 has no `ChunkStore` and the harness cannot compile against it. A rev rather than a branch, so the pin is immutable. Both pins revert to `ant-node = "0.19.0"` when the release train publishes it. Note for reviewers: these nodes start with no legacy environment, so the store comes up directly on the file backend and the migration never runs. This harness gives no LMDB-to-file migration coverage, and did not before. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RAfH7vssjtvHycmbLCr5ov
dirvine
approved these changes
Sep 8, 2026
dirvine
left a comment
Member
There was a problem hiding this comment.
Quick review at exact head b73854d: the test-harness migration from LmdbStorage to ChunkStore is mechanical and consistent with the pinned ant-node revision. Locally verified cargo check --all-targets --all-features and cargo fmt --all -- --check; both passed with a clean worktree. Current completed CI checks are green; long-running E2E jobs remain pending. No blocking issues found.
7 tasks
jacderida
added a commit
to jacderida/ant-client
that referenced
this pull request
Sep 11, 2026
Closes V2-1033 Formatting only — the dependency is unchanged. The release tooling's rewrite_dep.py handles single-line inline tables only, so the multi-line form introduced in WithAutonomi#196 aborts the RC cut with: multi-line inline table for 'ant-node' at line 108 — not supported Collapsing it lets `--rewrite-on ant-core/Cargo.toml#dev-dependencies=ant-node` retarget the pin at cut time, and lets release_one_crate.sh rewrite it back to a published version at promotion. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RAfH7vssjtvHycmbLCr5ov
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.
Linear issue
Closes V2-1033
What this fixes
ant-node #216 replaced the LMDB chunk store with one file per chunk, changing
AntProtocol::newto takeArc<ChunkStore>instead ofArc<LmdbStorage>.ant-core/tests/support/mod.rsstill constructs the LMDB type, so all seven e2e test binaries fail to compile:e2e_merkle,e2e_payment,e2e_file,e2e_security,e2e_upload_costs,e2e_huge_file,e2e_cost_estimate.Why nobody saw it. ant-client's CI compiles against the published ant-node 0.18.1, which predates #216, so the API change never reached this repo. It surfaced at the
rc-2026.9.2cut, where ant-core's dev-dep points at ant-node's rc branch andcargo check --all-targets --all-featureswent red. The shippedantbinary is unaffected — it never links ant-node.Risk tier
Test-harness code and two dependency pins. No shipped code path changes.
Compatibility
Semver impact
No version bump is taken here; the release train owns that.
The dependency pins
ant-node = "0.18.1"has noChunkStore— it exports onlyLmdbStorage, withStorageStatsstill understorage::lmdb. So the harness cannot compile against a published ant-node until 0.19.0 exists.Both pins (the optional
devnetdep and the[dev-dependencies]one) move to rev31fcbae— #216's merge commit on ant-nodemain. A rev rather than a branch, so the pin is immutable and the build stays reproducible. Both revert toant-node = "0.19.0"when the train publishes it;release_one_crate.shdoes that rewrite at promotion.Verified single lineage after the change — one
ant-node, oneant-protocol, onesaorsa-corein the lock, no registry/git duplicates.Test evidence
Run on this branch:
cargo check --all-targets --all-features— clean (this is what was red)cargo fmt --all -- --check— cleancargo clippy --workspace --all-targets --all-features -- -D warnings— cleancargo test --lib— 645 passed, 0 failedThe e2e suites compile again; they are left to CI to run, since the merkle suite alone takes ~55–65 min.
New dependency
None. Two existing
ant-nodepins change form from a version to a git rev.ADR
n/a — T1 test-harness fix.
Mitigation / rollback
Revert the single commit. That restores the
LmdbStorageharness and theant-node = "0.18.1"pins, which is a consistent, compiling state — it isexactly what
mainis today. The cost of reverting is that the e2e suitesstop compiling again the moment ant-core points at an ant-node carrying #216,
so the rc branch would need the fix carried some other way.
Nothing here is reachable from the shipped
antbinary, so a revert has noruntime blast radius.
Note for reviewers
These nodes start with no legacy environment, so the store comes up directly on the file backend and the migration never runs. This harness therefore gives no LMDB-to-file migration coverage — it did not before either, but it is worth stating out loud given #216 is the release this is unblocking. Migration evidence has to come from the staging run and the beta soak.
🤖 Generated with Claude Code
https://claude.ai/code/session_01RAfH7vssjtvHycmbLCr5ov