chore(tinybus): advance to the attestation-capable bus - #22
Conversation
Picks up confidential messages (#10), lazy modules (#12), confidential stream refusal (#13), and the pinned-release attestation (#15). #15 is the one that matters for this module. Attestation was previously written only from a `modules.toml` beside the artifact; a module loaded from a GitHub release extracts into a fresh temporary directory that has no such file, so it was never attested and every confidential call to it was refused. This module ships exactly that way, so a build against the old bus can never be sent key material however the host is configured. Co-authored-by: Medulla <medulla@tinyhumans.ai>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe PR updates the Changestinybus update
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: 🔵 Low · up to This update allows verified release-pinned modules to become eligible for confidential messages while leaving the current wallet API and key-material handling unchanged. It is mergeable with owner awareness, but the security-sensitive dependency transition should have its provenance, compatibility, and targeted TinyBus behavior checks confirmed before or alongside merge. Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Why
The module ships as a pinned GitHub release artifact. Until
tinybus#15 that made it
permanently ineligible to receive a confidential message, whatever the host did.
Attestation was written only from a
modules.tomlbeside the artifact. Arelease download extracts into a fresh
tempfile::TempDir, soallowlisted_hashreturned
Ok(None)and the module was never attested — even thoughacquirehadverified the pinned digest twice, against the release's own
checksum.tomlandagainst the downloaded bytes, before extracting anything.
So a module built against the old bus can never be sent key material. This bump
is the prerequisite for moving derivation and signing in here; on its own it
changes no behaviour.
What comes with it
Not in this PR
The wire surface is unchanged — still
BuildUnsignedandAttachSignature, stillno method that accepts key material. Exposing derivation and signing over
confidential calls is the next change, and it is a wire-contract change that
deserves its own review.
Verification
Summary by CodeRabbit