Frame metadata explicit import#1763
Closed
PaulHax wants to merge 6 commits into
Closed
Conversation
Add a frameMetadata item marker as the arbitrary-name counterpart of the reserved sidecar basenames. Discovery lists marked items alongside name-declared ones, and postprocess accepts frameMetadataNames to mark uploaded files by direct name lookup (the sweep regexes never list a declared .txt). Marked items short-circuit the annotation classifier so an interrupted marking pass can never parse or remove a sidecar.
The Import card gains a Frame Metadata section, present when the platform provides importFrameMetadataFile. The picked file may have any name; the pick itself declares its role. A module-level invalidation signal lets the import refresh live Frame Info panels through the session cache.
Upload the picked file into the parent dataset folder and declare it via the postprocess frameMetadataNames param, mirroring the annotation import flow. The frameMetadata picker accepts csv/txt by extension because Windows browsers report CSV MIME as application/vnd.ms-excel.
Copy the picked file into the project auxiliary directory keeping its original basename and record it in meta.json frameMetadataFiles. Discovery lists declared files ahead of convention-named ones; for multicam they are shared across cameras like parent-root sidecars while camera-local files still win. Import-annotation errors now point at the Import button's Frame Metadata option.
PaulHax
force-pushed
the
frame-metadata-explicit-import
branch
from
July 17, 2026 02:07
d87e2fa to
f516472
Compare
Address the merged review of the arbitrary-name import path. The load-bearing change is that declaration is now keyed by the uploaded item id rather than the filename, which closes several web-path defects at once. - Declare by item id: postprocess param frameMetadataNames -> frameMetadataItemIds; the server loads each item, checks folder membership and extension, and marks all only after validating all (no partial marks, non-string ids rejected as 400). - Re-import now replaces in place: the web client deletes a prior same-name declared sidecar before uploading, so a corrected file is not stranded as "name (1)" while stale values persist. A same-name pending annotation CSV is left untouched. - The uploaded item is removed if postprocess rejects, so a failed import cannot strand a file for the next annotation sweep to misclassify and delete. - Precedence: declared (imported) sidecars sort ahead of reserved-name ones so an imported file wins column conflicts, matching desktop and the docs. - The viewer's Frame Metadata import section is gated on image-sequence/multicam media type, mirroring the sibling sections. - The Frame Metadata panel recovers after a failed refetch instead of sticking on error; a reserved-name import through Import Annotations now refreshes the panel. - Empty-file guard on web, boolean return type, shared file-extension constant and upload helper, restored desktop rename hint, and predicate/string dedup.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.