Repository navigation
[tinyagents-slim] complete OpenHuman host adoption - #8319
Merged
senamakel merged 1648 commits intoOct 24, 2026
Merged
Conversation
The shell tool's host and execution logic now live in the exec adapters module, with the shell module keeping only the pieces it still needs. Visibility was widened to super so the adapters can reach the shared helpers, and the public re-export was repointed to the new location. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The PerCallContext import in the network host tool is now only compiled when the web3 feature is enabled, avoiding an unused import warning in builds without it. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reordered the per_call imports in the network host tool so the cfg-gated PerCallContext sits with the other per_call items, and added the missing ToolTimeout import to the shell schema and env tests. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reverts the tinyinference family from 0.5.0 back to 0.4.1 across the workspace lockfile, updating both the package versions and every dependent crate's resolved references. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Pinned the tinyinference family back to 0.4.1 and dropped windows-sys to 0.48.0 in the app lockfile, reverting the earlier 0.5.0 bump. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the pinned commits for all seventeen vendored tiny* submodules to their latest revisions. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Install commands now run with an explicit allowlist of environment variables covering PATH, home and temp directories, and common toolchain locations, instead of inheriting the full process environment. This keeps credentials and unrelated secrets out of child processes while still letting package managers find their caches and prefixes. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add a recording exec backend and a test asserting the installer forwards exactly the host-approved environment to the backend, so regressions in environment handling are caught. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
…e-insensitively The install gate now forwards its filtered environment to the exec permit instead of an empty map, so installer backends actually receive the host-approved variables. Environment filtering was also extracted into a testable helper that compares names case-insensitively, keeping Windows variables like SystemRoot while still dropping secrets. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The install environment filter test now looks up entries with OsStr keys instead of string literals, matching the map's actual key type and keeping the assertions compiling without relying on borrowed str lookups. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
…ic-8088-216-thread-purge
fix(threads): cancel driver children when purging threads
…sue-213-tools-a284 # Conflicts: # crates/openhuman-core/src/tools/impl/README.md # crates/openhuman-core/src/tools/impl/system/mod.rs
Update the lockfiles to pick up the 0.5.0 release of the tinyinference crates, replacing the 0.4.1 entries across the workspace and the app crate. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The plan-review gate, tool, and schemas now come from the tinyagents harness's plan-review feature instead of local copies, so OpenHuman registers the harness-provided tools and shares one implementation of the approval flow. Local gate, tool, and type modules were removed and replaced by a thin host module that wires the harness tools to OpenHuman's tenant-scoped stores. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add the missing imports for RunModeHandle and ToolRunContext so the plan exit tool can reference the run mode handle and tool execution context. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reformatted the install tool test assertions and environment maps so long lines wrap within the configured width. No test behaviour or coverage changed. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
feat: migrate host tools off tinytools-std
…dules Reformat import ordering, line wrapping, and assertion layout to match rustfmt output. No behaviour changes. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Extend the plan review end-to-end test to open a Socket.IO connection before the review is parked, asserting the request arrives over the live event path rather than only through room-join replay. A second client then connects after the review is parked to confirm reconnecting subscribers still receive the same request as a replay. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add a debug print of the subscription acknowledgement frame in the plan review decide test so failures can be diagnosed from the captured output. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The plan review wake test now wraps the core HTTP router in a middleware that inserts a process-default DispatchCtx into request extensions, matching how the real server populates dispatch context so the handler no longer relies on an ambient context. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The plan review end-to-end test no longer opens a live Socket.IO connection before parking the review, so it only exercises the room-join replay path a reconnecting client uses. The live event delivery assertions were removed along with the setup they depended on. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The end-to-end plan review test now initializes the event bus, registers the approval surface subscriber, and connects a live Socket.IO client that subscribes to the thread before the review is parked. This verifies that a parked review is pushed to an already-subscribed socket, not only replayed to sockets that join afterwards. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
…8-219-plan-review # Conflicts: # crates/openhuman-core/Cargo.toml
…plan-review test: cover live and replayed plan review requests
Relocate the worker mirror, worker thread, and their tests from the threads module into agent::subagent_host::ops so the subagent host owns the worker plumbing it drives. No behaviour changes. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The SessionDriver implementation for OpenHumanSessionDriver was extracted from driver.rs into a new driver/execute.rs submodule, leaving driver.rs with just the struct and constructor. This is a pure code move with no behaviour change, done to keep the driver file manageable as the execute path grows. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The test provider now resolves hints and unpinned roles to the configured default model, falling back to a concrete managed model when the default is itself a hint. This mirrors the production factory's hint-dropping behaviour so the escalation tests exercise the same resolution path. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add eprintln debug statements around the permit, agent build, and run steps of the harness node to trace execution during investigation. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The test for a turn without the state block was using the planner agent, which does not exercise the intended fallback path. Switch it to the summarizer agent so the active goal is carried through the expected code path. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
…n test The escalation model test now builds its dispatch context through derive_with so the hosted invocation base carries the built-in agent definitions, matching how the turn actually runs. The runtime call reuses that derived context instead of the bare runtime context. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Dropped three temporary eprintln! debug statements that were logging permit, build, and run progress in the agent harness runner. They were leftover tracing noise and are no longer needed. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The headless flow agent test now uses a multi-threaded Tokio runtime with two worker threads so the nested grandchild result can be exercised without the single-threaded scheduler blocking on it. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Drop the explicit multi-thread flavor and worker thread count from the headless flow agent test so it uses the default runtime, matching the other tests in the file. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Enable a debug-level tracing subscriber in the headless flow agent test so failures in the nested grandchild result path can be diagnosed from the captured stderr output. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The dynamic prompt rejection test now formats the error with the alternate flag so the whole anyhow chain is checked, and includes the actual error in the failure message to make mismatches easier to diagnose. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The budget and admission decorator was only applied to the copies of the models held on the turn set, leaving the native model set's own resolver and error slots undecorated. When a native set is present, the decorator is now applied through it and the derived primary, routes, summarizer, and error slot are refreshed from the result. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The direct-mode routing test now installs a persistent default storage backend for its temporary workspace, since the scope-preference read goes through workspace storage and the default in-memory backend is fenced. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The nested grandchild result test no longer installs a debug tracing subscriber, so it runs without emitting debug logs to stderr. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The two headless agent flow tests now install a real SQLite storage backend and point the config at its URL, since the agent tool belt loads the tinymcp module which reaches the host's installed storage and the conditioned session-transcript writes need a real backend. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Print the full error chain before the assertion so a failing run shows the actual error text instead of only the assertion message. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reformatted the storage guard setup in two agent tests to satisfy rustfmt, and dropped a stray eprintln debug statement from the composio scope preference error path. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The error path in the scope preference loader printed the error to stderr before logging it, which leaked noise into normal output. The tracing warning already covers the failure, so the debug line was dropped. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The test now acquires the composio module guard so the scope-preference read is served from the host's installed storage instead of relying on a persistent default backend for the temporary workspace. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The shared builder test config now stores a fixture API key so model construction passes the backend-session gate, and a leftover debug print was dropped from the host tools test. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Condense the comment explaining that preparing a turn leaves a paused goal paused, and consume the goal option directly instead of borrowing it before mapping. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Hoist the paused status into a local binding and drop the explanatory comment so the assertion reads more directly. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The dispatch policy test now installs a SQLite test backend and points both configs at its URL, because validating tool arguments reaches the host's installed storage through the tinymcp module. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The test now relies on module_guard, which already holds the storage slot and installs a memory backend restored on drop, so the extra lock and manual restore helper were removed. Locking the slot a second time deadlocked because the slot mutex is not reentrant. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Replaced the bare unwrap on the provision call in the profile system prompt test with an expect carrying a debug label, so a failure there reports which step broke instead of a generic panic. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Replace the expect call with unwrap when provisioning the test profile, dropping the leftover debug message from the assertion. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reordered `#[path]` module declarations in the tinyagents middleware and credentials ops test modules so they read alphabetically, and applied rustfmt line wrapping to a few test call sites. No test behaviour changed. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
This was referenced Oct 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
OpenHuman’s #8088 rollup adopts the async TinyAgents harness, removes the retired orchestration and workflow machinery, and integrates the updated shell/process, scheduler, session, and module behavior.
Closes #8088.
This rollup includes the closed fork child issues:
senamakel/openhuman#193–#214,#216–#220;senamakel/tinyagents#57–#70;senamakel/tinytools#4–#5; andsenamakel/tinymcp#5. The child issues are closed on the fork after their implementation and validation landed there.Eight module PRs have merged upstream, and their OpenHuman gitlinks now point at the canonical merge commits: TinyArtifacts #12, TinyConnectors #92, TinyDocs #52, TinyHosts #42, TinyMCP #150, TinySearch #33, TinySkills #46, and TinyWallet #119.
Keep this PR in draft until the remaining upstream module PRs merge, then update those gitlinks, rerun the focused root gates, and mark this PR ready:
Validation completed locally on the updated epic branch:
cargo check -p openhumancargo test -p openhuman --lib shell --features storage-sqlite -- --test-threads=1(148 passed)RUST_MIN_STACK=8388608 scripts/ci-cancel-aware.sh cargo test -p openhuman --lib --features storage-sqlite scheduled_cron_child_cannot_run_its_declared_destructive_tool -- --nocapture(1 passed)RUST_MIN_STACK=8388608 scripts/ci-cancel-aware.sh cargo test -p openhuman --lib --features storage-sqlite session_key -- --nocapture(14 passed)RUST_MIN_STACK=8388608 scripts/ci-cancel-aware.sh cargo test -p openhuman --lib --features storage-sqlite cold_resumed_thread_can_send_again -- --nocapture(1 passed)RUST_MIN_STACK=8388608 scripts/ci-cancel-aware.sh cargo test -p openhuman --lib --features storage-sqlite stop_policy -- --nocapture(8 passed)RUST_MIN_STACK=8388608 scripts/ci-cancel-aware.sh cargo test -p openhuman-embed --features testkit --test cron_agents_overlapping_runs_of_one_agent_keep_separate_transcripts -- --nocapture(1 passed)cargo check -p openhuman --features storage-sqliteandcargo check -p openhuman-embed --features testkitopenhumanandopenhuman-embedwithstorage-sqlite/testkitnode --test scripts/__tests__/retry-markdown-links.test.mjs(8 passed)cargo fmt --manifest-path Cargo.toml --package openhuman --package openhuman-embed -- --checkPart of #8088.