What's Changed
- docs: add notebook tutorials v0 by @alessiodevoto in #142
- fix(tools): keep the shell parser away from the control protocol by @maemayv in #149
- Fix nooa-bench OTLP trace usage extraction by @cpakkamisaac-sae in #154
- Add CI-controlled release gate by @sklinglernv in #163
- fix(tools): allow file operations outside shell cwd by @furgalep in #172
- feat(viewer): qualify method spans with the owning agent class by @sklinglernv in #113
- docs: add NOOA tour & concept guides. Fix small issues in skills. by @sklinglernv in #167
- feat(acp): serve durable coding sessions over ACP by @furgalep in #143
- Hide skill lifecycle hooks from agent docs by @furgalep in #186
- fix(tracing): trace the first litellm choice as the output message by @Bishnuu72 in #160
- docs(strategies): attribute Configuration fields to the config object 🤖🤖🤖 by @rhlobo in #126
- chore: enable CodeRabbit auto review by @alessiodevoto in #211
- fix(agentdoc): preserve type docs for instances by @furgalep in #209
- fix(eval): authenticate OTLP eval-span uploads by @sklinglernv in #159
- fix(repo): support current Tree-sitter query API by @furgalep in #233
- Use LiteLLM for GPT-5.6 reasoning tool routing by @cpakkamisaac-sae in #147
- fix(agents): preserve Python error source context by @furgalep in #189
- fix(cli): make trace imports reliable under viewer backpressure by @sklinglernv in #203
- metaclass: fix generator method dispatch (fixes #38) by @furgalep in #120
- examples: durable human-in-the-loop suspend and resume by @shsagnik in #140
- fix: Python-API eval metadata fallback and memory README by @skundu42 in #177
- feat(docs) Add local model setup guide by @alessiodevoto in #249
- fix: surface prompt template eval errors, fail-safe async_safety fallback, and set _parent_agent_var in sync wrapper by @arnabwithab in #72
- fix(release): discover draft releases reliably by @sklinglernv in #250
- fix(release): support GitHub CLI 2.23 by @sklinglernv in #252
New Contributors
- @Bishnuu72 made their first contribution in #160
- @rhlobo made their first contribution in #126
- @arnabwithab made their first contribution in #72
Full Changelog: v0.0.9...v0.0.10
🧪 Capability Test Results
✅ Release OK — Stable tier at 93.4% (floor: 60%), no regressions beyond noise
92.2% 🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦⬜⬜ -0.2%
1283/1392 tests passing (-3 from v0.0.9)
| Metric | v0.0.9 | This release | Change |
|---|---|---|---|
| Tests Passed | 1286/1392 | 1283/1392 | -3 ❌ |
| Success Rate | 92.4% | 92.2% | -0.2% ❌ |
| Collapsed tests | — | 0 | 0 ➖ |
| New error types | — | 0 | 0 ➖ |
| Output Tokens | 1,134,194 | 1,151,456 | +17,262 |
| Total Tokens | 10,622,378 | 10,645,238 | +22,860 |
📊 Per-tier breakdown
| Tier | v0.0.9 | This release | Change | Expected |
|---|---|---|---|---|
| Frontier | 117/144 (81.2%) | 117/144 (81.2%) | +0 / +0.0% ➖ | — |
| Stable | 1169/1248 (93.7%) | 1166/1248 (93.4%) | -3 / -0.2% ❌ | ≥60% |
📋 Per-test breakdown
| Test | Status |
|---|---|
| calculate_batch_001 | ❌ 8/12 |
| calculate_complex_001 | ✅ 12/12 |
| calculate_complex_002 | ✅ 12/12 |
| calculate_simple_001 | ✅ 12/12 |
| calculate_simple_002 | ✅ 12/12 |
| construction_dataframe_001 | ✅ 12/12 |
| construction_dataframe_002 | ✅ 12/12 |
| construction_widget_001 | ✅ 12/12 |
| construction_widget_002 | ✅ 12/12 |
| context_notes_001 | ❌ 11/12 |
| employee_lookup_001 | ❌ 10/12 |
| error_recovery_001 | ✅ 12/12 |
| fast_agent_help_001 | ❌ 23/24 |
| fast_agent_help_002 | ✅ 24/24 |
| fast_agent_help_003 | ✅ 24/24 |
| fast_agent_no_help_001 | ✅ 24/24 |
| fast_agent_no_help_002 | ✅ 24/24 |
| fast_agent_no_help_003 | ✅ 24/24 |
| fast_food_cancel_001 | ✅ 12/12 |
| fast_food_cancel_002 | ✅ 12/12 |
| fast_food_order_001 | ❌ 11/12 |
| fast_food_order_002 | ❌ 11/12 |
| fast_food_order_003 | ❌ 11/12 |
| fast_food_order_004 | ❌ 10/12 |
| fast_food_order_005 | ❌ 10/12 |
| fast_food_order_006 | ❌ 8/12 |
| json_extract_001 | ❌ 11/12 |
| json_qa_lookup_001 | ✅ 12/12 |
| json_qa_lookup_002 | ✅ 12/12 |
| json_qa_reasoning_001 | ✅ 12/12 |
| json_qa_reasoning_002 | ✅ 12/12 |
| large_data_count_generated_001 | ❌ 11/12 |
| large_data_extract_generated_001 | ❌ 11/12 |
| large_data_find_generated_001 | ✅ 12/12 |
| large_data_find_generated_002 | ✅ 12/12 |
| needle_in_haystack_001 | ✅ 12/12 |
| realfmt_lower_dict_codeact_001 | ✅ 12/12 |
| realfmt_lower_dict_codeact_002 | ❌ 11/12 |
| realfmt_lower_dict_codeact_003 | ✅ 12/12 |
| realfmt_lower_dict_codeact_004 | ❌ 11/12 |
| realfmt_lower_dict_codeact_005 | ❌ 10/12 |
| realfmt_lower_dict_codeact_006 | ❌ 10/12 |
| realfmt_lower_dict_codeact_007 | ✅ 12/12 |
| realfmt_lower_dict_predict_001 | ✅ 12/12 |
| realfmt_lower_dict_predict_002 | ❌ 5/12 |
| realfmt_lower_dict_predict_003 | ✅ 12/12 |
| realfmt_lower_dict_predict_004 | ❌ 8/12 |
| realfmt_lower_dict_predict_005 | ✅ 12/12 |
| realfmt_lower_dict_predict_006 | ❌ 8/12 |
| realfmt_lower_dict_predict_007 | ✅ 12/12 |
| realfmt_lower_set_codeact_001 | ✅ 12/12 |
| realfmt_lower_set_codeact_002 | ✅ 12/12 |
| realfmt_lower_set_codeact_003 | ✅ 12/12 |
| realfmt_lower_set_codeact_004 | ✅ 12/12 |
| realfmt_lower_set_codeact_005 | ✅ 12/12 |
| realfmt_lower_set_codeact_006 | ✅ 12/12 |
| realfmt_lower_set_codeact_007 | ✅ 12/12 |
| realfmt_lower_set_predict_001 | ✅ 12/12 |
| realfmt_lower_set_predict_002 | ❌ 4/12 |
| realfmt_lower_set_predict_003 | ✅ 12/12 |
| realfmt_lower_set_predict_004 | ❌ 3/12 |
| realfmt_lower_set_predict_005 | ✅ 12/12 |
| realfmt_lower_set_predict_006 | ❌ 6/12 |
| realfmt_lower_set_predict_007 | ✅ 12/12 |
| realfmt_nested_codeact_001 | ✅ 12/12 |
| realfmt_nested_codeact_002 | ✅ 12/12 |
| realfmt_nested_codeact_003 | ✅ 12/12 |
| realfmt_nested_codeact_004 | ✅ 12/12 |
| realfmt_nested_codeact_005 | ✅ 12/12 |
| realfmt_nested_codeact_006 | ✅ 12/12 |
| realfmt_nested_codeact_007 | ❌ 11/12 |
| realfmt_nested_predict_001 | ✅ 12/12 |
| realfmt_nested_predict_002 | ✅ 12/12 |
| realfmt_nested_predict_003 | ✅ 12/12 |
| realfmt_nested_predict_004 | ✅ 12/12 |
| realfmt_nested_predict_005 | ❌ 9/12 |
| realfmt_nested_predict_006 | ❌ 7/12 |
| realfmt_nested_predict_007 | ❌ 9/12 |
| realfmt_slice_keys_list_codeact_001 | ✅ 12/12 |
| realfmt_slice_keys_list_codeact_002 | ✅ 12/12 |
| realfmt_slice_keys_list_codeact_003 | ✅ 12/12 |
| realfmt_slice_keys_list_codeact_004 | ✅ 12/12 |
| realfmt_slice_keys_list_codeact_005 | ✅ 12/12 |
| realfmt_slice_keys_list_codeact_006 | ✅ 12/12 |
| realfmt_slice_keys_list_codeact_007 | ✅ 12/12 |
| realfmt_slice_keys_list_predict_001 | ✅ 12/12 |
| realfmt_slice_keys_list_predict_002 | ❌ 9/12 |
| realfmt_slice_keys_list_predict_003 | ✅ 12/12 |
| realfmt_slice_keys_list_predict_004 | ❌ 11/12 |
| realfmt_slice_keys_list_predict_005 | ✅ 12/12 |
| realfmt_slice_keys_list_predict_006 | ❌ 9/12 |
| realfmt_slice_keys_list_predict_007 | ❌ 7/12 |
| refinement_001 | ❌ 7/12 |
| repl_exploration_001 | ❌ 9/12 |
| router_analyze_001 | ✅ 12/12 |
| router_analyze_002 | ✅ 12/12 |
| router_multi_analyze_validate_001 | ✅ 12/12 |
| router_multi_transform_validate_001 | ✅ 12/12 |
| router_transform_001 | ✅ 12/12 |
| router_transform_002 | ❌ 10/12 |
| router_validate_001 | ✅ 12/12 |
| router_validate_002 | ❌ 11/12 |
| sentiment_batch_001 | ❌ 6/12 |
| sentiment_single_001 | ✅ 12/12 |
| sentiment_single_002 | ✅ 12/12 |
| sentiment_single_003 | ✅ 12/12 |
| structured_combined_extraction_001 | ✅ 12/12 |
| structured_combined_extraction_002 | ✅ 12/12 |
| structured_combined_extraction_003 | ❌ 11/12 |
| task_decomposition_001 | ❌ 11/12 |
v0.0.9 → c28e05a4 | 4 models × 3 runs | both arms run fresh