Disciplines · Proposals

YSD-19025 — What a fresh install bundles for the cold start

all nineteen parts were remote-fetch and every one of them optional, so a fresh install's first pass rested on a network call and the readiness report was a universal over an empty set.

7sections3 minread

On this page
  • Status: approved (2026-08-15)
  • Priority: EXT — non-blocking for the seed registers, blocking for the offline first pass
  • Decision owner: @GreyChimp
  • Drafted: 2026-08-15 by Claude Code (Opus 5)
  • Approval: ruled by @GreyChimp on 2026-08-15; outcome recorded in decision-log.json; review by 2027-08-15

Question#

coldStartOfflineReadiness reported that no corpus part carries the cold start: all nineteen parts were remote-fetch and every one of them optional, so a fresh install's first pass rested on a network call and the readiness report was a universal over an empty set. What does a fresh install ship?

Recommendation#

Bundle one complete short film plus its licence artefacts, so the player, timeline and frame-pinning paths work offline on first run.

Ruling#

Approved by @GreyChimp on 2026-08-15: bundle Sintelsintel-render-1080p, residence: 'bundled', requiredForColdStart: true — and accept the 1.18 GB install cost.

The size was ruled on knowingly, after a cheaper option was priced and rejected.

Options considered#

  • Elephants Dream 480p (99 MB) — the obvious choice on size, and rejected on accessibility. YSD-14179 refuses a required moving image with no audio alternative, because the cold start is the one path with no alternative route. ED's published container carries no subtitle stream (probed), nothing is published beside it in download.blender.org/ED/ (directory listed), and the corpus's two candidate subtitle sets were already declined as third-party contributions — one of the Tears of Steel files is named "please-review", and every Pioneer One filename ends "Addic7ed.com". A cheaper cold start would have been an inaccessible one.
  • The paper trail only — rejected by the owner: documents need no audio alternative and would have passed easily, and the first pass would then exercise none of the time-based paths the workspace is for.
  • Nothing bundled; record that first run needs the network — rejected: it states the problem rather than solving it.
  • Sintel, 1.18 GB — approved. It is the only film in this corpus whose licensor-published container carries an English caption track: ten subtitle streams ride inside the MKV the Blender Foundation publishes and states an MD5 for. The 720p is offered only as a 681 MB zip, so 1080p is also the smallest form of the film that carries them.

Consequences#

  • The corpus gained a way to say that a track lives inside a part. embeddedTracks on a part declaration, with EmbeddedAccessibilityTrack modelling stream index, kind, language and codec. The alternative was one of two lies: a fabricated caption part whose bytes are a stream nobody publishes at a URL, or a report that a film shipping captions ships none. The rule that an alternative must be its own declared work is about a file somebody else wrote, and it does not reach a stream inside the licensor's own release.
  • The declaration is probed, not trusted. open-corpus-tracks.network.spec.ts runs ffprobe against the published locator and requires the declared index to be a subtitle stream of the declared codec and language. Declaring stream 2 instead of stream 3 fails it — that index is the German track.
  • One accessibility gap remains and is reported rather than absorbed. Sintel ships no audio description, no corpus film does, and writing one is original work by a person. seedAccessibilityIssues still refuses on that ground, and a spec asserts both halves: with the embedded track the captions issue is gone, without it the captions issue returns. A cold start that reported itself accessible here would be telling a blind learner it had a route it does not have.
  • The seed reports are now tested against the catalogue that ships. Every seed assertion in the library ran over hand-built manifests until this change, which is why the empty-set defect survived for months.

Machine-enforced outcome#

Exactly one part carries the cold start, it is bundled rather than fetched, its captions come from inside the licensor's own container, and the audio-description shortfall still refuses.

Control in force#

coldStartOfflineReadiness no longer raises nothing-carries-the-pass, and seedAccessibilityIssues still returns a blocking issue for the missing audio description. Both are asserted over OPEN_CORPUS_CATALOG rather than a fixture.