Skip to content

unreachable_project should require K consecutive fetch failures, not flip on the first (gh#48 follow-up) #70

Description

@magnificentlycursed

Follow-up to #48 / PR #54.

#48 fixed the dead unreachable_project alert: poll_project now sets projects.status='error' when the clone is gone/unreadable or a fetch fails with no local hub data, and clears it to active on a successful poll. A transient fetch failure over existing local hub data deliberately stays active (no flap) — good.

But DESIGN-CROSSLINK-DASHBOARD.md specifies unreachable_project as "git fetch failing for > K cycles" — a consecutive-failure threshold — whereas the current implementation flips to error on the first cycle for the no-local-data case. On intermittent connectivity that can flap the tile/alert on a single dropped fetch.

Fix: track a per-project consecutive-fetch-failure counter and only raise unreachable_project after K consecutive failures (K configurable, matching the design doc), resetting on any success. This aligns the implementation with the documented "> K cycles" contract and is the follow-up named in PR #54's body.

Authored by Claude Code on behalf of @magnificentlycursed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions