Title: Categorize remote-fetch failures and surface a "rate limited" pill instead of silent blanks #36

Open
opened 2026-05-23 20:55:25 +00:00 by coilysiren · 0 comments
Owner

Originally filed by @coilysiren on 2026-05-15T03:18:15Z - https://github.com/coilysiren/repo-recall/issues/165

Problem

When a gh call fails, the dashboard renders the affected remote-state columns as blank. There is no way to tell whether the repo genuinely has no PRs/issues/CI, the repo is unauthenticated, the repo is missing, or GitHub rate-limited us. All four states look identical to the user.

Where

src/ingest/github/{issues,pulls,ci_runs}.rs - failures collapse into None with a debug! log.
src/display/routes/templates.rs - no failure-state pill in the existing PILL bundles.
Proposed

Distinguish failure modes at the ingest boundary by inspecting gh exit code + stderr (404 vs 401/403 vs 403+rate-limit headers vs other). Surface the categorized state up to the dashboard as a discriminated enum (e.g. RemoteFetchState::{Ok, Missing, Unauthorized, RateLimited, Error}) and render a "rate limited, paused" pill instead of a silent blank when relevant.

_Originally filed by @coilysiren on 2026-05-15T03:18:15Z - [https://github.com/coilysiren/repo-recall/issues/165](https://github.com/coilysiren/repo-recall/issues/165)_ Problem When a gh call fails, the dashboard renders the affected remote-state columns as blank. There is no way to tell whether the repo genuinely has no PRs/issues/CI, the repo is unauthenticated, the repo is missing, or GitHub rate-limited us. All four states look identical to the user. Where src/ingest/github/{issues,pulls,ci_runs}.rs - failures collapse into None with a debug! log. src/display/routes/templates.rs - no failure-state pill in the existing PILL bundles. Proposed Distinguish failure modes at the ingest boundary by inspecting gh exit code + stderr (404 vs 401/403 vs 403+rate-limit headers vs other). Surface the categorized state up to the dashboard as a discriminated enum (e.g. RemoteFetchState::{Ok, Missing, Unauthorized, RateLimited, Error}) and render a "rate limited, paused" pill instead of a silent blank when relevant.
coilysiren added
P3
and removed
P2
labels 2026-05-31 07:01:14 +00:00
Sign in to join this conversation.
No labels
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/repo-recall#36
No description provided.