pyronear / pyronear/pyro-annotator

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

Open
#313 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
0
Forks
1
Avg merge
1d 2h
Merged PRs (30d)
2

Description

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:

  • Skip alert is queue-only by design: POST /alert/skip 409s when every lane is ANNOTATED ("Alert is fully annotated — nothing to skip"). A skip row on a done alert would be visible in neither queue.
  • Add object is retired until the drawing flow is ready (#312), and was the only mechanism that could re-open a done alert.

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

  • #312 (retire add-object, nudge toward skip)
  • #297 (alert skip escape hatch)
  • #275 / #288 (FP→smoke promote — same "revise a settled decision" family)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing /localize/done/:id, the missed-smoke PATCH for has_missed_smoke, and the done-list predicates; compare them with the /alert/skip fully-annotated guard. Done means annotated alerts flagged after completion appear in a separate backlog or filter and can later re-enter through add-object without demoting finished lanes.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.