Skip to content

Sync upstream Silo-Server main (#1681) - #204

Merged
JonahMMay merged 2 commits into
mainfrom
sync/upstream-2026-09-29c
Sep 29, 2026
Merged

JonahMMay merged 2 commits into
mainfrom
sync/upstream-2026-09-29c

Conversation

@JonahMMay

Copy link
Copy Markdown

Merges upstream Silo-Server#1681 (prepared downloads keep every audio track and subtitle).

  • Conflicts: only import blocks in internal/downloads. Resolved as the union of both sides, with the Silo module path rewritten and goimports run. The get_system_info_ok fixture was regenerated.
  • Checked for dropped Prairie code: no lost Prairie hunks, and every media route is declared.
  • Verified locally: go vet and go test pass for internal/downloads; openapi and fixtures were regenerated. CI covers the rest.

AI disclosure

Written with Claude Code, model claude-opus-5-5.

🤖 Generated with Claude Code

Rhainland and others added 2 commits September 29, 2026 16:50
…oads (Silo-Server#1681)

* fix(downloads): keep every audio track and subtitle in prepared downloads

Remux and transcode downloads kept only the first audio track and dropped
all embedded subtitles. Prepared MP4s now carry every audio track and the
plain-text subtitles as MP4 timed text; ASS/SSA and PGS tracks are offered
as manifest sidecar files extracted from the source through the shared
subtitle cache. A track recipe version and tracks_v1 queue states keep
older workers and transcode nodes from producing the legacy layout.

* fix(downloads): freeze prepared audio tracks and copy only MP4-safe codecs

A ready multi-track download's manifest now describes the audio tracks
recorded when the file became ready, not the source's current probe, so
replacing and rescanning the source cannot advertise tracks the MP4 lacks.
A viewer selection that no longer names the same-language track falls back
to the file's default.

Remuxes copy an audio track only when MP4 can store its codec; a negotiated
passthrough codec such as TrueHD, DTS, or PCM is encoded to AAC instead of
failing the mux. The track-recipe migration's column additions are now
idempotent so a rerun after a partial Up succeeds.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore(api): refresh contract fixture after rebase

* chore(downloads): name prepared track codec and layout constants

---------

Co-authored-by: Quick104 <31828688+Quick104@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 29, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 4 seconds.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: d53ee0a5-be1b-443f-8a3f-b92c2cacca99

📥 Commits

Reviewing files that changed from the base of the PR and between 8a57aa0 and 52a46f5.

📒 Files selected for processing (31)
  • contracts/api/v2/fixtures/get_system_info_ok.json
  • contracts/api/v2/openapi.json
  • docs/architecture/playback-protocol-v3.md
  • docs/downloads-api.md
  • internal/api/router.go
  • internal/apiv2/download_delivery.go
  • internal/downloadprepare/transport.go
  • internal/downloads/artifact.go
  • internal/downloads/artifact_repo.go
  • internal/downloads/artifact_repo_test.go
  • internal/downloads/artifact_test.go
  • internal/downloads/artifacts.go
  • internal/downloads/manifest.go
  • internal/downloads/manifest_test.go
  • internal/downloads/offline.go
  • internal/downloads/remote_preparer.go
  • internal/downloads/remote_preparer_test.go
  • internal/downloads/repo.go
  • internal/downloads/repo_managed_test.go
  • internal/downloads/service.go
  • internal/lang/lang.go
  • internal/lang/lang_test.go
  • internal/playback/prepare_file.go
  • internal/playback/prepare_tracks.go
  • internal/playback/prepare_tracks_test.go
  • internal/playback/protocol_v3.go
  • internal/playback/transcode.go
  • internal/transcodenode/server.go
  • internal/workmetrics/queues.go
  • migrations/sql/20260928222330_fence_track_recipe_artifact_workers.sql
  • web/src/api/v2/schema.ts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@JonahMMay
JonahMMay merged commit 68ab3b3 into main Sep 29, 2026
18 checks passed
@JonahMMay
JonahMMay deleted the sync/upstream-2026-09-29c branch September 29, 2026 22:23
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