Skip to content

v2.50.0

Choose a tag to compare

@samuelgursky samuelgursky released this 12 Jun 02:21

The last JSON-fed readers now source from the DB-canonical analysis store. Consistency/perf hygiene, not a behavior change — the JSON export is lockstep with the DB, so this is shape-preserving by construction.

Changed

  • summarize_reports aggregates from the DB (canonical blob + human overlay) when every report dir on disk is covered by an ingested clip row. Pre-v9 roots and mixed roots (some clips not ingested) fall back wholesale to the JSON walk — a partial DB view would silently under-report. The summary gains a "source": "db"|"json" observability key; the F1 provenance map (source_reports / missing_reports) is unchanged.
  • build_analysis_index sources local reports from the DB instead of re-parsing every analysis.json. Job-linked external report paths (their rows live under another project's DB) and pre-v9 dirs keep the JSON read. The FTS schema and the query surface are identical; the result gains report_sources counts.

Validation

  • DB-vs-JSON parity tests assert semantic equality of both paths (summary, index counts, FTS query results, normalized ordering), plus wholesale-fallback regressions for mixed and pre-v9 roots.
  • Live-validated on the sample analysis root: summary parity, index-count parity, and identical FTS results for both sources. Offline suite at 1177.