Skip to content

Honor nested filesystem naming rules for CLI downloads #615

Open

Description

@kvz

Why

CLI download collision reservations use the output root's filename rules. A destination inside that tree can be a different mounted filesystem with different case or Unicode normalization behavior. Results that are distinct at the root can then alias the same destination and overwrite one another.

Follow-up from #593 and #611. The dispatcher explicitly deferred per-filesystem and nested-mount rules from that PR so its download fixes can finish review.

Scenario

  1. Use a case-sensitive output root with a case-insensitive filesystem mounted at out/video/.
  2. Download linked HLS results whose meta.relative_path targets video/, with segment names such as Segment.ts and segment.ts.
  3. Root-based reservations treat those names as distinct, although the destination filesystem aliases them. The same mismatch is possible for Unicode normalization rules.

Resolve collisions using the naming rules of each actual destination filesystem, including paths whose parent directories do not exist yet. Preserve all linked playlist paths together or reject an unrepresentable bundle before publishing any of it. Keep coverage behavioral: simulate distinct naming rules for the root and mounted destination, then assert that neither result is overwritten.

This scenario was identified during review; no mounted-filesystem fix is included in #611.

🤖 Released by kvz on studio1/node-sdk since 2026-10-23 · resume: codex resume 01a168a6-bd0b-7d10-ae36-554185008cd9

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions