Skip to content

chore(deps): bump tinybus 0.3.6, tinytools 0.6.0, tinystoragedrivers 2.1.1 - #121

Merged
senamakel merged 9 commits into
mainfrom
bump-tinybus-0.3.6
Oct 26, 2026
Merged

senamakel merged 9 commits into
mainfrom
bump-tinybus-0.3.6

Conversation

@senamakel

@senamakel senamakel commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

Bumps the nested tinybus submodule to v0.3.6 (6ce06bc), the tinybus git pin and version range (>=0.3.6, <0.4), tinytools to v0.6.0 (41cc80a) and tinystoragedrivers to v2.1.1 (bf1f0a9); refreshes Cargo.lock and the bus-boundary script pin. No code changes were needed. Locally: clippy -D warnings, rustdoc -D warnings, fmt, nextest (896 pass), doctests, test-features, test-e2e, coverage and boundary scripts all pass.

Summary by CodeRabbit

  • Chores
    • Updated the underlying wallet, cryptography, messaging, and storage components.
    • Updated supporting libraries used for mnemonic generation, random number generation, and key handling.
    • No changes to the product interface or documented user-facing behavior are indicated.

senamakel and others added 4 commits October 26, 2026 06:22
Update the vendored tinybus submodule to the latest upstream commit.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the pinned tinytools revision to 41cc80ac so the dependency stays
in sync with the gitlink tinyagents pins, keeping tinytools::Tool a
single unified type.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the workspace to tinybus 0.3.6 and tinystoragedrivers 2.1.1, refreshing the pinned git revision and the transitive getrandom version. The lockfile and manifests were regenerated to match.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the pinned revision for tinystoragedrivers-types to bf1f0a97 so the bus boundary check tracks the current upstream commit, and adjust the boundary tests to match the new pin.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
@tinysweeper

tinysweeper Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Tiny Sweeper review

Reviewed head: 8783048ce032bedac6615ff4d154be6a371dc1cb

Findings

No active actionable findings.

Advisory notes

  • medium: Describe the mnemonic generation rewrite in the PR body ((pull request description))
    Problem: The body says "No code changes were needed", but this diff changes library code: `generate_mnemonic` now converts `word_count` through `coins_bip39::WordCount` and calls `Mnemonic:
    Suggested fix:
    No concrete fix was supplied.

Verdict: Ready for maintainer review · Priority: medium
Coverage: Reviewed 10 of 12 files; not reviewed: Cargo.lock, vendor/tinybus.

Diagnostics and supporting details

Full summary

Pull request purpose (title): chore(deps): bump tinybus 0.3.6, tinytools 0.6.0, tinystoragedrivers 2.1.1. Tiny Sweeper completed its review; deterministic results follow.

Unreviewed paths

  • Cargo.lock
  • vendor/tinybus

Review snapshot

Change surface Files Review signal Count
Production 4 Active findings 0
Tests 3 Noted findings 1
Documentation 0 Resolved findings 0
Configuration 3 Pending checks/questions 0

Completeness: Complete
Test assessment: Test coverage is assessed from changed tests and lane evidence; execution is not claimed without trusted check data.

What changed

Dependency pins move across Cargo.toml and both crate manifests: tinytools to 41cc80ac, tinystoragedrivers types/api/busproxy/testkit to bf1f0a97, and tinybus to 0.3.6 with range >=0.3.6, <0.4. In the root crate, coins-bip32 and coins-bip39 go 0.13 to 0.17, rand 0.9 to 0.10 with added sys_rng/thread_rng features, and k256 goes to 0.14 in the x402 crate. Code is adapted to the new APIs: to_encoded_point becomes to_sec1_point in src/key/bip32.rs, src/key/evm.rs and src/key/mod_tests.rs; sign_prehash_recoverable drops its unwrap in crates/tinywallet-x402/src/test_support/mod.rs; generate_mnemonic in src/key/mod.rs is rewritten around WordCount::try_from and Mnemonic::random. scripts/check-bus-boundaries.py and its test update the TSD rev. Cargo.lock and vendor/tinybus are in the changed-file list but not in the shown diff.

Features

  • Modified — Key derivation migrated to k256 0.14 / coins-bip32 0.17 SEC1 encoding API: Uncompressed and compressed public key encoding now calls to_sec1_point; a wrong encoding would silently change EVM/Tron address derivation, so this path is load-bearing. (src/key/bip32.rs impl Secp256k1Key {, src/key/evm.rs fn hex_lower(bytes: &[u8]) -> String {)
  • Modified — generate_mnemonic rewritten for coins-bip39 0.17 and rand 0.10: Word count is validated up front via WordCount::try_from, preserving Error::InvalidMnemonicWordCount for unsupported lengths, then Mnemonic::random generates the phrase; the derivation entry point signature is unchanged. (src/key/mod.rs pub fn derive(chain: Chain, mnemonic: &str, path: &str) -> Result<DerivedKey> {, Cargo.toml ripemd = { version = "0.2", optional = true })
  • Modified — x402 fake signer adapted to non-panicking sign_prehash_recoverable: The test-only signer no longer unwraps the recoverable-signature result and uses the returned signature/recovery tuple directly. (crates/tinywallet-x402/src/test_support/mod.rs impl PaymentSigner for FakePaymentSigner {)
  • Modified — tinybus and tinystoragedrivers pin bumps with boundary pin refresh: Module and x402 crates build against tinybus 0.3.6 and the bf1f0a97 storage revision, and the bus-boundary audit treats the new TSD rev as the canonical allowed source so it does not reject the tree it should permit. (crates/tinywallet-module/Cargo.toml sha2 = "0.11", crates/tinywallet-module/Cargo.toml workspace = true, scripts/check-bus-boundaries.py, crates/tinywallet-x402/Cargo.toml http-body-util = "0.1")

Tests

  • updated_unit_test — EVM address derivation test now builds the verifying key's compressed SEC1 point via to_sec1_point and asserts the derived address matches the key's address.: Tests lane reports derivation-vector tests such as evm_matches_the_published_test_vector cover the migrated encoding; no execution result was independently verified. (src/key/mod_tests.rs fn public_evm_address_matches_key_derivation_and_rejects_invalid_points() {)
  • updated_unit_test — Boundary tests assert the canonical pinned TSD types git source is allowed and a fork source is rejected, both against the bf1f0a97 rev literal.: Tests lane reports the script constant and fixtures were updated consistently; no execution result was independently verified. (scripts/check_bus_boundaries_tests.py def test_canonical_pinned_tsd_types_git_source_is_allowed(self):, scripts/check_bus_boundaries_tests.py def test_fork_tsd_types_source_is_rejected(self):)

Before merge

None.

Agent review details

critique

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: Lane answered with zero findings across 7 of 10 files reviewed.
  • Lane summary: Reviewed 7 files; 0 findings.

security

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: Lane answered with zero findings.
  • Lane summary: Reviewed 7 files; 0 findings.

tests

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: Lane answered with zero findings and reports the API migrations are covered by existing derivation-vector tests.
  • Lane summary: This is a dependency-bump revision: coins-bip32/bip39 0.17, k256 0.14, rand 0.10, tinystoragedrivers and tinytools revs, plus the API migrations those force (`to_sec1_point`, `sign_prehash_recoverable` returning a tuple, `WordCount::try_from` + `Mnemonic::random`). The migrations are covered by existing tests that pin published derivation vectors (`evm_matches_the_published_test_vector`, `btc_derives_the_published_native_segwit_vector`), so a wrong encoding or derivation would fail; the invalid-word-count path is pinned in the key and module tests. I found no behavioural regression in the lines this revision touches.

commits

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: Lane answered and found no sensitive content in committed files.
  • Lane summary: No sensitive content in committed files.

description

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: Lane answered but raised a description accuracy issue: the body claims no code changes while substantive source changes and major-version range moves are present.
  • Lane summary: The description calls this a dependency bump with "no code changes needed", but the diff also rewrites the mnemonic generation path in `src/key/mod.rs` (new `coins-bip39` `WordCount` conversion and `Mnemonic::random`) and adapts call sites to the new `k256`/`coins-bip32` APIs (`to_sec1_point`, non-panicking `sign_prehash_recoverable`, `rand` 0.10). Those are substantive source changes a reviewer needs to know about, plus the bump moves major-version ranges (k256 0.13→0.14, coins-bip32/bip39 0.13→0.17, rand 0.9→0.10). The body should say so.
Evidence and run details
  • Models: ladder/vectors-oai3, deepseek-v4.1-flash
  • Spend: $0.000789
  • Tokens: 556297 input · 9494 output · 139264 cached · 508 embedding
  • Updated: 2026-10-26T08:13:44Z
Head State Pass summary
df712deb3f33 ready for maintainer review 0 active finding(s), 0 resolved finding(s) (at 2026-10-26T06:27:12Z)
8783048ce032 ready for maintainer review 0 active finding(s), 0 resolved finding(s) (at 2026-10-26T08:13:44Z)

tinysweeper 0.1.2

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-26T08:15:29.679544Z 8783048 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 3880cad2-cada-4220-aa51-481c567aaeb1
Commits

Reviewing files that changed from the base of the PR and between df712de and 8783048.

Files ignored due to path filters: 1
  • Cargo.lock is excluded by !**/*.lock
Files selected for processing: 7
  • Cargo.toml
  • crates/tinywallet-x402/Cargo.toml
  • crates/tinywallet-x402/src/test_support/mod.rs
  • src/key/bip32.rs
  • src/key/evm.rs
  • src/key/mod.rs
  • src/key/mod_tests.rs

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The workspace updates dependency versions and Git revisions. Key code now uses updated SEC1 and mnemonic APIs. The EVM test signer no longer unwraps the recoverable-signature result.

Changes: Workspace dependencies and key handling

Layer / File(s) Summary
Dependency versions and revision pins
Cargo.toml, crates/tinywallet-module/Cargo.toml, crates/tinywallet-x402/Cargo.toml, vendor/tinybus, scripts/check-bus-boundaries.py, scripts/check_bus_boundaries_tests.py
Dependency versions and Git revisions change. The TinyBus submodule and storage-driver boundary checks use updated revisions.
SEC1 encoding and EVM test signing
src/key/bip32.rs, src/key/evm.rs, crates/tinywallet-x402/src/test_support/mod.rs, src/key/mod_tests.rs
Public-key conversion uses to_sec1_point. The EVM test signer no longer unwraps the recoverable-signature result. The key derivation test uses the updated SEC1 conversion.
Mnemonic word-count validation
src/key/mod.rs
generate_mnemonic converts the requested count to WordCount before generating a phrase. Unsupported counts return Error::InvalidMnemonicWordCount.

Priority: Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Possibly related PRs

  • tinyhumansai/tinywallet#119: Updates the same TinyBus submodule; this PR advances it to a later commit and updates the TinyBus version range.

Suggested reviewers: m3ga-mind

Merge Risk: Minimal · up to 87830

The dependency and API updates present no established merge-blocking risk.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 7 files. (2 skipped: 2… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely identifies the primary dependency updates: tinybus, tinytools, and tinystoragedrivers.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 7 files. (2 skipped: 2 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches: 💡 1
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Some tools did not complete. Review the errors below.

🔧 Clippy (1.99.0)

Clippy execution failed

A rabbit checks the keys at dawn
New pins are set, old ones withdrawn
SEC1 points now find their place
Word counts pass through a careful gate
The test signer skips a panic's leap
Then hops away to carrots deep

Comment @coderabbitai help to get the list of available commands.

@tinysweeper tinysweeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tinysweeper found nothing blocking. Approving.

Diagnostics

Total spend: $0.0004

@tinysweeper tinysweeper Bot added the priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. label Oct 26, 2026
senamakel and others added 5 commits October 26, 2026 08:09
Bump the bitcoin, coins-bip32, coins-bip39, and coins-core dependencies to their latest releases and refresh the lockfile accordingly. The upgrade pulls in newer digest, hmac, and sha2 versions and drops the now-unused bitvec and const-hex transitive crates.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Renamed the SEC1 point encoding calls to the current to_sec1_point name and
switched mnemonic generation to the WordCount-based random constructor, which
validates the requested length up front instead of relying on the older
from_rng_with_count helper.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Updates the optional rand dependency to 0.10, which pulls in chacha20 and getrandom for the std_rng feature. The lockfile is regenerated to match.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
The rand dependency was missing the sys_rng and thread_rng features, so
rand::rng() could not be used to seed mnemonic generation from OS
entropy. Enabling them restores the intended behaviour, and the
generate_mnemonic call site is reformatted to satisfy rustfmt.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
The fake payment signer no longer unwraps the result of sign_prehash_recoverable, matching the infallible signature of the call.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
@tinysweeper tinysweeper Bot added priority: p2 Soon. Real but survivable — a rough edge, a gap, a thing that will bite later. and removed priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. labels Oct 26, 2026
@senamakel
senamakel merged commit fdaeda7 into main Oct 26, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: p2 Soon. Real but survivable — a rough edge, a gap, a thing that will bite later.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant