From 9a27485bce43ad6ac2abb182b2796c29e729c276 Mon Sep 17 00:00:00 2001 From: Matt Dawkins Date: Wed, 23 Sep 2026 20:35:57 -0400 Subject: [PATCH 1/3] Lower a type's threshold so every single-frame text query result shows Results scoring under the current threshold were created but hidden. --- .../frontend/components/ViewerLoader.vue | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/client/platform/desktop/frontend/components/ViewerLoader.vue b/client/platform/desktop/frontend/components/ViewerLoader.vue index 3416f65c3..443974049 100644 --- a/client/platform/desktop/frontend/components/ViewerLoader.vue +++ b/client/platform/desktop/frontend/components/ViewerLoader.vue @@ -18,6 +18,7 @@ import context from 'dive-common/store/context'; import { usePrompt } from 'dive-common/vue-utilities/prompt-service'; import { SegmentationPredictRequest } from 'dive-common/apispec'; import { clientSettings } from 'dive-common/store/settings'; +import { resolveConfidenceThreshold } from 'dive-common/typeHierarchy'; import { isStereoscopicDatasetConfig } from 'dive-common/multicamDisplay'; import type { StereoAnnotationCompleteParams, @@ -35,7 +36,7 @@ import { segmentationPredict, segmentationStereoSegment, segmentationInitialize, segmentationIsReady, segmentationEnsureStarted, segmentationSam3Installed, - loadConfig, textQuery, + loadConfig, saveConfig, textQuery, runTextQueryPipeline, stereoEnable, stereoDisable, stereoSetFrame, stereoTransferLine, stereoTransferPoints, stereoMeasureLine, stereoAggregateLengths, @@ -577,6 +578,25 @@ export default defineComponent({ }, geoJsonFeatures.length > 0 ? geoJsonFeatures : undefined); }); + // Lower each returned type's threshold to its weakest result so every + // track the query just created is visible. + const trackFilters = viewerRef.value?.trackFilters; + if (trackFilters) { + const filters = { ...trackFilters.confidenceFilters.value }; + let lowered = false; + detections.forEach((det) => { + if (typeof det.score === 'number' + && det.score < resolveConfidenceThreshold(filters, det.label)) { + filters[det.label] = det.score; + lowered = true; + } + }); + if (lowered) { + trackFilters.setConfidenceFilters(filters); + saveConfig(props.id, { confidenceFilters: filters }); + } + } + await prompt({ title: 'Text Query Results', text: [`Created ${detections.length} tracks for objects matching "${text}".`], From 6c4716a64ff71fe92f0e8558ff1ca909faad6b23 Mon Sep 17 00:00:00 2001 From: Matt Dawkins Date: Wed, 23 Sep 2026 20:41:35 -0400 Subject: [PATCH 2/3] Stop tox writing the .venv redirect file that breaks uv run tox 4.64 writes it by default, and uv run then refuses server/.venv. --- server/tox.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/tox.ini b/server/tox.ini index 1f303471f..25aac872c 100644 --- a/server/tox.ini +++ b/server/tox.ini @@ -4,6 +4,8 @@ envlist = type testunit isolated_build = True +# uv run cannot use the .venv redirect file tox 4.64+ writes. +venv_redirect = false requires = tox-uv>=1.0.0 From ff29f9f444f1663e915b833136454f6b0c5fd8a1 Mon Sep 17 00:00:00 2001 From: Bryon Lewis Date: Thu, 24 Sep 2026 09:54:37 -0400 Subject: [PATCH 3/3] add message about the confidence change when complete --- .../desktop/frontend/components/ViewerLoader.vue | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/client/platform/desktop/frontend/components/ViewerLoader.vue b/client/platform/desktop/frontend/components/ViewerLoader.vue index 443974049..0a68c8ca1 100644 --- a/client/platform/desktop/frontend/components/ViewerLoader.vue +++ b/client/platform/desktop/frontend/components/ViewerLoader.vue @@ -580,10 +580,10 @@ export default defineComponent({ // Lower each returned type's threshold to its weakest result so every // track the query just created is visible. + let lowered = false; const trackFilters = viewerRef.value?.trackFilters; if (trackFilters) { const filters = { ...trackFilters.confidenceFilters.value }; - let lowered = false; detections.forEach((det) => { if (typeof det.score === 'number' && det.score < resolveConfidenceThreshold(filters, det.label)) { @@ -597,9 +597,17 @@ export default defineComponent({ } } + const resultText = [ + `Created ${detections.length} tracks for objects matching "${text}".`, + ]; + if (lowered) { + resultText.push( + 'Confidence thresholds for the matching types were lowered so these results are visible.', + ); + } await prompt({ title: 'Text Query Results', - text: [`Created ${detections.length} tracks for objects matching "${text}".`], + text: resultText, }); } } catch (error) {