fix: exemplar draw keeps other classes' full-set preview (REQ-182 amended)

- AutoAnnotateModal: render merges last full-set detections for
  non-exemplared classes with conditioned results for exemplared ones
  (selected-not-exemplared filter); drawing an example no longer clears
  the other classes' detections
- Run Preview now always refreshes full-set first (exemplars: []) then
  re-runs exemplared classes
- docs: REQ-182 amended (merge semantics), design/ui-spec/tasks synced
This commit is contained in:
asus committed 2026-10-02 15:20:46 +07:00
1 parent 8fb65d2de9
commit 8f41c6c85a
5 files changed
+59 -38

No files matched your search

+8 -5
View File
@@ -485,11 +485,14 @@ them all. Adding, undoing or clearing an exemplar records the touched class and
single revision counter — **one shared debounce** across all classes, 250 ms — which re-runs
the most recently touched class against its own pool and replaces only its shapes, so rapid
alternation between classes re-runs only the last one; the other exemplared classes' results
stay on screen and the canvas shows the union of every class with examples. Classes without
examples contribute nothing while any example exists; Run Preview with examples runs those
classes sequentially and merges, and with none it is the plain full-set preview. Clearing the
last example sends no request and restores the plain full-set preview (the session's last
full-set run, blank if none ran yet). Drawing a box *is* the question and the redrawn
stay on screen and the canvas **merges** (amended REQ-182): exemplared classes contribute
their pool-conditioned results (replacing their own full-set boxes), every other selected
class keeps the detections of the last full-set run on that frame. Classes without examples
keep those detections on screen; Run Preview always refreshes the full-set first (empty
exemplars), then re-runs the exemplared classes sequentially — drawing an example never
triggers a full-set re-run. Clearing a class's last example sends no request and returns
that class to its full-set detections (blank if no full-set run covered it); clearing them
all is a plain full-set view again. Drawing a box *is* the question and the redrawn
preview is the answer, so no button press sits between them. Re-running is cheap because
`set_image` is already cached for this frame — only the grounding head runs.