Consolidate TinyHiveMind into three crates - #94
Conversation
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Tiny Sweeper reviewTiny Sweeper reviewed this change across 6 lane(s) and found 0 active actionable finding(s). Detailed lane evidence and any incomplete work are listed below. State: Incomplete Review snapshot
Completeness: Incomplete 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. FindingsNo active actionable findings. Could not review: .github/scripts/assert-pure.sh, .github/workflows/ci.yml, AGENTS.md, Cargo.toml, README.md, crates/tinyhivemind-core/Cargo.toml, crates/tinyhivemind-core/README.md, crates/tinyhivemind-core/examples/README.md, crates/tinyhivemind-core/examples/bench/COST.md, crates/tinyhivemind-core/examples/bench/LAYOUT.md, crates/tinyhivemind-core/examples/bench/LIVE.md, crates/tinyhivemind-core/examples/bench/README.md, crates/tinyhivemind-core/examples/bench/SCALE.md, crates/tinyhivemind-core/examples/bench/SWARM.md, crates/tinyhivemind-core/examples/bench/VARIETY.md, crates/tinyhivemind-core/examples/bench/arms.rs, crates/tinyhivemind-core/examples/bench/budget.rs, crates/tinyhivemind-core/examples/bench/calibrate.rs, crates/tinyhivemind-core/examples/bench/cli/flags.rs, crates/tinyhivemind-core/examples/bench/cli/mod.rs, crates/tinyhivemind-core/examples/bench/compare/mod.rs, crates/tinyhivemind-core/examples/bench/context.rs, crates/tinyhivemind-core/examples/bench/decision_eval/case.rs, crates/tinyhivemind-core/examples/bench/decision_eval/mod.rs, crates/tinyhivemind-core/examples/bench/federation.rs, crates/tinyhivemind-core/examples/bench/horizon/mod.rs, crates/tinyhivemind-core/examples/bench/horizon/test.rs, crates/tinyhivemind-core/examples/bench/http.rs, crates/tinyhivemind-core/examples/bench/jev.rs, crates/tinyhivemind-core/examples/bench/live/agent.rs, crates/tinyhivemind-core/examples/bench/live/desk.rs, crates/tinyhivemind-core/examples/bench/live/mod.rs, crates/tinyhivemind-core/examples/bench/live_single.rs, crates/tinyhivemind-core/examples/bench/live_swarm/mod.rs, crates/tinyhivemind-core/examples/bench/live_swarm/totals.rs, crates/tinyhivemind-core/examples/bench/main.rs, crates/tinyhivemind-core/examples/bench/parallel.rs, crates/tinyhivemind-core/examples/bench/policy.rs, crates/tinyhivemind-core/examples/bench/run/mod.rs, crates/tinyhivemind-core/examples/bench/run/scoring.rs, crates/tinyhivemind-core/examples/bench/run/turns.rs, crates/tinyhivemind-core/examples/bench/scale.rs, crates/tinyhivemind-core/examples/bench/sim/agent/mod.rs, crates/tinyhivemind-core/examples/bench/sim/agent/state.rs, crates/tinyhivemind-core/examples/bench/sim/agent/turn.rs, crates/tinyhivemind-core/examples/bench/sim/chain.rs, crates/tinyhivemind-core/examples/bench/sim/facet.rs, crates/tinyhivemind-core/examples/bench/sim/generation.rs, crates/tinyhivemind-core/examples/bench/sim/mod.rs, crates/tinyhivemind-core/examples/bench/sim/naming.rs, crates/tinyhivemind-core/examples/bench/sim/view.rs, crates/tinyhivemind-core/examples/bench/swarm/board.rs, crates/tinyhivemind-core/examples/bench/swarm/format.rs, crates/tinyhivemind-core/examples/bench/swarm/member.rs, crates/tinyhivemind-core/examples/bench/swarm/mod.rs, crates/tinyhivemind-core/examples/bench/swarm/schedule.rs, crates/tinyhivemind-core/examples/bench/swarm/test.rs, crates/tinyhivemind-core/examples/bench/swarm/work.rs, crates/tinyhivemind-core/examples/bench/sweep.rs, crates/tinyhivemind-core/examples/bench/variety/mod.rs, crates/tinyhivemind-core/examples/bench/variety/test.rs, crates/tinyhivemind-core/examples/driver_bench/main.rs, crates/tinyhivemind-core/examples/driver_bench/sim.rs, crates/tinyhivemind-core/examples/hive.rs, crates/tinyhivemind-core/src/README.md, crates/tinyhivemind-core/src/aside/README.md, crates/tinyhivemind-core/src/driver/README.md, crates/tinyhivemind-core/src/driver/conduct/child.rs, crates/tinyhivemind-core/src/driver/conduct/mod.rs, crates/tinyhivemind-core/src/driver/conduct/steps.rs, crates/tinyhivemind-core/src/driver/conduct/test/conversations.rs, crates/tinyhivemind-core/src/driver/conduct/test/desk.rs, crates/tinyhivemind-core/src/driver/conduct/test/door.rs, crates/tinyhivemind-core/src/driver/conduct/test/links.rs, crates/tinyhivemind-core/src/driver/conduct/test/parked.rs, crates/tinyhivemind-core/src/driver/conduct/test/support.rs, crates/tinyhivemind-core/src/driver/conduct/test/wire.rs, crates/tinyhivemind-core/src/driver/conduct/wave.rs, crates/tinyhivemind-core/src/driver/engine/brief.rs, crates/tinyhivemind-core/src/driver/engine/brief/test.rs, crates/tinyhivemind-core/src/driver/engine/broadcast.rs, crates/tinyhivemind-core/src/driver/engine/ledger.rs, crates/tinyhivemind-core/src/driver/engine/mod.rs, crates/tinyhivemind-core/src/driver/engine/order.rs, crates/tinyhivemind-core/src/driver/engine/round.rs, crates/tinyhivemind-core/src/driver/engine/test.rs, crates/tinyhivemind-core/src/driver/engine/test/broadcast_fallback.rs, crates/tinyhivemind-core/src/driver/engine/test/coverage.rs, crates/tinyhivemind-core/src/driver/engine/test/ledger.rs, crates/tinyhivemind-core/src/driver/error/mod.rs, crates/tinyhivemind-core/src/driver/graph/mod.rs, crates/tinyhivemind-core/src/driver/graph/test.rs, crates/tinyhivemind-core/src/driver/mod.rs, crates/tinyhivemind-core/src/driver/test_support.rs, crates/tinyhivemind-core/src/embed/README.md, crates/tinyhivemind-core/src/embed/conversation.rs, crates/tinyhivemind-core/src/embed/error/mod.rs, crates/tinyhivemind-core/src/embed/mod.rs, crates/tinyhivemind-core/src/embed/routing/mod.rs, crates/tinyhivemind-core/src/embed/routing/test.rs, crates/tinyhivemind-core/src/embed/routing/types.rs, crates/tinyhivemind-core/src/hive/README.md, crates/tinyhivemind-core/src/hive/attention/mod.rs, crates/tinyhivemind-core/src/hive/attention/test.rs, crates/tinyhivemind-core/src/hive/attention/types.rs, crates/tinyhivemind-core/src/hive/completion/mod.rs, crates/tinyhivemind-core/src/hive/completion/test.rs, crates/tinyhivemind-core/src/hive/directory/mod.rs, crates/tinyhivemind-core/src/hive/directory/test.rs, crates/tinyhivemind-core/src/hive/directory/types.rs, crates/tinyhivemind-core/src/hive/division/mod.rs, crates/tinyhivemind-core/src/hive/division/test.rs, crates/tinyhivemind-core/src/hive/division/types.rs, crates/tinyhivemind-core/src/hive/episode/mod.rs, crates/tinyhivemind-core/src/hive/episode/test/concurrent_asides.rs, crates/tinyhivemind-core/src/hive/episode/test/deadlock.rs, crates/tinyhivemind-core/src/hive/episode/test/failure_paths.rs, crates/tinyhivemind-core/src/hive/episode/test/off_floor_asides.rs, crates/tinyhivemind-core/src/hive/episode/test/quorum_and_convergence.rs, crates/tinyhivemind-core/src/hive/episode/test/support.rs, crates/tinyhivemind-core/src/hive/episode/test/termination.rs, crates/tinyhivemind-core/src/hive/episode/test/turn_dynamics.rs, crates/tinyhivemind-core/src/hive/episode/test/wire_forms.rs, crates/tinyhivemind-core/src/hive/episode/types.rs, crates/tinyhivemind-core/src/hive/error/mod.rs, crates/tinyhivemind-core/src/hive/error/test.rs, crates/tinyhivemind-core/src/hive/exchange/mod.rs, crates/tinyhivemind-core/src/hive/exchange/test.rs, crates/tinyhivemind-core/src/hive/exchange/types.rs, crates/tinyhivemind-core/src/hive/horizon/mod.rs, crates/tinyhivemind-core/src/hive/mod.rs, crates/tinyhivemind-core/src/hive/quorum/mod.rs, crates/tinyhivemind-core/src/hive/quorum/test/fold_discipline.rs, crates/tinyhivemind-core/src/hive/quorum/test/probabilistic.rs, crates/tinyhivemind-core/src/hive/quorum/test/refutation.rs, crates/tinyhivemind-core/src/hive/quorum/test/support.rs, crates/tinyhivemind-core/src/hive/quorum/test/support_counting.rs, crates/tinyhivemind-core/src/hive/quorum/types.rs, crates/tinyhivemind-core/src/hive/salience/mod.rs, crates/tinyhivemind-core/src/hive/salience/test.rs, crates/tinyhivemind-core/src/hive/salience/types.rs, crates/tinyhivemind-core/src/hive/trace/mod.rs, crates/tinyhivemind-core/src/hive/trace/test.rs, crates/tinyhivemind-core/src/hive/trace/types.rs, crates/tinyhivemind-core/src/lib.rs, crates/tinyhivemind-core/src/masking/mod.rs, crates/tinyhivemind-core/src/runtime/README.md, crates/tinyhivemind-core/src/runtime/briefing/mod.rs, crates/tinyhivemind-core/src/runtime/briefing/test/context.rs, crates/tinyhivemind-core/src/runtime/briefing/test/rendering.rs, crates/tinyhivemind-core/src/runtime/briefing/test/snapshots.rs, crates/tinyhivemind-core/src/runtime/briefing/test/wire.rs, crates/tinyhivemind-core/src/runtime/briefing/types.rs, crates/tinyhivemind-core/src/runtime/digest/mod.rs, crates/tinyhivemind-core/src/runtime/digest/test.rs, crates/tinyhivemind-core/src/runtime/digest/types.rs, crates/tinyhivemind-core/src/runtime/elsewhere/README.md, crates/tinyhivemind-core/src/runtime/elsewhere/mod.rs, crates/tinyhivemind-core/src/runtime/elsewhere/test.rs, crates/tinyhivemind-core/src/runtime/elsewhere/types.rs, crates/tinyhivemind-core/src/runtime/error/mod.rs, crates/tinyhivemind-core/src/runtime/mod.rs, crates/tinyhivemind-core/src/runtime/pins/mod.rs, crates/tinyhivemind-core/src/runtime/pins/test.rs, crates/tinyhivemind-core/src/runtime/pins/types.rs, crates/tinyhivemind-core/src/runtime/session/mod.rs, crates/tinyhivemind-core/src/runtime/session/test/paging.rs, crates/tinyhivemind-core/src/runtime/session/test/thread.rs, crates/tinyhivemind-core/src/runtime/session/test/wire.rs, crates/tinyhivemind-core/src/runtime/sharing/mod.rs, crates/tinyhivemind-core/src/runtime/sharing/test/delta.rs, crates/tinyhivemind-core/src/runtime/sharing/test/reinit.rs, crates/tinyhivemind-core/src/runtime/sharing/test/state.rs, crates/tinyhivemind-core/src/runtime/sharing/test/support.rs, crates/tinyhivemind-core/src/runtime/sharing/test/visibility.rs, crates/tinyhivemind-core/src/runtime/sharing/test/wire.rs, crates/tinyhivemind-core/src/runtime/sharing/types.rs, crates/tinyhivemind-core/src/runtime/speech/mod.rs, crates/tinyhivemind-core/src/runtime/speech/test/commit.rs, crates/tinyhivemind-core/src/runtime/speech/test/fence.rs, crates/tinyhivemind-core/src/runtime/speech/test/parse.rs, crates/tinyhivemind-core/src/runtime/speech/test/support.rs, crates/tinyhivemind-core/src/runtime/speech/test/tools.rs, crates/tinyhivemind-core/src/runtime/speech/types.rs, crates/tinyhivemind-core/src/runtime/threads/mod.rs, crates/tinyhivemind-core/src/runtime/threads/test.rs, crates/tinyhivemind-core/src/runtime/threads/types.rs, crates/tinyhivemind-core/src/typesafe/README.md, crates/tinyhivemind-core/src/typesafe/mod.rs, crates/tinyhivemind-core/src/typesafe/router.rs, crates/tinyhivemind-core/src/typesafe/test.rs, crates/tinyhivemind-core/src/typesafe/wire.rs, crates/tinyhivemind-core/tests/README.md, crates/tinyhivemind-core/tests/driver_fuzz_invariants.rs, crates/tinyhivemind-core/tests/driver_review_regressions.rs, crates/tinyhivemind-core/tests/driver_scheduling.rs, crates/tinyhivemind-core/tests/embed_routing_scale.rs, crates/tinyhivemind-core/tests/hive_fuzz_invariants.rs, crates/tinyhivemind-core/tests/hive_hive_episode.rs, crates/tinyhivemind-core/tests/hive_openrouter_hive_live.rs, crates/tinyhivemind-core/tests/hive_public_api.rs, crates/tinyhivemind-core/tests/migrated_driver/fuzz_invariants.rs, crates/tinyhivemind-core/tests/migrated_driver/review_regressions.rs, crates/tinyhivemind-core/tests/migrated_driver/scheduling.rs, crates/tinyhivemind-core/tests/migrated_embed/routing_scale.rs, crates/tinyhivemind-core/tests/migrated_hive/README.md, crates/tinyhivemind-core/tests/migrated_hive/fuzz_invariants.rs, crates/tinyhivemind-core/tests/migrated_hive/hive_episode.rs, crates/tinyhivemind-core/tests/migrated_hive/openrouter_hive_live.rs, crates/tinyhivemind-core/tests/migrated_hive/public_api.rs, crates/tinyhivemind-core/tests/migrated_hive/support/hive_harness.rs, crates/tinyhivemind-core/tests/migrated_hive/support/scripted_agent.rs, crates/tinyhivemind-core/tests/migrated_runtime/joining_a_folded_room.rs, crates/tinyhivemind-core/tests/migrated_runtime/public_api.rs, crates/tinyhivemind-core/tests/migrated_runtime/utterance_surface.rs, crates/tinyhivemind-core/tests/runtime_joining_a_folded_room.rs, crates/tinyhivemind-core/tests/runtime_public_api.rs, crates/tinyhivemind-core/tests/runtime_utterance_surface.rs, crates/tinyhivemind-openhuman/Cargo.toml, crates/tinyhivemind-openhuman/README.md, crates/tinyhivemind-openhuman/src/embed/mod.rs, crates/tinyhivemind-openhuman/src/episode/mod.rs, crates/tinyhivemind-openhuman/src/episode/test/flow.rs, crates/tinyhivemind-openhuman/src/episode/test/journals.rs, crates/tinyhivemind-openhuman/src/episode/test/parking.rs, crates/tinyhivemind-openhuman/src/episode/test/support.rs, crates/tinyhivemind-openhuman/src/episode/test/watermark.rs, crates/tinyhivemind-openhuman/src/error/mod.rs, crates/tinyhivemind-openhuman/src/hosted/mod.rs, crates/tinyhivemind-openhuman/src/hosted/test.rs, crates/tinyhivemind-openhuman/src/journal/mod.rs, crates/tinyhivemind-openhuman/src/lib.rs, crates/tinyhivemind-openhuman/src/raw/tools.rs, crates/tinyhivemind-openhuman/src/runner/mod.rs, crates/tinyhivemind-openhuman/src/runner/test/mod.rs, crates/tinyhivemind-openhuman/src/runner/test/plain.rs, crates/tinyhivemind-openhuman/src/seed/mod.rs, crates/tinyhivemind-tools/Cargo.toml, crates/tinyhivemind-tools/README.md, crates/tinyhivemind-tools/src/lib.rs, crates/tinyhivemind-tools/src/render/README.md, crates/tinyhivemind-tools/src/render/mod.rs, crates/tinyhivemind-tools/src/render/test.rs, crates/tinyhivemind-tools/src/tools/mod.rs, crates/tinyhivemind-tools/src/tools/test.rs, docs/adr/0028-three-crate-workspace.md, docs/adr/README.md, docs/crate-dependencies.md, docs/specs/approval.md, docs/specs/benchmark-matrix.md, docs/specs/concurrent-rounds.md, docs/specs/expert-delegation.md, docs/specs/folding-by-size.md, docs/specs/grammar-mentions.md, docs/specs/grammar-traces.md, docs/specs/grammar.md, docs/specs/jev-integration.md, docs/specs/long-horizon-tasks.md, docs/specs/opencompany-routing-compatibility.md, docs/specs/private-asides.md, docs/specs/sessions.md, docs/specs/shared-medium-schema.md, docs/specs/task-variety.md, docs/specs/the-utterance-surface.md, docs/specs/thoughts-and-channels.md, docs/specs/thread-scoped-conversations.md, examples/openhuman/Cargo.toml, examples/openhuman/README.md, examples/openhuman/src/bin/README.md, examples/openhuman/src/bin/conducted.rs, examples/openhuman/src/bin/conducted/hosted.rs, examples/openhuman/src/bin/conducted/jev.rs, examples/openhuman/src/bin/conducted/routing.rs, examples/openhuman/src/bin/deepswe_hive.rs, examples/openhuman/src/bin/deepswe_hive/mcp.rs, examples/openhuman/src/bin/deepswe_hive/task.rs, examples/openhuman/src/bin/deepswe_hive/test.rs, examples/openhuman/src/bin/pe1006_hive.rs, examples/openhuman/src/bin/pe1006_hive/episode.rs, examples/openhuman/src/bin/pe1006_hive/round.rs, examples/openhuman/src/bin/pe1006_hive/tools.rs, examples/openhuman/src/bin/pe1006_hive/typesafe.rs, examples/openhuman/src/main.rs, tinysweeper/description, wiki Before merge
Agent review detailscritique
security
tests
commits
description
e2e
Evidence and run details
|
|
Important Review skippedToo many files! This PR contains 404 files, which is 304 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. Usage-priced reviews support at most 300 files. ⚙️ Run configuration
⛔ Files ignored due to path filters (2)
📒 Files selected for processing (404)
You can disable this status message by setting the
Comment |
There was a problem hiding this comment.
tinysweeper found nothing blocking, but could not review everything, so this is not an approval: .github/scripts/assert-pure.sh, .github/workflows/ci.yml, AGENTS.md, Cargo.toml, README.md, crates/tinyhivemind-core/Cargo.toml, crates/tinyhivemind-core/README.md, crates/tinyhivemind-core/examples/README.md and 277 more.
$0.0036 · 125,056 in / 1,228 out · 0 cached (0%) · flash, deepseek/deepseek-v4-flash
tests: $0.0034 · 119,889 in / 432 out · 0 cached (0%) · deepseek/deepseek-v4-flash
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 208a48f34a
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| exit 1 | ||
| } | ||
| found="$(grep -Ei "$forbidden" <<<"$tree" || true)" | ||
| found="$(grep -Ei "^(${forbidden})(-embed)? v" <<<"$tree" || true)" |
There was a problem hiding this comment.
Restore matching for forbidden dependency families
When a transitive package is named futures-core, tokio-util, or tinytools-agent, cargo tree --prefix none emits that full package name, but this anchored expression accepts only the exact listed name or its -embed variant. Those packages therefore evade the purity check, whereas the previous substring match caught them, allowing CI to report core as clean after it acquires a forbidden runtime or tool dependency. Match the intended crate families or enumerate their actual package names.
AGENTS.md reference: AGENTS.md:L40-L46
Useful? React with 👍 / 👎.
| workspace shares — this grammar, the trace grammar of `tinyhivemind_core::hive`, and | ||
| the pin directives of `tinyhivemind`. All three read `code_ranges`: a |
There was a problem hiding this comment.
Finish migrating active specification paths
Because this commit removes the tinyhivemind package, this partially migrated paragraph now points readers to a nonexistent crate for the pin directives; other active specifications likewise retain invalid current API names such as tinyhivemind::speech. Update the remaining active spec references to tinyhivemind_core::runtime so the documentation remains aligned with the consolidation.
AGENTS.md reference: AGENTS.md:L279-L280
Useful? React with 👍 / 👎.
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. |
Summary
Consolidate the workspace from eight crates to three.
tinyhivemind-corenow holds the former runtime, hive, embedding, TypeSafe, and driver code in focused modules;tinyhivemind-toolsrenders nativetinytools::ToolSpecvalues;tinyhivemind-openhumanremains the harness adapter. This removes Cargo boundaries that split shared host-neutral types while preserving host-owned storage and scheduling.Related issue
None.
API or behavior changes
Breaking package/import change: remove
tinyhivemind,tinyhivemind-hive,tinyhivemind-embed,tinyhivemind-typesafe, andtinyhivemind-driver. Consumers import their APIs throughtinyhivemind_core::{runtime,hive,embed,typesafe,driver}. Episode tool definition functions now returntinytools::ToolSpecwith aparametersschema instead of JSON objects withinputSchema. Serialized coordination payloads and episode decisions are unchanged.Validation
Commands actually run, with their outcome:
cargo fmt --all -- --checkcargo clippy --all-targets --all-features -- -D warningscargo build --all-targets --all-featurescargo test --all-featurescargo test --locked --manifest-path examples/openhuman/Cargo.tomlRUSTDOCFLAGS='-D warnings' cargo doc --no-deps --all-features.github/scripts/assert-pure.shand.github/scripts/assert-openhuman-pin.sh.github/scripts/check-file-coverage.sh 90 coverage.jsontinyhivemind-coreTests
Migrated existing module and public API tests into core. Updated tool spec assertions and the OpenHuman wrapper tests. Added addressed-peer and native library-session coverage cases; every source file now clears the 90% CI threshold. No deliberately untested edge case.
Documentation
Updated the repository guide, source/module READMEs, dependency map, examples, and active specifications. Added ADR 0028. Published the matching wiki updates at
tinyhivemind.wikicommit15fe814and advanced the submodule pointer here. Historical ADRs and experiments retain their original package names.Checklist
#[allow(...)],#[ignore], or relaxed lints.envcontents in the diff or the description