JSON view returns populated-list / zeroed-stats during warmup with no staleness signal #54
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-05-09T05:12:54Z - https://github.com/coilysiren/repo-recall/issues/70
The JSON view at
/?format=jsoncan return a "populated repo list, zeroed stats" state during dashboard warmup, with no field signaling that the per-repo / per-session subsystem hasn't finished hydrating. An agent that polls this endpoint will read the response as authoritative ("nothing dirty, no uncommitted, no CI failures") and skip real action items.Reproducer
Curl
/?format=jsonimmediately after starting the binary (or after a scan refresh trigger). On a cold/warming dashboard the payload looks like:But the HTML view at
/(rendered from the same request handler, presumably) is already showing populated session counts, commit counts, and uncommitted pills. ~5 seconds later, refetching the same JSON URL returns fully-populated stats.Why this matters
generated_atandlast_scanwere both fresh (1778302344/1778302211) so a freshness check would have falsely passed. There is nopopulated: false, nowarming: true, no HTTP 503, nothing to tell a programmatic consumer "this snapshot is incomplete, retry."Options
populated: boolorstate: "warming" | "ready"top-level field. Agents check it. HTML view ignores it.The fourth one is the meta-improvement: figure out why the two render paths diverge during warmup at all.
Concrete trigger
This was caught when an agent (Claude) hit the dashboard right after a session start and reported "no uncommitted changes anywhere" while the user's browser was simultaneously showing 19 dirty repos.