Changelog¶
[0.1.0] — 2026-10-21¶
Fixed¶
- Sub-tasks carry a
query_textused for retrieval and gain estimation, so the display-only "(focus: domain)" label no longer shifts the embedding of branch-scoped searches (the clinical-anatomy ACL task went from 0 to full facet recall).
First public release.
Added¶
- Scenario model and three bundled scenarios (sprint coaching, clinical anatomy, versioned support KB).
- Scenario files:
Scenario.from_file()/Scenario.to_file()/Scenario.to_dict()for JSON (always) and YAML (pip install 'poincare-orchestra[yaml]', with a clearImportErrorotherwise);load_scenario()accepts a bundled name or a file path. The bundled scenarios are exported asscenarios/*.yaml, with a hand-written examplescenarios/greenhouse.yaml. - Scenario validation with positional error messages: duplicate ids, parents declared after children or unknown, self-parents, duplicate profile/role names, roles referencing unknown profiles, tasks without facets, unknown objective or constraint names, thresholds outside [0, 1], malformed decay specs, empty lists.
parse_decay(),OBJECTIVESandDECAY_KINDSare public. - Metacognitive controller: analysis, decomposition with dependencies, capability matching, investment scheduler with the skip rule and re-investment.
- Ensemble: mock and LiteLLM providers, throttling detector, router with load balancing, cooldown and failover.
Router.callcatches provider exceptions: they become a refusedAgentResponse(provider error: ...) plus aThrottleEventwith reasonerror: <type>, and trigger failover;Orchestrator.runnever raises on a provider failure.LiteLLMProvider(timeout_s=...)passes a per-call timeout to LiteLLM;parse_completion()andlooks_like_refusal()are public and tested without network.MockProvider(fail_after=N)simulates an outage.- Synthesis: claim fusion, five objectives, weighted sum with epsilon constraints, uncertainty, refinement loop.
RunResult.to_json()/RunResult.from_json()andEvalReport.to_json().- Module logger
poincare_orchestrawith INFO messages per pipeline stage (analyse, decompose, allocate, execute, synthesise, refine, eval), DEBUG details and WARNING on provider errors; aNullHandleris installed by default. - CLI: every command accepts a bundled name or a scenario path; new
exportandvalidatecommands;run --json,run --fail-after,run --model NAME=MODEL,run --timeout,eval --json, global-v/-vv; exit code 1 for invalid scenarios invalidate, 2 when a scenario cannot be loaded. - Evaluation harness (facet recall) and documentation site (mkdocs-material) at https://dhruvmojila.github.io/poincare-orchestra, with every code block executed by the test suite.
Fixed (relative to the pre-release development version)¶
Router.callraisedAssertionErrorwhen every provider was in cooldown; all providers are now tried, least degraded first.- A provider in cooldown is skipped for exactly
cooldown_callscalls (it wascooldown_calls - 1).