Task
Bring this workspace's dig-node-control-interface declaration from "0.31" to the current 0.32.1, and serve whatever the new line declares.
Split out of #557 under §2.4b's own scope limit — "if the bumps genuinely dwarf the original change, say so and split, but file the split as a named child, never as later." It is filed rather than folded in because it is not a version-number change: 0.31 -> 0.32 crosses a 0.x minor, which is semver-INCOMPATIBLE, and the delta declares a new control method.
Context
Measured on origin/main (c0e3597):
crates/dig-wallet/Cargo.toml:81 — dig-node-control-interface = "0.31"
crates/dig-node-service/Cargo.toml:95 — dig-node-control-interface = "0.31"
Cargo.lock resolves one line, 0.31.0. Latest published: 0.32.1.
Two declarations, one resolved line, so the bump must move both in the same PR or the lock splits.
What the delta actually is
v0.31.0..v0.32.1 upstream:
A declared control method that nothing serves is the failure mode to avoid here. This ecosystem has shipped that before — four methods declared and served by nobody. So the deliverable is not the caret edit: it is the bump plus dig-node actually serving control.wallet.resetCoinDb, or an explicit statement of why it does not and what a caller sees when it asks.
Verify, do not assume, whether this is source-breaking. If the interface exposes the method set as an enum that dig-node-service matches exhaustively, a new variant is a compile error and the bump forces the implementation; if it does not, the bump compiles clean and silently leaves the method unserved — which is the worse outcome, because nothing goes red.
Scope
- Both declarations to
0.32.1, one lock line, verified from Cargo.lock.
control.wallet.resetCoinDb served, or its absence stated with the caller-visible behaviour named.
- §2.4b for the crates touched; the chia family does not move.
- A test that fails without the change.
Failure direction to state in the PR
resetCoinDb discards a cached coin database. That is a destructive local operation on the surface a wallet reads its money from, so the PR must say what happens to an in-flight read, to a coin reservation, and to a balance shown to the user while the cache is empty — an emptied cache that reads as "no coins" rather than as "not yet known" is a surface lying about money.
Related
Closable
Done when both manifests declare the current line, Cargo.lock resolves it once, control.wallet.resetCoinDb is either served or its non-service is documented, and cargo test --workspace --all-targets --all-features --locked is green.
Task
Bring this workspace's
dig-node-control-interfacedeclaration from"0.31"to the current0.32.1, and serve whatever the new line declares.Split out of #557 under §2.4b's own scope limit — "if the bumps genuinely dwarf the original change, say so and split, but file the split as a named child, never as later." It is filed rather than folded in because it is not a version-number change:
0.31 -> 0.32crosses a0.xminor, which is semver-INCOMPATIBLE, and the delta declares a new control method.Context
Measured on
origin/main(c0e3597):crates/dig-wallet/Cargo.toml:81—dig-node-control-interface = "0.31"crates/dig-node-service/Cargo.toml:95—dig-node-control-interface = "0.31"Cargo.lockresolves one line,0.31.0. Latest published:0.32.1.Two declarations, one resolved line, so the bump must move both in the same PR or the lock splits.
What the delta actually is
v0.31.0..v0.32.1upstream:7db97d1feat(wallet): declarecontrol.wallet.resetCoinDb, discarding the cached coin database (fix(security): walk parent components + reject reparse points in dir_is_privileged (#712) #48) — the substance.38ca1f6docs: add CONTRIBUTING.md (fix: route dign open through dig-urn-resolver (§5.3 ladder + branded errors) (#745) #50)A declared control method that nothing serves is the failure mode to avoid here. This ecosystem has shipped that before — four methods declared and served by nobody. So the deliverable is not the caret edit: it is the bump plus dig-node actually serving
control.wallet.resetCoinDb, or an explicit statement of why it does not and what a caller sees when it asks.Verify, do not assume, whether this is source-breaking. If the interface exposes the method set as an enum that
dig-node-servicematches exhaustively, a new variant is a compile error and the bump forces the implementation; if it does not, the bump compiles clean and silently leaves the method unserved — which is the worse outcome, because nothing goes red.Scope
0.32.1, one lock line, verified fromCargo.lock.control.wallet.resetCoinDbserved, or its absence stated with the caller-visible behaviour named.Failure direction to state in the PR
resetCoinDbdiscards a cached coin database. That is a destructive local operation on the surface a wallet reads its money from, so the PR must say what happens to an in-flight read, to a coin reservation, and to a balance shown to the user while the cache is empty — an emptied cache that reads as "no coins" rather than as "not yet known" is a surface lying about money.Related
Closable
Done when both manifests declare the current line,
Cargo.lockresolves it once,control.wallet.resetCoinDbis either served or its non-service is documented, andcargo test --workspace --all-targets --all-features --lockedis green.