Files
rune/scripts
Nick 1cbf2b4b18
CI Pipeline / best-practices (push) Successful in 4s
CI Pipeline / documentation (push) Successful in 5s
Auto-label / priority-gate (pull_request) Skipped
Auto-label / auto-label (pull_request) Successful in 3s
CI Pipeline / gitea-offline (push) Successful in 15s
CI Pipeline / canary (push) Successful in 32s
CI Pipeline / type-check (push) Successful in 29s
CI Pipeline / lint (push) Failing after 24s
CI Pipeline / unit-tests (push) Successful in 57s
CI Pipeline / best-practices (pull_request) Successful in 2s
CI Pipeline / documentation (pull_request) Successful in 3s
CI Pipeline / lint (pull_request) Failing after 25s
CI Pipeline / canary (pull_request) Successful in 30s
CI Pipeline / gitea-offline (pull_request) Successful in 15s
CI Pipeline / required-checks (push) Successful in 1s
Spec gate (headless) / spec-gate (pull_request) Successful in 7s
CI Pipeline / unit-tests (pull_request) Successful in 51s
CI Pipeline / type-check (pull_request) Successful in 28s
CI Pipeline / required-checks (pull_request) Successful in 5s
feat(OBS-1): StageAttempt telemetry — per-attempt lifecycle, observational invariant (closes #287)
scripts/stage_telemetry.py:
- StageAttempt: attempt_id/event_id/stage/issue/process_id, started/finished
  ISO timestamps, terminal_status (COMPLETED|GATE_FAILED|FAILED|TIMEOUT|
  INTERRUPTED), observed windows (model/tool/gate/persistence) with
  monotonic pairs, counters (model_calls, tool_calls, repo_reads,
  external_queries, sources, retries, reconciliation, implementation
  corrections, ci_failures), provider tokens as UNKNOWN_NOT_EXPOSED when
  unavailable (never estimated-as-measured)
- TelemetryLedger: append-only attempts.jsonl — survives restart; every
  attempt (success AND failure) persists independently; persist() NEVER
  raises into the stage path (observational invariant, narrowed excepts)

Wired into StageExecutor.execute(): every attempt gets a lifecycle record
at the terminal path; duplicate no-ops are not attempts.

Explicitly non-additive: wall_time ≠ model_time + tool_time when MiMo waits
on tools or relay overhead overlaps — records carry window counts and an
overlap note; reports must distinguish exclusive/overlapping/residual.

Sanity matrix proven: success → fail → retry → successful retry, all four
attempts present independently with unique attempt_ids; restart/reload
preserves them; DUPLICATE no-ops not recorded; telemetry-absent runs produce
identical process decisions (observational invariant as a test).

8 tests. Full suite 1138 passed (was 1130). Ruff clean; lint counts at
baseline (80/352).
2026-09-09 16:48:26 +01:00
..