Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
405 commits
Select commit Hold shift + click to select a range
81ad032
fix(goals): serialize turn accounting with notification lock
senamakel Oct 18, 2026
f467bd5
test(skills): update mock model import path
senamakel Oct 18, 2026
d82a629
chore: remove unused test helpers and update goals module docs
senamakel Oct 18, 2026
f5fd107
refactor(tool): extract binder type alias in tool call binding
senamakel Oct 18, 2026
f584147
refactor(tool): move Binder type alias above its doc comment
senamakel Oct 18, 2026
11c2d72
test(harness-tools): cover per-call metadata forwarding
senamakel Oct 18, 2026
538ff20
feat(per_call): forward host call extension and spec to prototype
senamakel Oct 18, 2026
828b2a7
feat(harness-tools): gate canonical_json behind skills feature
senamakel Oct 18, 2026
a9f87db
test(skills): return registry handle directly from test helper
senamakel Oct 18, 2026
fe3e223
test(agent_loop): restore coverage for approval and tool rules
senamakel Oct 18, 2026
cdf47db
test(skills): cover tool rules on packed skill targets
senamakel Oct 18, 2026
e0badfe
test(tool): register binding tests module
senamakel Oct 18, 2026
25d3a94
test(subagents): wire up jobs test modules
senamakel Oct 18, 2026
5f3c0b0
test(skills): update packed tool binding test for new rule API
senamakel Oct 18, 2026
87749f7
test(skills): qualify RunPolicy paths and drop unused binding
senamakel Oct 18, 2026
e55e2cc
test(skills): update tests for render_pack_filtered signature change
senamakel Oct 18, 2026
721990f
chore(subagents): remove test module declarations
senamakel Oct 18, 2026
e82f93b
test(subagent): cover registry lock failures and terminal job states
senamakel Oct 18, 2026
d6f1210
test(subagent): cover leaf refusal to spawn with delegation tools
senamakel Oct 18, 2026
d2f03fe
test(subagents): cover null action and oversized request ids
senamakel Oct 18, 2026
afbdb3d
test(skills): silence unused binding in filtered listing test
senamakel Oct 18, 2026
058681b
test(harness-tools): tighten rejection assertions in skill and subage…
senamakel Oct 18, 2026
2e688a6
test(subagents): use registered job id in oversized request test
senamakel Oct 18, 2026
8d69daa
test(subagents): assert cancel on settled job returns terminal error
senamakel Oct 18, 2026
7af5b08
test(subagents): cover request-id dedup and bounded id window
senamakel Oct 18, 2026
1006eea
test(subagents): cover parent cancellation cascading to driver jobs
senamakel Oct 18, 2026
698e2fc
test(subagents): remove job-control test suite and helpers
senamakel Oct 18, 2026
0156a2a
test(subagents): cover terminal job message and cancel selector errors
senamakel Oct 18, 2026
839c4f0
test(subagents): cover identifier validation and parent cancellation …
senamakel Oct 18, 2026
81e6a83
test(subagents): remove duplicate parent cancellation test
senamakel Oct 18, 2026
5dc4086
test(subagents): assert child cancellation on parent cancel
senamakel Oct 18, 2026
4ad1e12
test(subagents): make blocking executor honor cancellation
senamakel Oct 18, 2026
913166d
test(subagents): cover sibling driver job cancellation
senamakel Oct 18, 2026
6208a06
test(subagents): update expected error text in driver alias test
senamakel Oct 18, 2026
c95cf84
test(subagents): add context to terminal error assertion
senamakel Oct 18, 2026
538c8a0
test(subagents): scope driver alias test to owner
senamakel Oct 18, 2026
49c6bf1
refactor(subagents): extract selector error mapping into helper
senamakel Oct 18, 2026
f68e6e6
test(subagent): cover registry poisoning and selector denial variants
senamakel Oct 18, 2026
486600b
test(subagent): reset panic trigger outside catch_unwind
senamakel Oct 18, 2026
fdb58f7
test(skills): cover outer approval merge and shared adapter binding
senamakel Oct 18, 2026
0f69313
chore: files changed crates/tinyagents-harness-tools/src/subagents/dr…
senamakel Oct 18, 2026
3fe3d97
test(subagents): cover bounded await observing terminal state after d…
senamakel Oct 18, 2026
faceab3
test(subagents): update expected driver output in bounded await test
senamakel Oct 18, 2026
a192187
test(subagents): cover default await timeout policy
senamakel Oct 18, 2026
dec80bd
docs: document tinyagents-harness-tools crate
senamakel Oct 18, 2026
df25a75
docs(tinyagents-harness-tools): add README for the tools crate
senamakel Oct 18, 2026
a897eea
docs: link harness tools crate guide from READMEs
senamakel Oct 18, 2026
3a295a0
chore: files changed README.md,crates/tinyagents-harness-tools/README.md
senamakel Oct 18, 2026
ef0c69a
docs(readme): clarify subagent module path
senamakel Oct 18, 2026
b370ab0
docs(subagent): describe harness tools without intra-doc links
senamakel Oct 18, 2026
e85817b
docs(skills): fix stale intra-doc link in module docs
senamakel Oct 18, 2026
a690551
chore(deps): drop unused anyhow and uuid dependencies
senamakel Oct 18, 2026
2025677
chore: remove unused dependencies from lockfile
senamakel Oct 18, 2026
1127dd7
merge: integrate harness tools for epic 8088
senamakel Oct 18, 2026
cbfc2ae
merge: base steering consolidation on epic harness tools
senamakel Oct 18, 2026
f35e7a4
test(subagent): cover fallback steering and injected context
senamakel Oct 18, 2026
1ac0ddb
test(subagent): assert no calls on unsupported lane steer
senamakel Oct 18, 2026
09b9c06
refactor(orchestration): move detached subagent steering into its own…
senamakel Oct 18, 2026
4db291a
feat(orchestration): expose steering as a top-level module
senamakel Oct 18, 2026
d7b852c
refactor(tasks): move SteeringRegistry into its own module
senamakel Oct 18, 2026
69a8688
refactor(tinyagents-tasks): drop orchestration tool surface from crate
senamakel Oct 18, 2026
807abcb
chore: files changed crates/tinyagents-integration-tests/tests/e2e_co…
senamakel Oct 18, 2026
d0a5a7c
refactor(completions): remove restart recovery note from router
senamakel Oct 18, 2026
3b989f8
test(tinyagents-tasks): add graph_spec helper for orchestration tests
senamakel Oct 18, 2026
02b550e
refactor(orchestration): update subagent and task module exports
senamakel Oct 18, 2026
61d9abc
docs(steering): clarify idempotent steer validation and terminal fall…
senamakel Oct 18, 2026
2a3f9e7
fix(orchestration): handle registry lookup errors in steering
senamakel Oct 18, 2026
e4a7e15
refactor(orchestration): make steer fallback accept async closures
senamakel Oct 18, 2026
ce92714
refactor(orchestration): simplify steer_detached fallback bounds
senamakel Oct 18, 2026
0585b3c
test(integration): add e2e coverage for control and steer
senamakel Oct 18, 2026
d9254b8
test(e2e): remove steering registry and list coverage
senamakel Oct 18, 2026
3f830fe
docs(orchestration): document steering helpers in crate README
senamakel Oct 18, 2026
bec7bd5
chore: apply rustfmt formatting and tidy imports
senamakel Oct 18, 2026
d196bd3
test(orchestration): reorder imports in steering tests
senamakel Oct 18, 2026
4bc535f
test(tinyagents-tasks): import SteeringHandle in lib tests
senamakel Oct 18, 2026
b654735
test(e2e): cover detached steering dispatch to registered child
senamakel Oct 18, 2026
0ac201c
test(e2e_steering): reformat detached steering assertions
senamakel Oct 18, 2026
4acd1a5
chore(tinyagents-tasks): drop unused dependencies
senamakel Oct 18, 2026
726e066
fix(harness): log why a hosted agent run failed
M3gA-Mind Oct 19, 2026
bc8af95
chore(vendor): bump tinyinference submodule
senamakel Oct 19, 2026
99f7052
Merge pull request #121 from senamakel/issue-230-tinyinference-pin
senamakel Oct 19, 2026
34cfa6c
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
330eddd
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
5c60bc9
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
9468816
Merge remote-tracking branch 'fork/epic/8144-doctor' into epic/8144-d…
senamakel Oct 21, 2026
59272ef
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
4d09739
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
556ee3d
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
d72f946
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
62109e2
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
4896a6e
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
c1d134e
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
aaea6c4
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
5060e3b
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
dc622ec
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
aa382c5
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
92c01ce
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
5ae3885
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
3f9a8c5
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
d16eb91
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
c03480f
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
e22d9f5
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
15aec9d
Merge pull request #155 from senamakel/epic-8144-501-cli
senamakel Oct 21, 2026
8973906
feat(state_block): add a request-only run-state block to every model …
sanil-23 Oct 19, 2026
dd22dc0
feat(state_block): show the thread goal in the run-state block
sanil-23 Oct 19, 2026
00a4ec2
feat(goals): let the model resume a paused goal; the state block asks…
sanil-23 Oct 19, 2026
4b88232
fix(state_block): find the plan in thread-less runs; drop exploration…
sanil-23 Oct 19, 2026
4688736
fix(state_block): keep a compound command's failure when it explains …
sanil-23 Oct 19, 2026
67b4b63
test(state_block): a compound command's stderr failure is kept
sanil-23 Oct 19, 2026
b922e96
fix(todos): the plan-order rules find the plan in thread-less runs
sanil-23 Oct 19, 2026
616658d
fix(state_block): a closed pipe and a multi-line script are probes too
sanil-23 Oct 19, 2026
d3a1169
fix(state_block): keep the block last when another note lands after it
sanil-23 Oct 20, 2026
2dd533a
feat(recovery): RunPolicy::truncated_empty_constant_cap keeps dead-ca…
sanil-23 Oct 20, 2026
2d22795
feat(recovery): RunPolicy::truncated_empty_reasoning_off retries a de…
sanil-23 Oct 20, 2026
d1133c7
feat(recovery): reasoning-off sticks for the rest of a run once dead …
sanil-23 Oct 20, 2026
2033ab5
Merge pull request #503 from M3gA-Mind/fix/terminal-observer-log-error
senamakel Oct 21, 2026
252eecd
Merge pull request #497 from senamakel/epic-8088-57-harness-tools
senamakel Oct 21, 2026
7bc2631
Merge remote-tracking branch 'origin/main' into epic-236-final-depend…
senamakel Oct 21, 2026
3bc4549
chore(vendor): update tinyinference subproject commit
senamakel Oct 21, 2026
31943c7
Merge pull request #508 from tinyhumansai/epic-236-final-dependencies
senamakel Oct 21, 2026
7a2d55a
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
6807db5
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
eb589a1
chore: files changed crates/tinyagents-harness/src/providers/claude_a…
senamakel Oct 21, 2026
4b7f743
Merge pull request #511 from senamakel/epic/8144-doctor
senamakel Oct 21, 2026
6dcc159
chore(vendor): bump tinytools to 0.6.0 and tinyinference
M3gA-Mind Oct 21, 2026
543ab27
Merge pull request #512 from M3gA-Mind/chore/bump-tinytools-tinyinfer…
M3gA-Mind Oct 21, 2026
7536816
Merge tinyagents main pin into epic-8089 branch
senamakel Oct 21, 2026
7d5728e
chore: files changed vendor/tinyinference
senamakel Oct 21, 2026
f49bd62
Merge pull request #170 from senamakel/epic-8089-exact
senamakel Oct 21, 2026
eced73f
Merge TinyAgents harness-tools ownership into epic-8089
senamakel Oct 21, 2026
74f6e69
chore: files changed vendor/tinyinference
senamakel Oct 21, 2026
93e2547
Merge TinyAgents canonical main into epic-8089
senamakel Oct 21, 2026
d624d6f
chore: files changed vendor/tinytools
senamakel Oct 21, 2026
ce9f393
chore: files changed vendor/tinytools
senamakel Oct 21, 2026
e92b875
Merge pull request #510 from sanil-23/feat/dead-call-reasoning-off
senamakel Oct 21, 2026
6133eb7
Merge pull request #423 from shaurya703/fix/pricing-lookup-snapshot-d…
senamakel Oct 21, 2026
629f5b4
Merge upstream/main into feat/run-state-block
senamakel Oct 21, 2026
cd6b362
Merge upstream/main into PR 499
senamakel Oct 21, 2026
468a832
Merge upstream main into packed permissions fix
senamakel Oct 21, 2026
6a31d6a
chore: files changed Cargo.lock
senamakel Oct 21, 2026
c9bae35
chore: files changed crates/tinyagents-graph/Cargo.toml,crates/tinyag…
senamakel Oct 21, 2026
ec5f1b9
Fix harness tool registry test imports
senamakel Oct 21, 2026
fd00a0c
chore: files changed crates/tinyagents-harness-tools/src/skills/mod_p…
senamakel Oct 21, 2026
df64404
Merge pull request #513 from tinyhumansai/epic-8089-exact
senamakel Oct 21, 2026
4ba3453
chore: files changed crates/tinyagents-graph/src/state_block/README.m…
senamakel Oct 21, 2026
06c5068
chore: files changed crates/tinyagents-graph/Cargo.toml,crates/tinyag…
senamakel Oct 21, 2026
994b58a
Merge branch 'main' of github.com:tinyhumansai/tinyagents into pr/499
senamakel Oct 21, 2026
b5c0a97
chore: files changed vendor/tinyinference
senamakel Oct 21, 2026
ba1051b
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
2acdaac
chore: files changed crates/tinyagents-harness/src/tool/shared/mod.rs…
senamakel Oct 21, 2026
f934ea3
chore: files changed crates/tinyagents-harness-tools/README.md,crates…
senamakel Oct 21, 2026
84305de
chore: files changed crates/tinyagents-harness/src/tool/shared/mod.rs
senamakel Oct 21, 2026
df84227
chore: files changed crates/tinyagents-harness/src/middleware/library…
senamakel Oct 21, 2026
a41fe5f
chore: files changed crates/tinyagents-harness-tools/Cargo.toml,crate…
senamakel Oct 21, 2026
a7e1763
chore: files changed crates/tinyagents-harness-tools/src/skills/mod_p…
senamakel Oct 21, 2026
e16e47d
chore: files changed crates/tinyagents-harness-tools/src/skills/mod_p…
senamakel Oct 21, 2026
ec06640
chore: files changed crates/tinyagents-harness-tools/src/skills/mod_p…
senamakel Oct 21, 2026
e649317
chore: files changed crates/tinyagents-harness/src/tool/shared/mod.rs
senamakel Oct 21, 2026
8906b76
chore: files changed crates/tinyagents-harness-tools/src/skills/mod_p…
senamakel Oct 21, 2026
b932d42
chore: files changed crates/tinyagents-tasks/Cargo.toml
senamakel Oct 21, 2026
d6f180b
chore: files changed Cargo.lock
senamakel Oct 21, 2026
b073bb4
chore: files changed vendor/tinyinference,vendor/tinytools
senamakel Oct 21, 2026
885f014
chore: files changed CHANGELOG.md,crates/tinyagents-tasks/src/README.…
senamakel Oct 21, 2026
b6b2252
Merge branch 'main' of github.com:tinyhumansai/tinyagents into pr/492
senamakel Oct 21, 2026
5069a4a
chore: files changed vendor/tinyinference
senamakel Oct 21, 2026
4e4e86a
Revert "chore: files changed vendor/tinyinference,vendor/tinytools"
senamakel Oct 21, 2026
e5e78d2
chore: files changed vendor/tinyinference,vendor/tinytools
senamakel Oct 21, 2026
a15ae86
chore: files changed crates/tinyagents-tasks/src/completions/driver_t…
senamakel Oct 21, 2026
912bacb
chore: files changed crates/tinyagents-tasks/src/completions/driver_t…
senamakel Oct 21, 2026
2b48ad4
chore: files changed crates/tinyagents-tasks/src/completions/driver_t…
senamakel Oct 21, 2026
5d0bb0b
chore: files changed crates/tinyagents-tasks/src/completions/driver_t…
senamakel Oct 21, 2026
ad67b5f
chore: files changed Cargo.lock,crates/tinyagents-harness/Cargo.toml,…
senamakel Oct 21, 2026
4f45dd8
chore: files changed Cargo.lock,Cargo.toml,crates/tinyagents-definiti…
senamakel Oct 21, 2026
a63718c
chore: files changed crates/tinyagents-harness-tools/src/goals/runtim…
senamakel Oct 21, 2026
8c0f9fc
chore: files changed crates/tinyagents-harness-tools/src/goals/README…
senamakel Oct 21, 2026
fa06f46
chore: files changed crates/tinyagents-harness-tools/src/goals/README…
senamakel Oct 21, 2026
f73ec4e
chore: files changed crates/tinyagents-graph/src/README.md,crates/tin…
senamakel Oct 21, 2026
6e396c7
Merge upstream main into completion router fix
senamakel Oct 21, 2026
8f9c4cd
chore: files changed crates/tinyagents-harness/src/middleware/library…
senamakel Oct 21, 2026
6d63441
chore: files changed crates/tinyagents-harness/src/middleware/library…
senamakel Oct 21, 2026
b18ed41
chore: files changed crates/tinyagents-harness/src/middleware/library…
senamakel Oct 21, 2026
9aef73e
chore: files changed Cargo.lock,crates/tinyagents-harness/Cargo.toml,…
senamakel Oct 21, 2026
d5aa106
chore: files changed crates/tinyagents-integration-tests/tests/verify…
senamakel Oct 21, 2026
ad9c91b
Merge pull request #499 from senamakel/epic-8088-59-steering
senamakel Oct 21, 2026
7c41476
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
8e336dc
chore: files changed crates/tinyagents-integration-tests/tests/verify…
senamakel Oct 21, 2026
cd82d02
chore: files changed crates/tinyagents-harness-tools/src/goals/tool.r…
senamakel Oct 21, 2026
f9a0464
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
38bd20a
chore: files changed crates/tinyagents-harness-tools/src/goals/tool.rs
senamakel Oct 21, 2026
4e96ed7
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
da42509
chore: files changed crates/tinyagents-integration-tests/tests/verify…
senamakel Oct 21, 2026
c266000
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
f3dbf95
chore: files changed crates/tinyagents-integration-tests/tests/verify…
senamakel Oct 21, 2026
27631c1
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
41208f7
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
17aa7ed
Merge upstream main into completion router fix
senamakel Oct 21, 2026
ad62385
chore: files changed crates/tinyagents-harness-tools/src/skills/mod_p…
senamakel Oct 21, 2026
64dd2c3
chore: files changed crates/tinyagents-harness-tools/src/goals/budget.rs
senamakel Oct 21, 2026
2cb71f2
chore: files changed crates/tinyagents-harness-tools/src/goals/budget…
senamakel Oct 21, 2026
0a763c7
chore: files changed crates/tinyagents-harness-tools/src/goals/budget…
senamakel Oct 21, 2026
4b3a2d8
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
faee47b
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
6039620
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
00f149c
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
f687196
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
cd0885a
chore: files changed vendor/tinyinference,vendor/tinytools
senamakel Oct 21, 2026
91a79da
chore: files changed crates/tinyagents-harness-tools/src/goals/mod_te…
senamakel Oct 21, 2026
b8eb491
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
c4cec37
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
085d8f1
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
d91b697
Merge remote-tracking branch 'origin/epic/7964-channel-v2' into 7964-…
senamakel Oct 21, 2026
d8054c6
chore: files changed crates/tinyagents-harness-tools/src/state_block/…
senamakel Oct 21, 2026
31c522e
Merge pull request #464 from shaurya703/fix/completion-router-clear-s…
senamakel Oct 21, 2026
a11e9b2
chore: files changed crates/tinyagents-hooks/src/stop/goal_budget_tes…
senamakel Oct 21, 2026
6680c9c
chore: files changed crates/tinyagents-hooks/src/stop/goal_budget_tes…
senamakel Oct 21, 2026
eff5e96
chore: files changed crates/tinyagents-harness/src/tool/shared/mod_te…
senamakel Oct 21, 2026
50894e2
chore: files changed crates/tinyagents-harness/src/tool/shared/mod_te…
senamakel Oct 21, 2026
35744c0
fix(state_block): track missing executables by round and widen patch …
senamakel Oct 21, 2026
5ca6def
feat(middleware): add after_tool_output_screened hook
senamakel Oct 21, 2026
9a40899
fix(state_block): redact nested tool output from the ledger
senamakel Oct 21, 2026
c94ac24
test(state_block): update expected nested tool error message
senamakel Oct 21, 2026
13686a8
fix(tinyagents-harness-tools): pass output by value to record_result
senamakel Oct 21, 2026
600a4a1
feat(tool-rules): enforce argument-aware permission ceiling
senamakel Oct 21, 2026
fb2de41
test(tool): keep permission ceiling policy alive in argument dispatch…
senamakel Oct 21, 2026
06a2d45
style(tool/rules): reflow test code and drop a stray blank line
senamakel Oct 21, 2026
7dd12c4
fix(tool): treat a permission ceiling as non-permissive
senamakel Oct 21, 2026
3eb8bb5
test(skills): cover read-only ceiling refusing packed delete
senamakel Oct 21, 2026
930b4f6
fix(agent_loop): emit terminal tool failure when output screening fails
senamakel Oct 21, 2026
1f99770
fix(state_block): record screened model output and scope patch paths
senamakel Oct 21, 2026
aaaaccb
test(goals): cover paused goals in context block expectations
senamakel Oct 21, 2026
a4aa4a8
docs(goals): clarify turn preparation context for paused goals
senamakel Oct 21, 2026
27837f3
test(state_block): reformat test assertions to satisfy rustfmt
senamakel Oct 21, 2026
1371b87
test(state_block): cover markdown output in screening ledger test
senamakel Oct 21, 2026
e81c25a
test(skills): update permission ceiling setup in read-only test
senamakel Oct 21, 2026
4c2a9c0
test(skills): use builder for permission ceiling in test
senamakel Oct 21, 2026
c7a7886
test(e2e): assert paused goal exposes resume context block
senamakel Oct 21, 2026
df86a60
Merge pull request #509 from sanil-23/feat/run-state-block
senamakel Oct 21, 2026
e665369
Merge pull request #514 from tinyhumansai/7964-tinyflows-channel-iden…
senamakel Oct 21, 2026
96ad58d
Merge pull request #492 from AmirrezaFarnamTaheri/fix/packed-permissi…
senamakel Oct 21, 2026
eea556c
chore(vendor): bump tinyinference submodule
senamakel Oct 22, 2026
583778a
chore(vendor): bump tinyinference submodule
senamakel Oct 22, 2026
5544838
Merge remote-tracking branch 'fork/epic/8092-inference-out' into epic…
senamakel Oct 22, 2026
910c6c5
chore(vendor): bump tinytools submodule
senamakel Oct 22, 2026
23ffece
Merge remote-tracking branch 'origin/main' into epic-8092-owner-curre…
senamakel Oct 22, 2026
1538e9c
fix(deps): align TinyInference 0.5 crate versions
senamakel Oct 22, 2026
e120462
chore: bump tinyinference crates to 0.5.0
senamakel Oct 22, 2026
5308586
fix(claude_code): populate charged_amount_nanos in model response
senamakel Oct 22, 2026
47b15d7
test(cost): add charged_amount_nanos to usage fixtures
senamakel Oct 22, 2026
cfc2162
chore(steering): allow large enum variant on steering command
senamakel Oct 22, 2026
8a9eede
chore(steering): clarify large enum variant allow comment
senamakel Oct 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ capability catalog), `crates/tinyagents-session/` (durable session data),
task stores and orchestration controls), and
`crates/tinyagents-orchestration/` (direct and durable subagent invocation,
tools, sessions, lifecycle logic, and focused tests).
`crates/tinyagents-harness-tools/` owns reusable harness tool implementations
and their stateful support: goals, todos, skills, time, clarification, plan
exit, per-call binding, thread locks, and feature-gated subagent tool shells.
`crates/tinyagents-integration-tests/` owns cross-crate tests and examples.
The workspace also has `crates/tinyagents-runtime/`, `crates/tinyagents-definition/`
and `crates/tinyagents-live/`.
Expand All @@ -24,8 +27,9 @@ dedicated `types.rs` file and keep module-local unit tests in a sibling
smallest useful API.

Cargo features are package-local. `tinyagents-harness` exposes `sqlite`,
`builtin-tools` (`tools` is a deprecated alias), `multimodal`, `png-optimize`,
`media`, `claude-code`, `langfuse`, `storage-drivers`, and `tracing`; `tinyagents-graph`
`multimodal`, `png-optimize`, `media`, `claude-code`, `langfuse`,
`storage-drivers`, and `tracing`; `tinyagents-harness-tools` exposes default
`todos`, `goals`, and `skills`, plus opt-in `subagents`; `tinyagents-graph`
exposes `sqlite`, `storage-drivers`, and `tracing`; session exposes
`storage-drivers` and `tracing`; registry exposes `tracing`. The
`storage-drivers` features put each store on `tinystoragedrivers` ports. The harness's own
Expand Down
12 changes: 11 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Changelog

## Unreleased: settled completions drop their result (tinyagents#354)

`CompletionRouter` now empties a record's `result` when the record settles:
`mark_delivered`, `tombstone` and `cancel_parent` store the record with its
id, parent key, status, state, attempts and timestamps but no text, artifact
reference or omitted-character count, so a delivered child's output or a
deleted parent's withdrawn completions do not sit in the store until
`compact(retain)`. `mark_failed` still returns the full record to the host's
give-up writer and stores the emptied one. Dedupe, tombstones and reopen
behaviour are unchanged.

## Unreleased: dedicated hooks crate (tinyagents#470)

**Breaking.** Stop-hook and lifecycle-hook APIs now live in
Expand Down Expand Up @@ -82,7 +93,6 @@ Fixes (the two deferred tinyagents#463 findings):
The Release workflow derives the next version from the highest of the
workspace version and the latest `v*` tag instead of the (stale) workspace
version alone, so it no longer proposes a tag that already exists.

## Unreleased: locator-based transcript reads and writes (tinyagents#453)

Hosts can now do through a `TranscriptLocator` everything they used the
Expand Down
48 changes: 32 additions & 16 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
members = ["crates/*"]
default-members = [
"crates/tinyagents-harness",
"crates/tinyagents-harness-tools",
"crates/tinyagents-graph",
"crates/tinyagents-tasks",
"crates/tinyagents-registry",
Expand Down
29 changes: 20 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,13 @@ TinyAgents is a Cargo workspace, not one crate. Depend on the pieces you need:
middleware, structured output, streaming, usage/cost accounting, retries,
caching, and a Claude Code CLI model adapter with stream-json,
session, authentication, and MCP endpoint support. Features: `sqlite`,
`storage-drivers`, `builtin-tools` (`tools` is a deprecated alias),
`multimodal`, `png-optimize` (opt-in PNG re-compression), `media`,
`storage-drivers`, `multimodal`, `png-optimize` (opt-in PNG re-compression), `media`,
`claude-code` and `langfuse` (both default), `tracing` (forwards to `tinytools-agent/tracing` for its parsing diagnostics; the harness's own instrumentation is always compiled in).
- **`tinyagents-harness-tools`** — reusable implementations for the harness:
goals and budgets, per-thread todos, skill tool packs, subagent control
tools, time and clarification tools, plan exit, per-call binding, and
per-thread locks. Features: `todos`, `goals`, `skills` (all default), and
`subagents` (opt-in). See the [crate guide](crates/tinyagents-harness-tools/README.md).
- **`tinyagents-graph`** — a LangGraph-style durable, typed state graph:
`START`/`END`, nodes, conditional edges, `Send` fanout, reducers/channels,
checkpoints, interrupts, subgraphs, and time travel. Features: `sqlite`,
Expand Down Expand Up @@ -164,15 +168,22 @@ for exercising the loop without a live provider. Memory, workspace lifecycle,
authorization, and persistence policy stay in the host and can wrap a complete
run with `AgentMiddleware`.

Tool packs keep read-only disclosure available in mixed-permission sessions
while gating each bound invocation on its actual arguments. The harness also
exposes [executor-entry observation](docs/modules/harness/middleware-tool-wrap.md#actual-execution-observation)
for finish checks and host bookkeeping: it reports the bound target without
changing the outer transcript or treating a preview as a write.

## Subagent orchestration

`tinyagents-orchestration` owns child-agent composition. `SubAgentTool` is a
typed parent-context dispatcher: its default `background` mode starts a child
in the background and returns a stable job id immediately, while `inline` mode
waits for and returns the child's final result in the same call. `SubAgentJobsTool` queries job
status/results and `SubAgentMessageTool` sends messages to a live job;
hosts register these control tools over the same explicitly shared
`SubAgentJobRegistry`. `SubAgentSession` covers retained post-completion
`tinyagents-orchestration` owns child-agent composition and the shared
`SubAgentJobRegistry`. The `subagents` feature in `tinyagents-harness-tools`
exposes `tinyagents_harness_tools::subagents`, which provides
`DriverSubAgentTool`, the host-planned typed dispatcher: its `background` mode
starts a child and returns a stable job id, while `inline` mode waits for the
final result. That module also provides the `SubAgentJobsTool` and
`SubAgentMessageTool` declarations over the shared registry. `SubAgentSession`
covers retained post-completion
conversations, while `SubagentDriver` coordinates durable lifecycle
preparation, execution, pause, resume, and persistence. Teams and workflow DAGs
are intentionally outside this focused crate.
Expand Down
2 changes: 1 addition & 1 deletion crates/tinyagents-definition/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ toml = "0.8"
anyhow.workspace = true
tracing.workspace = true
# `AgentDefinition::tool_rules` carries the shared tool-rule vocabulary.
tinytools = { path = "../../vendor/tinytools/crates/tinytools", version = "0.5.0" }
tinytools = { path = "../../vendor/tinytools/crates/tinytools", version = "0.6.0" }

[dev-dependencies]
tempfile = "3"
Expand Down
5 changes: 2 additions & 3 deletions crates/tinyagents-graph/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ rust-version.workspace = true
description = "Durable typed state graphs for TinyAgents."

[dependencies]
anyhow = { workspace = true }
async-trait = { workspace = true }
futures = { workspace = true }
serde = { workspace = true }
Expand All @@ -18,8 +17,8 @@ tinyagents-tasks = { path = "../tinyagents-tasks", version = "2.2.0", default-fe
tinyagents-harness = { path = "../tinyagents-harness", version = "2.2.0", default-features = false, features = [
"langfuse",
] }
tinyinference-llm = { path = "../../vendor/tinyinference/crates/tinyinference-llm", version = "0.4.1" }
tinytools = { path = "../../vendor/tinytools/crates/tinytools", version = "0.5.0" }
tinyinference-llm = { path = "../../vendor/tinyinference/crates/tinyinference-llm", version = "0.5.0" }
tinytools = { path = "../../vendor/tinytools/crates/tinytools", version = "0.6.0" }
tokio = { workspace = true, features = ["sync", "time", "macros", "rt", "rt-multi-thread", "fs"] }
tracing = { workspace = true }
# Storage ports (no database client) for `DriverCheckpointer`.
Expand Down
2 changes: 1 addition & 1 deletion crates/tinyagents-graph/src/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ carry their own `README.md` — see the module map below.
| `export` | Graph introspection/visualization: topology extraction, Mermaid/JSON export, validation reports. |
| `goals` | A durable per-thread goal (single "completion contract"), continuation loop, and harness tools. See [`goals/README.md`](goals/README.md). |
| `observability` | Durable graph observability: journals, status stores, the journaling sink, latency/health rollups, Langfuse export. See [`observability/README.md`](observability/README.md). |
| `orchestration` | Managed child-work controls (`spawn`/`await`/`cancel`/... ) exposed as harness tools, backed by a `TaskStore`. Now lives in `tinyagents-tasks` ([README](../../tinyagents-tasks/src/README.md)); this module only re-exports it for compatibility. |
| `orchestration` | Detached-task runtime types backed by a `TaskStore`. The runtime lives in `tinyagents-tasks` ([README](../../tinyagents-tasks/src/README.md)); this module re-exports its current public surface for compatibility. Model-facing orchestration tool adapters were removed. |
| `parallel` | `map_reduce` — ordered, bounded-concurrency parallel map/reduce with a configurable failure policy, independent of the graph executor. |
| `recursion` | Recursion policy and depth tracking: `RecursionFrame`/`RecursionPolicy`/`RecursionStack`/`RunTree` bound and observe nested graph/subgraph/sub-agent recursion. See [`recursion/README.md`](recursion/README.md). |
| `reducer` | `StateReducer`/`Reducer` implementations (overwrite, append, min/max, set-union, closures) that fold branch updates into committed state at a superstep boundary. See [`reducer/README.md`](reducer/README.md). |
Expand Down
8 changes: 4 additions & 4 deletions crates/tinyagents-graph/src/compiled/executor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ use super::*;
use crate::compiled::boundary::StepBoundary;
use crate::compiled::run_ctx::{ResumeSeed, RunCtx};
use crate::compiled::step::StepRunner;
use crate::thread_locks::ThreadLockMap;
use crate::execution_locks::RunLockMap;
use std::sync::OnceLock;

/// Default TTL for the durable execution lease claimed in [`CompiledGraph::execute`]
Expand All @@ -32,9 +32,9 @@ const THREAD_LEASE_TTL: Duration = Duration::from_secs(300);
/// the gap the review's C3 finding describes (`executor.rs` took no lock of
/// its own). Keyed on `thread_id` *and* namespace so a parent run and a
/// subgraph run sharing a thread id never contend on each other's lock.
fn execution_lock_map() -> &'static ThreadLockMap {
static LOCKS: OnceLock<ThreadLockMap> = OnceLock::new();
LOCKS.get_or_init(|| ThreadLockMap::new("graph executor per-thread run lock"))
fn execution_lock_map() -> &'static RunLockMap {
static LOCKS: OnceLock<RunLockMap> = OnceLock::new();
LOCKS.get_or_init(RunLockMap::default)
}

/// Builds the in-process lock map key for `thread_id` scoped to `namespace`.
Expand Down
8 changes: 3 additions & 5 deletions crates/tinyagents-graph/src/delegation/run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use super::types::{
DelegationStageOutput, DelegationState, DelegationUpdate, PendingApproval,
};
use crate::checkpoint::{Checkpoint, Checkpointer};
use crate::thread_locks::ThreadLockMap;
use crate::execution_locks::RunLockMap;
use crate::{Command, END};

/// Serializes [`run_or_resume_delegation`]'s classify-then-dispatch critical
Expand All @@ -22,10 +22,8 @@ use crate::{Command, END};
/// — a weak-value map so an idle thread's mutex is reclaimed instead of
/// leaking for the life of the process.
fn thread_lock(thread_id: &str) -> Arc<Mutex<()>> {
static LOCKS: OnceLock<ThreadLockMap> = OnceLock::new();
LOCKS
.get_or_init(|| ThreadLockMap::new("delegation run/resume lock map"))
.lock_for(thread_id)
static LOCKS: OnceLock<RunLockMap> = OnceLock::new();
LOCKS.get_or_init(RunLockMap::default).lock_for(thread_id)
}

/// Run the plan→execute⇄review→finalize delegation graph, invoking `run_stage`
Expand Down
33 changes: 33 additions & 0 deletions crates/tinyagents-graph/src/execution_locks.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
//! Private per-thread lock state for the graph's executor and delegation runner.
//!
//! Reusable lock maps live in `tinyagents-harness-tools`; these two graph
//! entry points retain only the private serialization state they need until
//! the graph runtime is retired.

use std::collections::HashMap;
use std::sync::{Arc, Mutex as StdMutex, Weak};

use tokio::sync::Mutex;

#[derive(Default)]
pub(super) struct RunLockMap {
locks: StdMutex<HashMap<String, Weak<Mutex<()>>>>,
}

impl RunLockMap {
pub(super) fn lock_for(&self, key: &str) -> Arc<Mutex<()>> {
let mut locks = self
.locks
.lock()
.unwrap_or_else(|_| panic!("graph run lock map poisoned"));
if let Some(lock) = locks.get(key).and_then(Weak::upgrade) {
return lock;
}
let lock = Arc::new(Mutex::new(()));
locks.insert(key.to_owned(), Arc::downgrade(&lock));
if locks.len() >= 16 {
locks.retain(|_, weak| weak.strong_count() > 0);
}
lock
}
}
Loading
Loading