Repository navigation
Add static TinyBus module exports - #23
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (8)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe crate adds a ChangesStatic-link ABI exposure
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Feature Merge Risk: 🔵 Low · up to CI checks both linking modes, but the static-link test may miss regressions in the module manifest’s contents. This is a bounded follow-up risk; there is no evidence the current manifest is incorrect. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The linked entrypoints use the same declared service setup as the existing loadable module. No introduced security bypass was identified, but the linked initialization path and its caller permissions have not been verified at runtime. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Hardening Proposals
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
A rabbit checks the symbols bright, Comment |
Tiny Sweeper reviewTiny Sweeper reviewed this change across 6 lane(s) and found 3 active actionable finding(s). Detailed lane evidence and any incomplete work are listed below. State: Ready for maintainer review Review snapshot
Completeness: Complete What changedThe review could not produce a supported behavioral summary; inspect the cited changed surface and lane details below. FeaturesNone identified with supported citations. TestsNo supported feature-to-test mapping was produced. Test execution is not inferred. Findings
Previously reported and still active
Resolved this pass
Before merge
How this fits togetherflowchart LR
n0["McpService<br/>changed"]:::changed
n1["failed"]:::impacted
n2["Error"]:::impacted
n3["parse_handles"]:::impacted
n4["service"]:::impacted
n1 -->|uses| n2
n3 -->|uses| n2
n4 -->|uses| n0
classDef changed fill:#0d4429,stroke:#238636,color:#e6edf3
classDef impacted fill:#161b22,stroke:#6e7681,color:#c9d1d9
classDef flagged fill:#5a1e02,stroke:#d93f0b,color:#ffffff
classDef blocking fill:#67060c,stroke:#f85149,color:#ffffff
Agent review detailscritique
security
tests
commits
description
e2e
Evidence and run details
|
There was a problem hiding this comment.
tinysweeper found nothing blocking. Approving.
$0.0069 · 263,537 in / 19,975 out · 28,479 cached (11%) · ladder/vectors, gpt-5.6-luna, deepseek-v4-flash · 372 embedded
critique: $0.0041 · 153,604 in / 5,641 out · 8,192 cached (5%) · gpt-5.6-luna, deepseek-v4-flash
security: $0.0019 · 74,526 in / 2,205 out · 5,439 cached (7%) · gpt-5.6-luna
tests: $0.0005 · 27,529 in / 6,809 out · 13,824 cached (50%) · deepseek-v4-flash
description: $0.0002 · 4,759 in / 3,356 out · 1,024 cached (22%) · deepseek-v4-flash
There was a problem hiding this comment.
Requesting changes: 2 lane(s) blocking, worst finding is high.
Fix or reply to the findings below and push. The next review clears this automatically once they are gone — you should not need to dismiss anything by hand.
$0.0062 · 214,396 in / 20,558 out · 11,880 cached (6%) · ladder/vectors, gpt-5.6-luna, deepseek-v4-flash · 445 embedded
critique: $0.0030 · 93,036 in / 9,039 out · 4,648 cached (5%) · gpt-5.6-luna, deepseek-v4-flash
security: $0.0022 · 78,936 in / 3,240 out · 3,648 cached (5%) · gpt-5.6-luna
tests: $0.0007 · 32,191 in / 4,410 out · 2,560 cached (8%) · deepseek-v4-flash
description: $0.0001 · 6,040 in / 764 out · 1,024 cached (17%) · deepseek-v4-flash
There was a problem hiding this comment.
The previously-blocking findings are resolved. Clearing the changes request.
$0.0013 · 48,469 in / 8,348 out · 2,560 cached (5%) · ladder/vectors, gpt-5.6-luna, deepseek-v4-flash · 460 embedded
critique: $0.0004 · 15,457 in / 561 out · 0 cached (0%) · gpt-5.6-luna
tests: $0.0003 · 17,934 in / 1,143 out · 1,536 cached (9%) · deepseek-v4-flash
description: $0.0002 · 9,154 in / 2,185 out · 1,024 cached (11%) · deepseek-v4-flash
Summary
static-linkfeature using one shared module declaration for static and dynamic exports.Related issue
None.
API or behavior changes
Additive: with
static-link, the crate exposestinybus_module::{TINYBUS_MODULE_ABI_V1, tinybus_module_manifest_v1, tinybus_module_init_v1}. Default dynamic loading is unchanged.Validation
cargo fmt --all -- --checkcargo clippy --all-targets --all-features -- -D warningscargo clippy --all-targets -- -D warningscargo build --all-targets --all-featurescargo test --all-featurescargo build -p tinymcpandcargo run -p tinymcp --example verify_module -- target/debug/libtinymcp.dylibTests
Added a static feature integration test for the descriptor, manifest, and init entry. The existing dynamic verifier passed against a freshly built artifact.
Documentation
Updated README with static-link usage.
Checklist
Summary by CodeRabbit
static-linkoption for loading TinyBus modules through static linking, with the required ABI entries available to Rust code.