ouroboros/devtools
Ouroboros 60a17a0a53 loop: bounded paid repeat after a typed post-dispatch transport death
A dispatched request whose socket died with a typed transport death (httpx
ReadError/WriteError/RemoteProtocolError or the requests ProtocolError/
RemoteDisconnected shape, via the explicit __cause__ chain; never a timeout,
status/body error, pre-dispatch failure, local provider or loopback route)
is provider_outcome_unknown and stays billed at its upper bound. The PRIMARY
main-loop round dispatch alone may now send it again at most twice per round,
each repeat a NEW execute_physical_attempt with its own ledger row, with a
4 s then 8 s deadline-aware backoff and a counter keyed by the round so the
wait episode's free redial cannot re-arm it. The retry decision is made
before the durable llm_api_error row is written, so retry_same_request is
truthful on every attempt and llm_non_retryable_same_request marks only the
exhaustion. Forced-final, fallback candidates, review, safety, probes, web
search, consolidation and Background Consciousness keep the default 0; the
global classifier is unchanged; BudgetExceeded propagates untouched.

Ratchet paydown in the same files: loop_llm_call.py folds the four copies of
the error-event identity block into one, drops the redundant kwargs that
_handle_main_llm_call_exception/_stop_after_llm_error received beside the
context that already carries them, and folds five consecutive pops into a
loop; loop.py hoists two function-local imports of an already-imported
module and reuses the direct_chat value it had already computed.
2026-09-04 02:00:40 +00:00
..
benchmarks loop: bounded paid repeat after a typed post-dispatch transport death 2026-09-04 02:00:40 +00:00
__init__.py feat(devtools-benchmarks): add official benchmark harnesses and workspace executor 2026-06-06 12:03:30 +03:00
README.md feat(devtools-benchmarks): add official benchmark harnesses and workspace executor 2026-06-06 12:03:30 +03:00

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 devtools only through a separate reviewed runtime plan.