Refactor observation data pipeline to serialize once after collection and keep json.RawMessage throughout storage and API responses. This eliminates double-serialization and makes DB round-trips lossless. Key changes: - ObservationGetter.Get() adopts json.Unmarshal semantics (dest any) - ObservationSnapshot.Data uses map[ObservationKey]json.RawMessage - Add freshness-based observation cache (ObservationCacheStorage) that stores lightweight snapshot pointers, enabling cross-checker reuse of recent observations without re-collecting |
||
|---|---|---|
| .. | ||
| admin.go | ||
| app.go | ||
| insights.go | ||