Skip to content

Dashboard's unknown card carries the raw reader error, not the shared skip classification #227

Description

@jitokim

Address: internal/serve/card.go:263return runCard{RunID: runID, State: stateUnknown, Error: err.Error()}

The briefed claim — "serve's card builder emits the old skip prose inside its JSON payload" — does not hold. There is no skip prose anywhere in internal/serve: brokenCard sets Error: err.Error(), the reader's raw error, and the dashboard drops no run (listRunIDs returns every directory), so it has nothing to summarise. Machine-readable output gaining human prose is therefore not the defect here, and DESIGN.md now says so deliberately ("its card carries the reader's error in a JSON field a machine reads — human prose is not added there", DESIGN.md:1806).

What the card does lack is the shared classification. runs list now tells an operator whether a broken directory is damage (unreadable run files) or merely an old schema (written by an incompatible snapshot schema); the card says only state:"unknown" plus an opaque error string. The dashboard is the one surface where the operator cannot tell "261 old runs" from "261 corrupt runs".

The fix is a reason field on runCard fed by runstatus.ClassifySkip(err) — an enum a machine reads, not a sentence — leaving Error exactly as it is.

Status: substantiated for the address and for the corrected description. The briefed framing (old prose in the JSON payload) is unsubstantiatedrg -n "skipping run" internal/serve returns nothing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions