mirror of
https://github.com/razzant/ouroboros.git
synced 2026-08-04 16:19:50 +00:00
A GAIA validation audit surfaced harness artifacts that masked Ouroboros's real capability. This lands the GENERALIZABLE fixes (helping all users, not fitting the benchmark), a Max-mode generative context-window probe, and a reviewed GAIA adapter. Runtime: - Budget exhaustion TERMINALIZES undispatched PENDING tasks (`fail_tasks`, reason_code=budget_exhausted + task_done event, canonical budget_drive_root, cancel-requested -> CANCELLED) instead of a silent never-dispatched freeze. - `search_code` gains a shared wall-clock deadline (rg walk + batch loop + Python fallback, one budget) and a DISTINCT deadline-truncation signal so a timed-out search never reads as an authoritative "no matches" (OUROBOROS_SEARCH_CODE_WALL_SEC). - `web_search` backend pin (OUROBOROS_WEBSEARCH_BACKEND: auto|ddgs|openai|openrouter| anthropic; openai/ddgs are TRUE pins, no cascade); `ddgs` is now a dependency with 429 backoff so a fixed-model run can force pure retrieval. - `OUROBOROS_OR_PROVIDER` (resilience/repro presets) routes OpenRouter providers for rate-limit resilience without losing prompt-cache warmth (gap-merged; never overrides the require_parameters / reasoning-continuity pins), behind a supports_message_cache_control predicate. Answer integrity: a tool-count-stamped latch recovers a produced FINAL ANSWER whose marker a later (un-grounded) round drops, while new tool work invalidates a stale latch (Q7 no-downgrade); acceptance review on the ADVISORY task surface stops over-failing a grounded answer (surface-keyed: majority-not-single-FAIL, no solved->DEGRADED on empty coach). The P3 commit/scope immune gate is untouched. Security: `user_files` honors OUROBOROS_USER_FILES_ROOT (jailed scratch home; '~'/'~user' and unnamed deliverables stay IN the jail); the authoritative observability blob is redacted by default (env-only OUROBOROS_OBSERVABILITY_KEEP_RAW opt-in) with an allowlist secret matcher that spares cognitive content (sha/commit/uuid/route_fp/model/answer). Capability: a generative context-window probe (public LLMClient.probe_oversized_context seam) empirically confirms a route's >=1M window from a FREE over-window reject — only on the explicit Max toggle/save, never auto-confirming a possibly-paid 200, fail-closed, bypasses a stale lazy cache; plus a cloud.ru route base_url fix. Bench: the GAIA adapter (devtools) stages attachments robustly, injects the FINAL ANSWER protocol, crash-isolates per-sample timeouts (+ server-side ceiling so a hung sample cannot orphan the shared queue), and exposes per-config knobs (vision slot, review models, web backend, budget, epochs) with cross-provider credential preservation. Version carriers bumped 6.45.5 -> 6.46.0; MAX_TOTAL_FUNCTIONS 3520 -> 3524 (reviewed single-purpose helpers); ARCHITECTURE/README updated. Reviewed to convergence (adversarial subagents + codex gpt-5.5 + real triad+scope) with a green full suite. 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.