Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
c1093be
chore(mirror): open step 7 lane (observation + DHT pointer)
MichaelTaylor3d Aug 30, 2026
2614d07
build(deps): take the peer stack's ^0.21 tier now dig-gossip v0.32.0 …
MichaelTaylor3d Aug 30, 2026
71317f3
feat(mirror): observe bond states from four readings (#412 step 7)
MichaelTaylor3d Aug 30, 2026
5a1f3d4
fix(deps): restore LF on dig-node-core's manifest and make the sectio…
MichaelTaylor3d Aug 30, 2026
01bc66a
fix(mirror): make the salvaged observation tests compile against the …
MichaelTaylor3d Aug 30, 2026
c649ce9
docs(wallet): state what dig_balance_base_units actually guarantees
MichaelTaylor3d Aug 30, 2026
66f637c
Merge branch 'main' into loop/412-step7-observation
MichaelTaylor3d Aug 30, 2026
63c83d5
chore(mirror): open the step-7 wiring lane (lifecycle bring-up, WIP)
MichaelTaylor3d Aug 30, 2026
889835d
feat(mirror): serve bondStates from a published pass observation (#41…
MichaelTaylor3d Aug 30, 2026
c8a1342
feat(mirror): schedule the reconcile pass and open the signer at brin…
MichaelTaylor3d Aug 30, 2026
fea4861
feat(mirror): bring the lifecycle up, and state in SPEC.md what now a…
MichaelTaylor3d Aug 30, 2026
403a071
feat(collateral): let the buffer advice read the same observation bon…
MichaelTaylor3d Aug 30, 2026
96b3649
fix(wallet): the synthetic public key is Copy, so hand it back withou…
MichaelTaylor3d Aug 30, 2026
ab6b25a
test(mirror): assert the bond row at its FLATTENED wire spelling, whi…
MichaelTaylor3d Aug 30, 2026
9a5d392
test(mirror): prove the presence tracker carries between runners (#412)
MichaelTaylor3d Aug 30, 2026
8f93bd6
fix(mirror): derive the reported spend capability from the broadcaste…
MichaelTaylor3d Aug 30, 2026
e22e8ae
test(mirror): exercise open_signer itself, so the capability test can…
MichaelTaylor3d Aug 30, 2026
2401100
test(mirror): keep one presence-carry test, and make it pass clippy
MichaelTaylor3d Aug 30, 2026
360366b
test(collateral): prove a withheld row is not a pair the buffer advic…
MichaelTaylor3d Aug 30, 2026
1668f7a
test(control): keep one bondable_pairs test, on the fixture that disc…
MichaelTaylor3d Aug 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 33 additions & 83 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

54 changes: 25 additions & 29 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ edition = "2021"
# the ROOT manifest (`[workspace.package].version`), so it MUST be set here for a
# release to fire (§3.6). The library crates (dig-node-core/dig-runtime/dig-wallet)
# keep their own independent versions — only the released binary tracks the workspace version.
version = "0.172.0"
version = "0.173.0"

# Release hardening, matching digstore: keep integer-overflow checks ON in release.
# The node parses untrusted serialized input and does offset/length arithmetic over
Expand All @@ -56,35 +56,31 @@ overflow-checks = true
# dig-nat from crates.io, so cargo resolves ONE dig-nat instance without any git redirect.
# dig-constants is likewise a plain crates.io dep everywhere now.
#
# The RESOLVED line today is dig-nat **0.18.0** (see `crates/dig-node-core/Cargo.toml`, which owns the
# declaration and the reasoning). Do not read a version out of this comment: an earlier revision of it
# asserted "dig-nat 0.7 ... resolves ONE dig-nat 0.7 instance", which was true of the #1280 cascade and
# was eleven minors stale by the time anyone read it. `tests/dependency_tree.rs` asserts the
# single-instance invariant against the resolved LOCK, which is the only claim that cannot go stale.
# Do NOT read a version out of this comment. `tests/dependency_tree.rs` asserts the single-instance
# invariant against the resolved LOCK, which is the only claim about a version that cannot go stale.
# An earlier revision of this block asserted "dig-nat 0.7 ... resolves ONE dig-nat 0.7 instance",
# which was eleven minors stale by the time anyone read it.
#
# THE PEER STACK IS NOW ON THE 0.36.1 LINE (dig_ecosystem#3161, 2026-08-26).
# THE PEER STACK IS ON THE ^0.21 TIER (dig-node#412 step 7, 2026-08-30).
#
# The wall this comment used to describe was chia-bls: every published stack member required
# `dig-nat ^0.20` -> `dig-tls ^0.4`, which is the chia-bls 0.36.1 uplift, while dig-gossip was pinned
# at a rev reaching chia-protocol 0.26 through `dig-peer-protocol 0.6.0`. Adopting any of them split
# chia-bls across two lines inside one crate.
# Two walls have now been cleared here in sequence, and both cleared UPSTREAM rather than by an edit
# in this file. The first was chia-bls: the stack required `dig-nat ^0.20` -> `dig-tls ^0.4` (the
# chia-bls 0.36.1 uplift) while dig-gossip was pinned at a rev reaching chia-protocol 0.26 through
# `dig-peer-protocol 0.6.0`. dig-gossip v0.30.0 cleared it. The second was dig-nat itself: that same
# dig-gossip release declared `dig-nat ^0.20`, so the ^0.21 tier resolved TWO dig-nat lines while
# cargo printed success. **dig-gossip v0.32.0 (`main`, rev 1a339166) declares `dig-nat = "0.21"`,
# which cleared it.**
#
# The predicted unblock is exactly what happened, and it happened UPSTREAM: dig-gossip `main`
# (v0.30.0) moved to `dig-peer-protocol 0.7` and chia 0.36.1. Repointing the git rev in
# `crates/dig-node-core/Cargo.toml` is what let the stack move; nothing was shimmed, and nothing in
# this file needed to change to allow it.
# The resolved stack is dig-nat 0.21, dig-dht 0.13, dig-download 0.21, dig-peer 0.13,
# dig-peer-selector 0.10 -- and dig-nat, dig-dht, dig-tls, chia-bls and chia-protocol each resolve to
# exactly the line count they had before the move.
#
# The resolved stack is dig-nat 0.20, dig-dht 0.12.1, dig-download 0.20.4, dig-peer 0.12.0,
# dig-peer-selector 0.9.2 -- the ^0.20 TIER, deliberately not the newest.
#
# WHY THE OLDER TIER IS THE CORRECT CHOICE, and the distinction a future lane will get wrong: the
# step from dig-nat 0.20 to 0.21 carries ZERO chia delta (both take `dig-tls ^0.4`). It is still not
# takeable, for a reason one level up -- dig-gossip v0.30.0 declares `dig-nat ^0.20`, while
# dig-dht 0.13 / dig-peer 0.13 / dig-download 0.21 / dig-peer-selector 0.10 all require `^0.21`.
# Taking the newer tier resolves TWO dig-nat lines while cargo prints success, MEASURED here, and
# dig-nat values cross from this crate into dig-download/dig-gossip/dig-peer-selector. One line per
# family beats the highest version numbers (CLAUDE.md §2.4b).
#
# So "0.21 is chia-blocked" is FALSE and "dig-node cannot reach 0.21" is still TRUE. The remaining
# unblock is a dig-gossip release against `dig-nat ^0.21`, upstream, never an edit in this file. Do
# not bridge two lines with a shim -- that is the §4.1 byte-drift class.
# THE ONE THING A FUTURE LANE WILL GET WRONG: **dig-dht 0.15 is NOT takeable, and the blocker has
# moved down a level.** dig-download 0.21.0 and dig-peer-selector 0.10.0 -- the LATEST published of
# each -- both require `dig-dht ^0.13`, measured from the crates.io index and not from a caret.
# Declaring `dig-dht = "0.15"` resolves TWO dig-dht lines while cargo prints success, and dig-dht
# values cross from this crate into both of them. dig-dht 0.15 carries
# `ProviderRecord::unverified_mirror_coin_id` (dig-dht#23), so that field is unreachable here until a
# dig-download AND a dig-peer-selector release against `dig-dht ^0.15` exist -- upstream, never an
# edit in this file. One line per family beats the highest version numbers (CLAUDE.md §2.4b), and
# bridging two lines with a shim is the §4.1 byte-drift class.
Loading
Loading