D047 - Files first; OTLP export is an opt-in feature, not the substrate

decided ยท 2026-08-19

The instinct to reach for OTel/Grafana is right for a different shape of problem. The mismatch here is specific:

Where it does fit: observing the crunch harness itself over hours - run counts, success rate over time, where the loop is spinning. That is genuinely service-shaped with a human watching. So tracing-opentelemetry stays available behind a cargo feature: a flag, not a rewrite.

Supporting rules:

Trace is ring-buffered by default. Keep the last N million events in memory and flush only on failure or on demand. A successful run writes no trace at all; a failure yields the tail, which is the part that was wanted; a full trace is an explicit flag. Solves the disk problem and improves the diagnostics at once.

Retention: 72 hours, purged on startup, plus a manual purge command. A size budget acts as a second guard, since 72 hours of full traces could still fill a disk.

The crunch harness lives in this repo, not obSCEne - obSCEne is homebrew and has no direct relationship to the emulator. So the run report is a first-class output of orbistoun-service, and the CLI, GUI, and any future agent tooling all get it identically.

Consequence: tracing returns to the core crates as logging is written. It was pruned during the dependency cleanup (correctly - it was unused) and that now needs reversing per-crate, as each gains real log calls rather than speculatively.