Skip to content

feat(otel): dashboard restoration — recipe, CI, ADR-090#143

Merged
slabgorb merged 8 commits intomainfrom
feat/otel-dashboard-restoration
Apr 25, 2026
Merged

feat(otel): dashboard restoration — recipe, CI, ADR-090#143
slabgorb merged 8 commits intomainfrom
feat/otel-dashboard-restoration

Conversation

@slabgorb
Copy link
Copy Markdown
Owner

Summary

  • Fixes just otel recipe (was pointing at deleted playtest.py)
  • Adds CI smoke workflow to catch future script-rename drift
  • Authors ADR-090 (OTEL Dashboard Restoration) and amends ADR-031 with a Python-port section

Context

Companion to:

  • slabgorb/sidequest-server PR (Phase 0–3 implementation: translator routing, turn_span, validator pipeline)
  • slabgorb/sidequest-ui PR (watcher.ts header refresh)

Plan: docs/superpowers/plans/2026-04-25-otel-dashboard-restoration.md
Spec: docs/superpowers/specs/2026-04-25-otel-dashboard-restoration-design.md

Test plan

  • just otel 9999 binds and serves cleanly (verified locally; kill-after-3s smoke pass)
  • python3 -c "import yaml; yaml.safe_load(open('.github/workflows/just-otel-smoke.yml'))" parses
  • python3 scripts/regenerate_adr_indexes.py runs cleanly (90 ADRs)
  • grep 090 docs/adr/README.md CLAUDE.md confirms index entries
  • (for the merger) confirm GitHub Actions runs the smoke workflow on first PR push if Actions are enabled on this repo

slabgorb and others added 8 commits April 25, 2026 04:07
Design for the proper architectural fix to per-session GameSnapshot
divergence in multiplayer. Replaces the band-aid
_merge_peer_state_into_snapshot helper with a single canonical snapshot
held on SessionRoom and shared by every WS session bound to the slug.

Constraint that simplifies scope: no saved MP games exist on disk
(multiplayer has never worked end-to-end). No migration path needed.
Band-aid + its 5 merge tests are deleted in the same change.

Out of scope: ADR-028 LLM rewrites, per-recipient narration region
filtering, PlayerState overlay struct.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…port)

Step-by-step plan implementing the spec at
docs/superpowers/specs/2026-04-25-shared-room-snapshot-design.md.
9 tasks, 8 commits, ends at 739 passed / 2 skipped on the server +
agents sweep. Sequential single-developer plan suitable for inline
execution as the Bicycle Repair Man dev agent.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Forensic audit found four root causes of the OTEL dashboard regression
since the Rust→Python port: broken `just otel` recipe, ~80% dead SPAN_*
constants, missing Layer-3 narrative validator, and impoverished
translator. Design specifies a four-phase faithful port that restores
full parity with the Rust contract.

Approved interactively via /superpowers:brainstorming. Self-review pass
fixed an emit-double on json_extraction_result (translator owns; not
the validator) and reclassified SPAN_CONTENT_RESOLVE to FLAT_ONLY due
to volume.

Next: writing-plans for implementation plan.
- Update `just otel` to call `playtest_dashboard.py` via `uv run` instead of
  the deleted `playtest.py --dashboard-only`
- Add `__main__` entry point with argparse to `playtest_dashboard.py`
  (it was a library-only module with no CLI entry point)
- Add `websockets>=12.0` and `rich>=13.0` to orchestrator `pyproject.toml`
  (required by playtest_dashboard.py, previously missing from manifest)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add observability tag, replace stale Rust-only opening blockquote, and
append Python-port note pointing at the canonical telemetry implementation
files in sidequest-server.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Pairs with the design spec at
docs/superpowers/specs/2026-04-25-otel-dashboard-restoration-design.md.
This is the 25-task plan (Phase 0–4) executed by the OTEL feat branches
across orchestrator, sidequest-server, and sidequest-ui.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@slabgorb slabgorb merged commit 35b7c09 into main Apr 25, 2026
1 check passed
@slabgorb slabgorb deleted the feat/otel-dashboard-restoration branch April 25, 2026 20:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant