refactor(offchain): consume canonical BalanceTracker + MechMarketplace, bump OA 0.21.26#1005
Conversation
…e, bump OA 0.21.26 Follow-up to the mech-interact offchain PR series. Mech v0.34.2-rc1 and open-autonomy v0.21.26 shipped the canonical contracts; drop the 3 slim duplicates that this branch was carrying and consume the canonicals as third_party. Contract swaps in packages.json + agents/trader/aea-config.yaml: - valory/mech_marketplace: slim -> open-autonomy 0.21.26 canonical - valory/balance_tracker: NEW third_party (mech's token variant, extended with build_deposit_for_data) - valory/balance_tracker_fixed_price_native: slim -> mech's canonical Dropped: valory/balance_tracker_fixed_price_token from packages.json and aea-config.yaml. mech-interact rewired to call mech's canonical balance_tracker with the token variant's methods. Bumps: - mech-interact upstream_pin: v0.32.4-rc1 -> v0.32.5-rc1 - mech_interact_abci hash: bafybeig3vt6yfncdydjyg2uzmhjv5nc62jjapi5ow7ht3mw2dwah7n3b64 - open-autonomy 0.21.23 -> 0.21.26, open-aea 2.2.7 -> 2.2.9 across pyproject.toml and all package YAMLs that pin the ledger plugin - uv.lock regenerated Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…native dirs Prior commit swapped the third_party hashes but the branch was carrying pre-swap local files for both packages (only __init__.py, contract.py, contract.yaml — no build/). CI's 'autonomy packages sync' then saw 'already present locally', kept the stale-and-incomplete tree, and computed a hash that didn't match the declared canonical hash: Error: Hashes for (contract, valory/mech_marketplace:0.1.0) does not match; Calculated: bafybeidpc6u6qi5c26...; Expected: bafybeigrcnjaycggulxyx2... Removed both directories from tracking. balance_tracker was never locally present. Autonomy sync now pulls all three canonicals fresh from IPFS in CI. Local `autonomy packages lock --check` clean after the delete + resync. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…tching hash Downstream of valory-xyz/mech v0.34.2-rc2 (open-aea-ledger-ethereum 2.2.7 -> 2.2.9 in mech's own contract YAMLs) and mech-interact PR #99 follow-up commit republishing mech_interact_abci with the new mech contract references. Bumps three hashes in packages.json + agents/ trader/aea-config.yaml: - balance_tracker: bafybeie7xvhpy... -> bafybeiayyxl64... (mech v0.34.2-rc2) - balance_tracker_fixed_price_native: bafybeibzobebm... -> bafybeihyaxqky... (mech v0.34.2-rc2) - mech_interact_abci: bafybeickbhbvv... -> bafybeicjuaguc... (mech-interact republished) Verification: autonomy packages lock --check green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Downstream of mech-interact release v0.32.4-rc2 which ships: - the canonical-BalanceTracker refactor (offchain path calls the released mech contracts, not mech-interact's slim duplicates) - OA 0.21.26 / open-aea 2.2.9 pins matching mech's own bump - the review-round-2..5 fixes for the offchain executor Bumps: - pyproject.toml upstream_pins: valory-xyz/mech-interact@v0.32.5-rc1 -> @v0.32.4-rc2 - packages.json + trader aea-config.yaml: mech_interact_abci: bafybeicjuaguc... -> bafybeifwuwtsi... Verification: autonomy packages lock --check green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…eases
Rebased the OA 0.21.26 canonicals branch onto origin/offchain-epic (was
targeting main) and bumped every [tool.tomte] upstream_pin to the
freshly-released tag that ships against open-autonomy 0.21.26 /
open-aea 2.2.9:
- valory-xyz/genai: v7.2.1 -> v7.2.2
- valory-xyz/funds-manager: v3.1.1 -> v3.1.2
- valory-xyz/omen-protocol: v0.1.1 -> v0.1.3
- valory-xyz/mech: (added) v0.34.2-rc2 (source for balance_tracker*)
- valory-xyz/kv-store: v0.6.0 -> feat/bump-open-aea-2.2.9-open-autonomy-0.21.26
(PR #17 head, tag pending)
mech-interact stays at v0.32.4-rc2. Third-party hashes in packages.json
were already at the rc2 values; `autonomy packages sync` + `lock` clean.
Verified:
- autonomy packages lock --check OK
- tomte tox -e black-check isort-check mypy flake8 darglint OK
- tomte tox -e check-third-party-hashes OK (7/8 upstreams reachable;
kv-store branch ref not fetchable via the tag-only path, tolerated)
- autonomy push-all OK
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
a7f3c4f to
ef0c74e
Compare
kv-store PR #17 tagged v0.7.1 (contains OA 0.21.26 / open-aea 2.2.9 pins matching the fleet). Replace the pre-release branch-ref pin in [tool.tomte] upstream_pins with the tag so `tomte tox -e check-third-party-hashes` resolves against a stable tag instead of a moving branch head. Verification: autonomy packages lock --check green; tomte tox -e check-third-party-hashes green (all 53 third-party hashes consistent with 8 reachable upstreams). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
OjusWiZard
left a comment
There was a problem hiding this comment.
Automated multi-agent review — 3 findings, all about files the version bump missed (anchored to nearest changed lines since the affected files aren't in the diff).
…cals Review missed three pin sites outside the diffed packages: - .github/workflows/release.yaml: bumped 3 valory/open-autonomy-user docker image tags 0.21.23 -> 0.21.26 (lines 18, 55, 98) and the two `autonomy build-image -e open-autonomy==0.21.23` args (lines 68, 111). Without the bump a release cut from this branch would build images on the old toolchain while packages inside expect 0.21.26. - tox.ini:77: `[Authorized Packages]` liccheck entry open-autonomy 0.21.23 -> 0.21.26. `tomte tox -e liccheck` (via .github/workflows/common_checks.yaml:67) matches this as an exact-version spec, so the mismatch would fail CI. - .gitignore: added the three newly third-party contracts (mech_marketplace / balance_tracker / balance_tracker_fixed_price_native) alongside the existing ignored siblings so they don't reappear as untracked dirs after every `autonomy packages sync`. Verification: autonomy packages lock --check green (text/CI-config only, no package fingerprint changes). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
bennyjo
left a comment
There was a problem hiding this comment.
Second review: verified clean end-to-end. All swapped hashes in packages.json match the pinned upstream tags byte-for-byte (mech v0.34.2-rc2, mech-interact v0.32.4-rc2, open-autonomy v0.21.26; mech_marketplace's CID is identical across all three sources), no dangling references to the deleted contract wrappers, and the deposit-redirect checks from the deleted slim wrappers survive fail-closed in the pinned mech-interact skill (402 payTo validated against the on-chain tracker registry, asset against the tracker's token(), refusing to deposit on any read failure or mismatch). Open-autonomy audit-fsm/audit-resilience ran clean, and CI is fully green including lock_check on three OSes.
Summary
Follow-up to the mech-interact offchain PR series.
mech v0.34.2-rc1andopen-autonomy v0.21.26shipped the canonical contracts; drop the 3 slim duplicates and consume the canonicals asthird_party.Changes
Contract swaps (in
packages.json+agents/trader/aea-config.yaml):mech_marketplace— slim → open-autonomy 0.21.26 canonical (bafybeigrcnjaycggulxyx2tsjub4ssjij66d7nfzsavo6gd54hm7beliiu)balance_tracker— NEW third_party (mech's token variant, extended withbuild_deposit_for_data;bafybeie7xvhpyztpixha7kjx6z6deyvvsk5er4xpdkpgqc65q552xpvi6e)balance_tracker_fixed_price_native— slim → mech's canonical (bafybeibzobebmwsi3sd4a5ubrrbmhm6dqjh4fmxpqmzcycklk5vet3xqce)Dropped:
balance_tracker_fixed_price_tokenfrompackages.json+aea-config.yaml. mech-interact rewired to call mech's canonicalbalance_trackerwith the token variant's methods.Bumps:
mech-interactupstream_pin:v0.32.4-rc1→v0.32.5-rc1mech_interact_abcihash: →bafybeig3vt6yfncdydjyg2uzmhjv5nc62jjapi5ow7ht3mw2dwah7n3b64open-autonomy0.21.23 → 0.21.26,open-aea*2.2.7 → 2.2.9 acrosspyproject.tomland every package YAML pinning the ledger pluginuv.lockregeneratedVerification
uv lockcleanautonomy packages synccompletesautonomy packages lock --checkgreenDepends on
Marked draft until mech-interact tags v0.32.5-rc1.
🤖 Generated with Claude Code