Skip to content

Persist multicam camera order and align its fallback across platforms#1759

Merged
BryonLewis merged 1 commit into
mainfrom
fix/sort-multicam
Jul 16, 2026
Merged

Persist multicam camera order and align its fallback across platforms#1759
BryonLewis merged 1 commit into
mainfrom
fix/sort-multicam

Conversation

@romleiaj

Copy link
Copy Markdown
Collaborator
  • Desktop now persists cameraOrder in dataset meta at import (the dialog's order when given, seeded from the EO-first/IR-last name heuristic otherwise), matching what the web import already stored.
  • New shared dive_utils.multicam_camera_order gives the girder server and worker the same EO-first/IR-last fallback the clients use, so legacy datasets without a stored order agree everywhere too.

Fixes an ordering inconsistency that made camera-positional pipeline
inputs unpredictable: desktop discarded the import dialog's camera order
and re-derived it from a name heuristic on every read, and for datasets
without a stored order the girder server fell back to dict insertion
order while the web client displayed the EO-first/IR-last heuristic. The
cameras a 2-cam/3-cam pipeline received as input1/input2/... could
therefore differ from the order shown in the UI, and differ between
desktop and web for the same dataset.

- Desktop now persists cameraOrder in dataset meta at import (the
  dialog's order when given, seeded from the EO-first/IR-last name
  heuristic otherwise), matching what the web import already stored.
- New shared dive_utils.multicam_camera_order gives the girder server
  and worker the same EO-first/IR-last fallback the clients use, so
  legacy datasets without a stored order agree everywhere too.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@romleiaj
romleiaj requested a review from BryonLewis July 15, 2026 18:38
@BryonLewis
BryonLewis merged commit 9f57408 into main Jul 16, 2026
3 checks passed
@BryonLewis
BryonLewis deleted the fix/sort-multicam branch July 16, 2026 12:13
mattdawkins added a commit that referenced this pull request Jul 16, 2026
Brings in 8 commits, including suppression regions (#1760), the
multicam camera order fix (#1759), signal-killed pipeline handling
(#1752, #1761), the annotation rollback tombstone fix (#1751), CSV note
columns (#1753), and the vitest/ws dependabot bumps.

Viewer.vue merged cleanly: f557b21 restored the SealTK wiring that
merge 8b0ab93 had dropped, so the file no longer conflicts with main.

Two conflicts, both from suppression regions landing on main while
viame/master already carried its own copy:

* LayerManager.vue -- keep viame/master's ../utils import. main's copy
  of this file diverged and no longer needs those symbols, but the
  merged body still calls geojsonToBound, isRotationValue,
  ROTATION_ATTRIBUTE_NAME and featureHasSegmentationPolygon.
* TypeSettingsPanel.vue -- take main's suppression row (adds mt-5).

package.json resolves to main's vitest 4.1.10 bump (viame/master never
changed it off the 3.2.4 base) while keeping onnxruntime-web.

Verified: client tests 611/611 passing on Node 22, eslint clean, desktop
app builds and runs with no console errors, and on a multicam stereo
dataset ImportAnnotations still completes setup with no Annotation Set
combobox and a live openUpload.

Note: vitest 4 requires Node ^20 || ^22 || >=24, so `npm test` now fails
to start on Node 18. client/README.md still says "Requires Node 18+".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants