Skip to content

Missed smoke on annotated alerts: no recovery path once the alert is done #313

Description

@Chouffe

Gap

A reviewer on /localize/done/:id who spots smoke the AI (and both passes) missed can record it — the missed-smoke row PATCHes has_missed_smoke (since #312) — but nothing acts on it:

So an annotated-but-wrong alert is stuck: complete by stage, known-incomplete by flag.

Option considered and rejected: demote-then-skip

Move lanes back to a pre-annotated stage so the alert passes the skip guard and lands in the Skipped view. Rejected because:

  • The skip overlay is deliberately insert-only and never touches lane state (its whole safety story); pairing it with stage demotion inverts that and makes unskip lossy.
  • Lane stages feed other machinery (sibling auto-annotation fan-out, group sweep, done-list queries); rewinding ANNOTATED lanes risks retriggering it.
  • After unskip the alert returns to the localize queue, where the only real fix (drawing the missed object) still doesn't exist.

Proposed shape: the flag is the backlog

  • Keep skip queue-only, untouched.
  • Treat ANNOTATED && has_missed_smoke as its own small backlog: a "Flagged after done" view or filter on the localize done list — the Skipped view's sibling, not its tenant. No schema change needed; the flag is already recorded.
  • When add-object ships, that backlog is the worklist: adding a lane to a done alert spawns it at the bbox stage, so the alert is no longer fully annotated and re-enters the localize queue via the existing predicate — no demotion of finished lanes.

Related

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