Repository navigation
feat: complete OpenHuman epic 8088 TinyAgents rollup - #566
Conversation
This introduces the ability to retrieve a `PackRegistryHandle` from tools that implement `UseSkillTool`. This allows tools to expose registration metadata, which is now stored within `ToolCallBinding` and accessible via a new helper function. Auto-committed-on: dragonfly
Updated the README to clarify that hosts can recover shared registry state from an erased tool using `skills::pack_registry_handle`. This documentation change reflects new capabilities in the skills module. Auto-committed-on: dragonfly
This updates the fake tool implementation and related tests to correctly handle tool call bindings. It adds a `binding` field to `FakeTool` and implements a helper method to set it, allowing tests to verify behavior when tools are bound. Auto-committed-on: dragonfly
…ntract feat(harness): expose pack registry metadata through call binding
fix(skills): retain owner IDs in delegation guidance
This introduces tracking for root and parent run IDs across subagent jobs and related components. This allows for more precise lineage validation when executing driver tools and enables new settlement logic to correctly scope job tracking to a specific root run. Auto-committed-on: dragonfly
This introduces the root run ID to the JobLink structure when invoking a subagent. This allows for better lineage tracking across the entire orchestration process. Auto-committed-on: dragonfly
This change refactors how job lineage is tracked across subagent invocations by replacing the reliance on a single root run ID with explicit parent and child run IDs. This allows for more accurate tracking of job ancestry, especially when dealing with resumed or nested invocations. The README is updated to reflect the new settlement behavior. Auto-committed-on: dragonfly
This updates the test for driver subagent tool execution to include a job registry. This ensures that the test correctly verifies the lifecycle of subagent jobs during tool dispatch. Auto-committed-on: dragonfly
This change ensures that the job generation counter is incremented whenever a subagent job is cancelled. This maintains correct state tracking within the job registry across cancellation events. Auto-committed-on: dragonfly
This updates the README to clarify how settlement works for subagents. It details the differences between driver and ordinary job contexts and introduces the new `register_driver_job_with_lineage` API for better lineage tracking. Auto-committed-on: dragonfly
This change updates `set_attempt_run_id` to obtain a mutable reference to the job control, which is necessary to correctly update the lineage information. This also updates related tests to accommodate the new structure. Auto-committed-on: dragonfly
This updates tests to use sorted vectors when comparing job IDs in settlement checks, ensuring order independence. It also refactors job registration in one test to use the more detailed `register_driver_job_with_lineage` method. Auto-committed-on: dragonfly
The child run ID is no longer tracked during job registration and lineage updates. This simplifies the job structure by removing the need to explicitly manage a child run ID when registering a driver job. Auto-committed-on: dragonfly
This change updates the job registration mechanism from using lineage to using a parent run context. This allows the driver to report each actual attempt run ID via a new observer callback, which is necessary for accurate descendant settlement across retries. Auto-committed-on: dragonfly
This updates the subagent driver to accept an `on_attempt` callback when running a reserved task. This allows for custom logic to be executed whenever a task attempt is made. Auto-committed-on: dragonfly
This change ensures that the run ID is not set on a subagent job if its status is already terminal. This prevents unnecessary state updates and maintains job integrity. Auto-committed-on: dragonfly
This change introduces `observed_attempts` to the Executor struct to allow tests to verify that the executor is being observed correctly. It adds assertions to ensure that the execution attempt ID is recorded by the observer before the executor processes it. Auto-committed-on: dragonfly
Introduces the settlement module to handle post-invocation logic for subagents. This allows for structured handling of outcomes after a subagent has completed its task. Auto-committed-on: dragonfly
The complex logic for settling root run descendants has been removed from the job registry. This simplifies the API by removing a method that managed waiting for all descendant jobs to reach a terminal state. Auto-committed-on: dragonfly
Adds a new test case to verify that when a `ReplacingPlanner` is used, the resulting job correctly records the actual run context for descendant settlement. Auto-committed-on: dragonfly
This change refactors several areas related to job registration and state management across the subagent components. It standardizes how job lineage is created and ensures consistent incrementing of change counters in the job registry. Auto-committed-on: dragonfly
Updates the type signature for the cancellation field in SubAgentJobRegistry to use the specific CancellationToken from tinyagents_harness for better type safety. Auto-committed-on: dragonfly
This change updates how the subagent run ID is stored in the job status to use a string slice instead of an owned string. This avoids unnecessary cloning when updating the job's run ID. Auto-committed-on: dragonfly
This change updates the return type of the SubAgentJobRegistry method to use std::result instead of the type alias. This improves clarity by explicitly using the standard library's result type. Auto-committed-on: dragonfly
The controls method on SubAgentJobRegistry is now public so that other parts of the orchestration layer can access the job controls. Auto-committed-on: dragonfly
This change introduces `JobWaitGuard` to track active waiters during job settlement. This allows the settlement process to correctly pin terminal ancestors while descendants are still live, ensuring proper lifecycle management during cleanup. Auto-committed-on: dragonfly
The assertion for the number of old root jobs in the registry tests was updated to reflect the actual expected count after a change in job handling logic. Auto-committed-on: dragonfly
Adjusted the expected number of jobs returned when settling a new root to account for an additional job being present in the test scenario. Auto-committed-on: dragonfly
The documents accessor on DriverTranscriptLocator is only used by tests, so it is now compiled under cfg(test) to avoid dead code in production builds. The test locator fixture also clones the scope before the opener closure so the closure owns its own copy instead of capturing the outer binding. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reformat imports, closures, and type aliases in the session port drivers and transcript test locator to match rustfmt output. No behaviour changes. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The driver-backed transcript conformance suite now runs against SQLite instead of the in-memory double, since generation writes require native lease-conditioned document handles. Added a helper that builds both the plain and conditioned storage factories over a single SQLite scope so the suite can exercise the conditioned opener. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The storage factory closures now spell out their first parameter type as &str instead of relying on inference, which keeps the test helper compiling against the current AgentStorageFactory signature. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reformatted the conditioned sqlite factory closure so the sqlite_storage call fits on a single line. No behaviour change. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The scope binding was being borrowed when constructing the memory backend, but for_scope takes it by value, so the call now moves scope directly. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
…8-final-rollup # Conflicts: # CHANGELOG.md # Cargo.lock # Cargo.toml # crates/tinyagents-harness-tools/Cargo.toml # crates/tinyagents-harness/Cargo.toml # crates/tinyagents-hooks/Cargo.toml # crates/tinyagents-live/Cargo.toml # crates/tinyagents-orchestration/Cargo.toml # crates/tinyagents-registry/Cargo.toml # crates/tinyagents-runtime/Cargo.toml # crates/tinyagents-session/Cargo.toml # crates/tinyagents-tasks/Cargo.toml # integration-proofs/run-ledger-mongodb/Cargo.lock # vendor/tinytools
The in-memory session store provider now implements lease_for_agent by returning a pinned lease over the agent's stable handles, so callers that expect a lease can use the in-memory provider without special-casing it. A test asserts the leased stores are the same instances returned by for_agent. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the pinned commits for the tinyinference, tinytools and wiki submodules to their latest revisions. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Driver session tests now run against a SQLite backend instead of the testkit's in-memory backend, since the tests exercise lease-conditioned generation writes that the simpler backend does not implement. The tinystoragedrivers crate is added as a workspace dependency with the sqlite feature enabled. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Behavior tests that do not certify the driver's storage adapter now build their session stores from the in-memory provider instead of the driver-backed one, and a new in_memory helper exposes an empty in-memory transcript locator. This decouples those tests from the storage driver so they exercise runtime behavior only. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Adds the tinyagents-session crate with its testkit feature to the runtime's dev-dependencies so tests can use the shared session test helpers. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
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. |
Tiny Sweeper review
|
|
Important Review skippedToo many files! This PR contains 753 files, which is 653 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.
|
Extend the MongoDB session driver conformance test to build a ConditionedAgentStorageFactory and register it on DriverSessionStores, so the conditioned write path is exercised alongside the plain factory. The scoped storage helper now accepts an optional WriteCondition and returns a Result to propagate construction errors. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
…ecutor Rework the live OpenAI subagent test to exercise the public planner/executor lifecycle with DriverSubAgentTool and SubAgentJobsTool instead of the older SubAgentTool wiring, adding an in-memory persistence implementation and a planner that prepares the child request. This keeps the network-backed test aligned with the current subagent API and covers the detached child flow. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reformatted the live subagent integration test to satisfy rustfmt, collapsing imports and chained calls onto single lines and wrapping longer closures and assertions. No behaviour changed. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Remove the unused CancellationToken import from the live subagent integration test to keep the test file free of dead imports. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The orchestration crate no longer references anyhow, so the workspace dependency was removed from its manifest. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Remove the anyhow entry from the tinyagents-orchestration package in the lockfile since the crate no longer depends on it. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the pinned commits for the tinyinference and tinytools vendored submodules to their latest revisions. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
…slim - crates/tinyagents-graph/src/testkit/conformance.rs: keep the epic's removal of the graph crate; main's TTL flake fix there has no surviving counterpart. - run_loop_dead_call_tests.rs: port main's new truncated-empty retry and cached-blank bypass tests from AgentHarness::register_model to the epic's FixedModelResolver API. - vendor/tinyinference: take main's f5c0e56 (descends from the epic's 8d33b80). - vendor/tinytools: restore main's 75e42ba; 4254e4d had moved it back to its ancestor 62dbb14. - integration-proofs/run-ledger-mongodb/Cargo.lock: keep the epic's 3.0.0 versions, verified with cargo metadata. Co-authored-by: Medulla <medulla@tinyhumans.ai>
This rolls the completed TinyAgents side of OpenHuman epic #8088 onto upstream
main. It brings the runtime, orchestration and harness changes together, including admitted session storage, native descendant settlement, tool/harness boundaries, and the graph removal.The work was merged to
senamakel/tinyagents:epic/8088-tinyagents-slimthrough these child PRs: #180, #179, #178, #176, #169, #162, #154, #147, #143, #141, #138, #131, #130, #128, #123, #118, #114, #110, and #106.Validation on the final branch:
../../scripts/ci-cancel-aware.sh cargo test --workspace --no-fail-fast../../scripts/ci-cancel-aware.sh cargo test -p tinyagents-runtime --lib(177 passed)../../scripts/ci-cancel-aware.sh cargo clippy -p tinyagents-runtime --all-targets -- -D warnings../../scripts/ci-cancel-aware.sh cargo fmt --all -- --checkPart of tinyhumansai/openhuman#8088.