Skip to content

MediaVersioning parseVersion treats _v<letters> as a version tag and mis-groups unrelated files #83

Description

@duremovich

From the 2026-07-03 comprehensive review. Blocks #29 (per-clip pin/rollback) — pin/rollback decisions key off this parse.

parseVersion treats any _v<suffix> as a version tag: rfind("_v") (src/project/MediaVersioning.cpp:65-83) matches _visual, _video, _version. intro_visual.mov → base intro, tag isual; groupKeyOf then collapses it with intro.mov into one group, and since an empty tag ranks lowest, intro_visual becomes the "latest" primary. Two unrelated files show as one MediaBin row, and dragging "intro" auto-rolls to intro_visual.

Also: mixed-alnum tags fall to lexicographic compare (:100-103) — _v2a sorts after _v10a; only pure-digit tags compare numerically.

Fix: require the tag to start with a digit (_v + digits, optional suffix), and make mixed tags compare numerically on the leading digits. While in the area: MediaBinWindow.cpp:539-549 keys the clip-derived-metadata cache by clip.filepath (logical) but looks it up by entry.originalPath (versioned) — keys never match for versioned entries, so the prefer-clip-metadata path is dead and always falls back to probe.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtier:coreLives in core (GPLv3, in-repo); always free, fully featured

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions