OptionalclosedBy?: stringOptionalopenedAt?: stringWhen the PR was opened (#1461). Carried from the Search API's
created_at so close detection can persist it into the outcome ledger.
Optional: digests persisted by older producers don't have it.
OptionalopenedAt?: stringWhen the PR was opened (#1461). Carried from the Search API's
created_at so merge detection can persist it into the outcome ledger.
Optional: digests persisted by older producers don't have it.
OptionallastOptionalofflineOptionalpartialLabels of sub-fetches that degraded to empty fallbacks during this data build, plus persistence steps that failed to save (#1447). Non-empty means one or more background calls failed and the corresponding sections of the response are approximations (stale or zero'd) rather than authoritative. The SPA surfaces this as a banner so users know the dashboard is showing partial data. See #1035.
OptionalclosedBy?: stringOptionalopenedAt?: stringWhen the PR was opened (#1461). Carried from the Search API's
created_at so close detection can persist it into the outcome ledger.
Optional: digests persisted by older producers don't have it.
OptionalopenedAt?: stringWhen the PR was opened (#1461). Carried from the Search API's
created_at so merge detection can persist it into the outcome ledger.
Optional: digests persisted by older producers don't have it.
Optionalvetted
Shape of the JSON payload served by
GET /api/datafrom the dashboard HTTP server. Single source of truth (#965) — imported by dashboard-server.ts, which previously redeclared this interface inline and so silently drifted whenever this module changed shape.