Conversation
Remove several unused dependencies across the workspace, including serde-big-array, chrono, tempfile, serde, anyhow, and async-trait, and update the toml crate from version 0.9 to 1.1 to keep the dependency tree current and reduce unnecessary compilation. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Tiny Sweeper reviewThis pull request removes several unused dependencies across the workspace and bumps the `toml` crate from version 0.9 to 1. No source code changes were made; the modifications are confined to `Cargo.toml` files. The review confirms no behavioral change and recommends merging. State: Changes requested Review snapshot
Completeness: Complete What changedModified `Cargo.toml` (removed `serde-big-array`, bumped `toml`), `crates/tinychannels-bus/Cargo.toml` (removed `chrono`, `tempfile`, bumped `toml`), `crates/tinychannels-module/Cargo.toml` (removed `serde`), and `crates/tinychannels-runtime/Cargo.toml` (removed `anyhow`, `async-trait`). Features
Tests
Findings
Previously reported and still active
Before merge
How this fits togetherflowchart LR
n0["derive_inbound_thread_id<br/>changed"]:::changed
n1["spawn_supervised_listener<br/>changed"]:::changed
n2["next"]:::impacted
n3["Channel"]:::impacted
n4["build_session_key"]:::impacted
n5["SessionKeyPolicy"]:::impacted
n6["build_session_key_for_inbound_envelope"]:::impacted
n0 -->|calls| n2
n1 -->|uses| n3
n4 -->|uses| n5
n6 -->|calls| n4
n6 -->|uses| n5
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
|
|
Warning Review paused — included plan limit reachedKeep your review moving with free on-demand reviews.
On-demand reviews are free for one more day. Promotion and pricing detailsOn-demand reviews are free for one more day. After that, they cost $0.25 per reviewed file. Review limit detailsOr wait 22 minutes for your next included review. Limit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
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 (4)
💤 Files with no reviewable changes (2)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe pull request updates the workspace and crate manifests. It removes unused dependencies, removes the ChangesDependency Cleanup
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Other 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
A rabbit checks the manifest lines Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
Requesting changes: 2 lane(s) blocking, worst finding is critical.
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.0093 · 147,261 in / 11,371 out · 8,640 cached (6%) · ladder/vectors, gpt-5.6-luna, deepseek-v4-flash · 225 embedded
critique: $0.0047 · 73,096 in / 3,927 out · 4,052 cached (6%) · gpt-5.6-luna, deepseek-v4-flash
security: $0.0043 · 63,709 in / 1,919 out · 3,564 cached (6%) · gpt-5.6-luna
description: $0.0002 · 7,818 in / 2,072 out · 1,024 cached (13%) · deepseek-v4-flash
When a session times out while waiting for the channel handshake to complete, the session was left in an inconsistent state. This change ensures that a timeout during the handshake properly cleans up the session and notifies the caller with an appropriate error, preventing resource leaks and undefined behavior in downstream components. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The import of `std::sync::Arc` was no longer needed after a previous refactor removed the last usage of `Arc` in this module. Removing it cleans up the code and eliminates a compiler warning about unused imports. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
When a Telegram message contains only media or other non-text content, the remote control handler now gracefully skips processing instead of panicking. This prevents crashes when users send photos, stickers, or other messages without text. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
There was a problem hiding this comment.
Requesting changes: 2 lane(s) blocking, worst finding is critical.
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.0106 · 223,051 in / 17,233 out · 27,060 cached (12%) · ladder/vectors, gpt-5.6-luna, deepseek-v4-flash · 359 embedded
critique: $0.0054 · 95,372 in / 3,684 out · 6,085 cached (6%) · gpt-5.6-luna, deepseek-v4-flash
security: $0.0041 · 77,220 in / 1,444 out · 3,567 cached (5%) · gpt-5.6-luna
tests: $0.0006 · 34,731 in / 5,144 out · 16,384 cached (47%) · deepseek-v4-flash
description: $0.0003 · 8,788 in / 3,162 out · 1,024 cached (12%) · deepseek-v4-flash
Factually incorrect: toml does have a published 1.x release (toml v1.1.6+spec-1.1.0 on crates.io). Cargo.lock on this PR's head resolves toml = "1" to that version, and cargo build/test (default + all-features) pass locally. Replied with this evidence on both flagged threads; see PR discussion. toml = "1" is the intended change per this PR's scope.
PR babysitter statusHead: CI: Fixes pushed on top of the original dependency cleanup (
All three were confirmed identical on tinysweeper bot feedback (4 threads across 2 review passes, all on the A Status: green and clean by every check that reflects real repository state (build/test/clippy/CodeRabbit/Codex); the only red checks are a bot false-positive addressed above with hard evidence. Proceeding to merge with a merge commit per explicit instruction (no squash, no |
Summary
Found by the cross-repo dependency audit in tinyhumansai/openhuman#6353 (
pnpm dep:audit, tinyanalyzer-driven) and verified by grep against this tree atmain. Manifest and lockfile only; no source changes.tinychannels: drop the optionalserde-big-arrayand itsdep:entry in thewhatsapp-webfeature — no source in the repo references it (the WhatsApp stack brings its own copy transitively if it needs one).tinychannels-bus: dropchrono(nochrono::path in the crate) and dev-dependencytempfile.tinychannels-runtime: dropanyhowand dev-dependencyasync-trait.tinychannels-module: dropserde— the crate only goes throughserde_json.toml0.9 → 1 intinychannelsandtinychannels-bus, so hosts already ontoml 1(openhuman) stop compiling twotoml/serde_spanned/toml_datetimelines.Not touched on purpose:
async-channel 1+event-listener 2(viastop-token) andnom 7(viaasync-imap/imap-proto) are pinned by third-party crates.Related issue
None.
API or behavior changes
None.
Validation
Commands actually run, with their outcome:
cargo fmt --all -- --check— cleancargo clippy --all-targets --all-features -- -D warnings— one pre-existingclippy::collapsible_ifatcrates/tinychannels-bus/src/channel/session.rs:138(untouched by this PR; newer clippy flagsif+if letnesting now that let-chains are stable). No other findings.cargo check --workspace --all-targets --all-features— cleancargo test --workspace --all-features— 997 passed, 0 failedTests
None added: dependency removal is verified by the build, not by a test.
Documentation
Not needed; no public surface changed.
Checklist
#[allow(...)],#[ignore], or relaxed lints.envcontents in the diff or the descriptionSummary by CodeRabbit