ouroboros/devtools
Ouroboros d6bfb1f598 feat(chat): per-message owner surface fact and process presentation posture
Ouroboros advised a desktop-app owner to reload 'the browser tab' because the
runtime had no fact about the client UI: the launcher never exported the
retired OUROBOROS_DESKTOP_MODE flag, and messages carried no sending-surface
provenance at all.

Two additive facts, no device taxonomy (the model classifies raw observables):
- launcher.py exports OUROBOROS_PRESENTATION (desktop_window|browser_fallback;
  absent=web) — the process posture, rendered as runtime_env.presentation.
- The SPA measures raw observables AT SEND TIME (pywebview bridge, ua,
  viewport, matchMedia booleans, captured_at) and attaches client_surface to
  each chat frame; the gateway normalizes it through the closed-key bounded
  ouroboros/client_surface.py SSOT, stamps received_at, carries it in
  task_metadata, persists it as an optional chat.jsonl column, and renders it
  as the owner_client context fact. Non-web ingress gets a host-stamped
  {channel: <source>} fallback; promotion/steering/mailbox carry it, and the
  loop notes a mid-task surface change only when the surface IDENTITY differs
  (viewport resize is not a device change), with a neutral note for the first
  observed fact. SYSTEM.md documents the semantics and the pywebview product
  facts (no Cmd+R, SHA auto-reload).

Adversarial waves 1-2 are folded in: Infinity viewport crash at ws ingress,
strict booleans, no-identity facts never mint change notes, provenance-honest
prompt wording, behavioral producer tests, send-site and received_at pins.
client_surface helpers live in their own module (message_bus/loop/chat.js stay
inside their ratchet sizes).
2026-08-18 05:54:03 +03:00
..
benchmarks feat(chat): per-message owner surface fact and process presentation posture 2026-08-18 05:54:03 +03: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.