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

+9 -6
View File
@@ -346,12 +346,15 @@ switching the active class swaps pools instead of discarding them (REQ-172). The
per class and accumulates (REQ-182): exemplar changes share **one 250 ms debounce** that
re-runs the most recently touched class against its own pool and replaces only that class's
shapes — rapid alternation between classes re-runs only the last one — while the other
exemplared classes' results stay on screen and the canvas renders the union of every class
with a non-empty pool. Undo is the same re-run with the shortened pool, because SAM3 can
only append geometric prompts. 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);
Run Preview with examples runs the exemplared classes
sequentially and merges, without examples it is the unchanged full-set request. The
exemplared classes' results 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. Undo is the same re-run with the shortened pool, because SAM3 can
only append geometric prompts. 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 all
examples is then a plain full-set view again. Run Preview always refreshes the full-set for
every selected class first (with empty exemplars), then re-runs the exemplared classes
sequentially; drawing an example never triggers a full-set re-run. The
per-class overrides table also carries a **Container** checkbox (REQ-184) that toggles
`project_classes.container` through `PATCH /api/projects/{id} { containers: … }`. The same
table carries a **Copy** button (REQ-186): one click puts every selected class's effective