Repository navigation
Update TinyAgents and preserve typed definition routing - #7470
Conversation
Update the vendored tinyagents submodule to the latest commit. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the vendored tinyagents submodule to the latest commit. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Bump windows-sys to 0.61.2 across the dependency graph and add toml 0.8.23 alongside its supporting crates. The tinyagents-definition crate gains anyhow, serde_json, toml, and tracing, and tinyagents now depends on it. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the definition registry tests to read projected fields through the harness accessors, adding a helper that unwraps the materialized named tool scope and panics on wildcard. The model spec test now checks that projection preserves inherit, exact, and hint routing instead of comparing the local mapping helper. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
… model scopes The registry now emits the portable definition's named tool scope and provider-neutral model spec instead of flattening tools into a string list and resolving hints to aliases, so wildcard materialization and inherited routing survive projection. Tests were updated to assert against the new scope and model types. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The custom agent resolution test now checks the model hint and the absence of a pin as two distinct assertions, matching the split accessors on the model config. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add tests for typed model hints in the turn model resolver, verifying that a subagent hint resolves to its tier route, that a team lead keeps its selected primary, that an explicit pin wins over a hint, and that an unconfigured hint falls back to the primary model. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The turn model resolver now derives a `hint:<name>` route from the request hint and uses it as a fallback when no explicit model pin is set, so sub-agents can still reach prebuilt tier routes. The lead's explicit model selection continues to take precedence over any hint. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Extend the failure-effect test so a shell error of "executable not found" is asserted to yield the missing_app correction, and move the unsupported verdict assertion to a different tool. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The test profile now specifies a model name so the budget stop turn tests exercise the same profile shape as production. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Rename the projection test to reflect that it now checks both the routing role and the agent tier, and assert the projected agent tier equals the validated tier alongside the existing role check. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the vendored tinyagents submodule to a newer revision. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The host definition registry now carries the definition's validated agent tier through to the resolved output so the model resolver can route workloads by tier. The scope doc comment was also tightened to state the invariant it actually enforces. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the vendored tinysearch submodule to a newer commit. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reword the registry doc comments to describe how the host materializes allowed tool names before handing a wildcard scope to the harness, rather than framing the limitation around the crate's tool representation. Auto-committed-on: dragonfly 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. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk | ⚪ Minimal · up to
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 50d2592425
ℹ️ 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".
Tiny Sweeper reviewTiny Sweeper reviewed this change across 5 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 FeaturesNone identified with supported citations. TestsNo supported feature-to-test mapping was produced. Test execution is not inferred. FindingsNo active actionable findings. Resolved this pass
Could not review: crates/openhuman-core/src/agent/tinyagents/host/definition_registry.rs, crates/openhuman-core/src/agent/tinyagents/host/definition_registry_tests.rs, crates/openhuman-core/src/agent/tinyagents/middleware_failure_effect_tests.rs, crates/openhuman-core/src/agent/tinyagents/turn_models.rs, crates/openhuman-core/src/agent/tinyagents/turn_models_tests.rs Before merge
How this fits togetherflowchart LR
n0["...e_builder_was_given_resolves_for_the_turn<br/>changed"]:::changed
n1["...ries_the_belt_the_turn_is_allowed_to_call<br/>changed"]:::changed
n2["..._outranks_a_registry_entry_sharing_its_id<br/>changed"]:::changed
n3["...strator_allows_deferred_browser_discovery<br/>changed"]:::changed
n4["...definition_shadows_a_same_id_config_entry<br/>changed"]:::changed
n5["...s_denylist_projects_the_no_tools_sentinel<br/>changed"]:::changed
n6["...materialized_against_the_registered_tools<br/>changed"]:::changed
n7["synthetic"]:::impacted
n8["expect"]:::impacted
n9["Worker"]:::impacted
n10["catalogue"]:::impacted
n11["definition"]:::impacted
n12["with_registered_tools"]:::impacted
n0 -->|calls| n8
n0 -->|calls| n10
n0 -->|tests| n10
n0 -->|calls| n11
n0 -->|tests| n11
n1 -->|calls| n8
n1 -->|calls| n10
n1 -->|tests| n10
n1 -->|calls| n11
n1 -->|tests| n11
n2 -->|calls| n8
n2 -->|calls| n10
n2 -->|tests| n10
n2 -->|calls| n11
n2 -->|tests| n11
n3 -->|calls| n8
n4 -->|calls| n8
n5 -->|calls| n7
n5 -->|tests| n7
n5 -->|uses| n9
n6 -->|calls| n7
n6 -->|tests| n7
n6 -->|uses| n9
n6 -->|calls| n12
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
Evidence and run details
|
There was a problem hiding this comment.
tinysweeper found nothing blocking, but could not review everything, so this is not an approval: crates/openhuman-core/src/agent/session_host/builder/builder_tests_session_definition_tests.rs, crates/openhuman-core/src/agent/tinyagents/turn_models.rs, crates/openhuman-core/src/agent/tinyagents/turn_models_tests.rs.
$0.0074 · 852,070 in / 45,787 out · 125,568 cached (15%) · ladder/vectors-oai3, deepseek-v4.1-flash, glm-5.3-flash · 713 embedded
critique: $0.0065 · 440,337 in / 36,333 out · 85,632 cached (19%) · deepseek-v4.1-flash, glm-5.3-flash
security: $0.0005 · 326,923 in / 5,626 out · 28,288 cached (9%) · deepseek-v4.1-flash
tests: $0.0000 · 22,039 in / 252 out · 3,072 cached (14%) · deepseek-v4.1-flash
description: $0.0001 · 51,847 in / 757 out · 8,576 cached (17%) · deepseek-v4.1-flash
There was a problem hiding this comment.
Requesting changes: 1 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 · 1,128,790 in / 82,590 out · 283,648 cached (25%) · ladder/vectors-oai3, deepseek-v4.1-flash · 713 embedded
critique: $0.0035 · 545,135 in / 47,898 out · 150,912 cached (28%) · deepseek-v4.1-flash
security: $0.0023 · 445,250 in / 29,858 out · 97,024 cached (22%) · deepseek-v4.1-flash
tests: $0.0001 · 76,218 in / 840 out · 27,008 cached (35%) · deepseek-v4.1-flash
description: $0.0001 · 51,325 in / 1,370 out · 8,704 cached (17%) · deepseek-v4.1-flash
There was a problem hiding this comment.
tinysweeper found nothing blocking, but could not review everything, so this is not an approval: crates/openhuman-core/src/agent/tinyagents/host/definition_registry.rs, crates/openhuman-core/src/agent/tinyagents/host/definition_registry_tests.rs, crates/openhuman-core/src/agent/tinyagents/middleware_failure_effect_tests.rs, crates/openhuman-core/src/agent/tinyagents/turn_models.rs, crates/openhuman-core/src/agent/tinyagents/turn_models_tests.rs.
$0.0056 · 950,794 in / 67,191 out · 169,600 cached (18%) · ladder/vectors-oai3, deepseek-v4.1-flash · 713 embedded
critique: $0.0011 · 529,834 in / 8,297 out · 69,888 cached (13%) · deepseek-v4.1-flash
security: $0.0026 · 270,095 in / 35,154 out · 72,576 cached (27%) · deepseek-v4.1-flash
tests: $0.0005 · 83,785 in / 6,578 out · 23,168 cached (28%) · deepseek-v4.1-flash
description: $0.0013 · 55,706 in / 14,687 out · 2,560 cached (5%) · deepseek-v4.1-flash
Summary
vendor/tinyagentsto canonical upstream/main ata55f25a924a673c812c7aa95e562488dd0d0f3b3.Problem
The updated TinyAgents definition contract replaces flat name, description, model and tool fields with the portable definition vocabulary. The old adapter does not compile; flattening model hints into exact pins also loses their routing semantics.
Solution
Project display names, capability summaries, typed model preferences, agent tiers, named tool scopes and explicit delegate IDs into the upstream contract. Resolve typed subagent hints against prebuilt
hint:<name>routes, preserving exact-pin precedence, lead selection and primary fallback. Update existing adapter assertions and two scripted fixtures to accurately declare their tool and model identity. Regenerate the root lockfile against the updated dependency graph. The separate desktop lockfile correction landed in follow-up #7471 because this PR merged concurrently before that correction was pushed.Submission Checklist
Impact
Hosted chat, CLI and embedded agents retain explicit tool scopes and tier-filtered delegation. Typed subagent hints select their configured routes; the root agent keeps the user's selected primary model. No transcript migration or product policy changes.
Related
AI Authored PR Metadata
Linear Issue
Commit & Branch
merge-ready-20261011.Validation Run
pnpm --filter openhuman-app format:check— N/A: no frontend files changed.pnpm typecheck— N/A: no TypeScript files changed.RUST_MIN_STACK=67108864,--locked, and one Cargo job. The typed-hint regression failed before its fix; the tier projection regression failed with Worker instead of Chat before its fix.cargo fmt --all --check; Rust layout, crate-chain and feature-forwarding scripts;scripts/ci-cancel-aware.sh cargo build --locked --manifest-path Cargo.toml -p openhuman-cli --bin openhuman-core --jobs 1passed.cargo tree --lockedfailed before regeneratingcrates/openhuman-app/Cargo.lockand passes after;scripts/ci-cancel-aware.sh cargo check --locked --manifest-path crates/openhuman-app/Cargo.toml --jobs 1passed.Validation Blocked
command:coverage measurement / hosted CI.error:coverage was not measured; hosted CI was intentionally ignored as requested.impact:no coverage percentage claimed; readiness relies on local checks and review.Behavior Changes
Parity Contract
Duplicate / Superseded PR Handling