Skip to content

Separate HLS bundles sharing an upload in merged result Steps #619

Open

Description

@kvz

Why

Two independent HLS encodes of one uploaded video can be combined into a final /file/filter or storage Step. Their results retain the same original_id, so upload identity alone cannot distinguish their linked bundles. If their playlists or segments use the same relative paths, the CLI rejects the ambiguous results instead of downloading both bundles.

Follow-up from council round 11 on #611, which closes #593. The dispatcher authorized filing broader findings separately during the final two review rounds. Resolving originating bundle identity across merged Steps requires a separate change.

Reproduction

Create two /video/adaptive bundles from one upload and combine their outputs in one final result Step. An equivalent fake Assembly result is:

{
  "combined": [
    {"original_id":"upload","original_name":"clip.mp4","name":"master.m3u8","url":"https://example.test/a-master","meta":{"relative_path":""}},
    {"original_id":"upload","original_name":"clip.mp4","name":"segment.ts","url":"https://example.test/a-segment","meta":{"relative_path":"video"}},
    {"original_id":"upload","original_name":"clip.mp4","name":"master.m3u8","url":"https://example.test/b-master","meta":{"relative_path":""}},
    {"original_id":"upload","original_name":"clip.mp4","name":"segment.ts","url":"https://example.test/b-segment","meta":{"relative_path":"video"}}
  ]
}

The current planner groups this Step by original_id, detects duplicate linked paths, and reports Assembly results have duplicate relative paths. Both sets of playlist references need their own complete destination namespace. Determine originating bundle identity before validating duplicate paths, without guessing that arbitrary file order identifies a bundle. Keep the rejection for genuinely ambiguous or duplicate linked paths so no result silently overwrites another.

Add a CLI behavior regression that downloads both bundles, reads their playlist references, and confirms that the distinct segment bytes remain reachable.

🤖 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