Repository navigation
feat(harness): add host-built turn model sets - #100
Merged
Merged
Conversation
This was referenced Oct 19, 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.
Adds a generic TinyAgents turn model set that builds the primary model, workload route models, and a distinct summarizer through borrowed host factory and gate ports. It preserves requested aliases separately from resolved routes, supports host overrides and per-purpose options, skips denied/unavailable workload routes, and provides subprocess builders for existing Claude providers.
The returned set can produce an owned resolver and ordered primary/workload registrations from the same host-decorated model instances. This lets OpenHuman retain its existing budget wrappers and turn-plan error policy without reconstructing provider selection. Construction and subprocess tests use fakes; they do not probe a real CLI or network. The existing Claude subprocess error tests now use a checked-in executable fixture with per-test response files, avoiding runtime executable creation while retaining real spawn and output assertions.
Regression evidence: prototype runtime tests failed on the default workload role alias and primary-alias skip behavior before those fixes. Later behavior tests use the actual resolver, borrowed factory/gate fixtures, and host wrapper semantics. An independent full-suite run then exposed
ETXTBSYwhile spawning a runtime-written fake Claude executable; the fixture now uses a static executable and the full package suite passes.Validation:
cargo test -p tinyagents-harness(2,994 unit tests and 44 doctests passed, 3 ignored), 31 Claude driver tests, focused model-factory tests with default and no-default features,cargo check -p tinyagents-harness, strict all-target clippy, andcargo fmt --all -- --check.Refs #73
Part of tinyhumansai/openhuman#8092