mirror of
https://github.com/razzant/ouroboros.git
synced 2026-08-31 02:24:51 +00:00
Rename the worker model slots to a role model where only OUROBOROS_MODEL carries a real default and every other worker slot is empty->Main: - OUROBOROS_MODEL_CODE -> OUROBOROS_MODEL_HEAVY (+USE_LOCAL_CODE -> USE_LOCAL_HEAVY), default now EMPTY -> falls back to Main; OUROBOROS_MODEL_LIGHT default EMPTY -> Main. - New OUROBOROS_MODEL_FALLBACKS comma-separated cross-model chain replacing the singular OUROBOROS_MODEL_FALLBACK. SSOT config.parse_fallback_chain (FALLBACKS, then legacy singular env; no SETTINGS_DEFAULTS injection so an explicit-empty slot means "no fallback") + config.migrate_legacy_slot_keys (used by load_settings AND build_colab_settings). 429-aware resilience: - New ouroboros/fallback_cooldown.py: per-process 429-aware cooldown (default-on, fail-soft, passive timestamp heal) for transiently-failed models (429/5xx/overloaded). - loop._run_cross_model_fallback_chain: deadline-aware walk of the fallback chain skipping cooled-down models, per-candidate total attempt cap, cross-family reasoning sanitize; the bench (FALLBACKS==Main) dedupes to an empty chain -> no-op. Body-error 429 (rate_limit) cools the model down regardless of finish_reason; the primary's same-model transient-retry budget is preserved (cooldown+fallback is the second layer). Subagent lane role model: - Lane "code" -> "heavy" (no legacy alias; durable-data ingress tolerates an unknown stored lane defensively). `auto` routes a mutating first-level child (write_surface OR may_mutate, via normalize_bool) to Heavy and a read-only child to Light; an explicit main/heavy lane is honored only at/below OUROBOROS_SUBAGENT_CAPABILITY_DEPTH_LIMIT (advanced config knob), deeper descendants fall to Light with a visible downgrade note (P1, not a silent horizon cut). Carriers: config, subagents, tools/control, provider_models, server_runtime, settings_setup_contract, tools/vision, llm, pricing, colab_bootstrap, loop, loop_llm_call, safety, tools/claude_advisory_review, prompts/SYSTEM.md, docs/ARCHITECTURE.md, docs/DEVELOPMENT.md, web settings/onboarding, devtools/benchmarks manifest + tests. Version bump is deferred to the final release (authorized P9 deferral, precedent v6.38.0). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| benchmarks | ||
| __init__.py | ||
| README.md | ||
Ouroboros Devtools
devtools/ contains operator-side and benchmark support code that should be
versioned with Ouroboros without becoming part of the runtime core.
Rules:
- Generated logs, datasets, run outputs, Docker layers, and secrets do not live here.
- Default benchmark outputs go under
/Users/anton/Ouroboros/bench_runs/. - Runtime modules must not import
devtools. - This is not an immune-system bypass: touched files are reviewed normally.
- Promote code out of
devtoolsonly through a separate reviewed runtime plan.