Skip to content

Release and App Store status

This page is the public source of truth for Labstream's distribution status and the release checks that can safely live in the repository. It does not contain signing identities, App Store Connect contact details, review credentials, tokens, private server addresses, or other secrets. Statements about processed builds and App Store Connect are repository records, not a live account query; verify them in App Store Connect again before any upload or submission.

Current status

The repository source is 1.7.2 (build 1) across all four app targets, with a matching PMSKit fallback. Local 1.7.2 correction archives have been built and signature-checked with stable Xcode 27; no 1.7.2 upload is recorded. These local correction products are not the original tagged binaries. The pre-integration clean correction set was built from 07fba33d; it must not be presented as a binary of the subsequently reconciled source. Local-main integration retains stop-item detachment, truthful proxy statistics, subtitle preference handling and safe plain-language error explanations. The older automatic P7 rewrite is superseded by the default-off DEBUG macOS experiment; prior local commits remain in history. Exact-source archives and aggregate report verification must be recorded separately before any authorized upload; prior archive sets are not substitutes. The latest recorded processed distribution remains the 1.6.1 (build 2) archive set at abd1ddcac351; keep the source version and the processed binary version separate when reporting release status.

Product Current source Latest recorded processed distribution
Apple Vision Pro (Labstream) 1.7.2 (build 1) 1.6.1 (build 2): the repository records a clean abd1ddcac351 archive uploaded and processed, selected for the platform version, and available to the internal TestFlight group. Physical TestFlight acceptance and review access remain pending.
iPhone and iPad (LabstreamMobile) 1.7.2 (build 1) 1.6.1 (build 2): the repository records a clean abd1ddcac351 universal iOS archive uploaded and processed, selected for the platform version, and available to the internal TestFlight group. Physical iPhone and iPad acceptance remain pending.
Apple TV (LabstreamTV) 1.7.2 (build 1) 1.6.1 (build 2): the repository records a clean abd1ddcac351 archive uploaded and processed, selected for the platform version, and available to the internal TestFlight group. Physical Apple TV acceptance remains pending.
Mac (LabstreamMac) 1.7.2 (build 1) 1.6.1 (build 2): the repository records a clean abd1ddcac351 archive uploaded and processed, selected for the platform version, and installed from TestFlight on a Mac. Launch and receipt/signature checks passed; deeper sandbox and live-host acceptance remain pending.

The 1.7.1 source milestone includes bounded DV/HDR delivery investigation and probe validation. The P7 HDR10-base candidate remains default-off and DEBUG-only on macOS; full-suite and cross-backend/hardware acceptance gates remain open in the DV investigation. No release tag, upload, or distribution is authorized by the version increment.

The four targets share the neutral org.labstream.Labstream bundle identifier and are intended for one App Store Connect universal-purchase record. The earlier private visionOS 1.6.0 build used a retired personal-namespace identifier; it is not the publication record for 1.6.1 and cannot be migrated because Apple freezes a record's bundle identifier after its first build upload.

The publication topology is one product record with four platform versions and four binary archives: the LabstreamMobile iOS archive covers both iPhone and iPad, while visionOS, tvOS, and macOS each use their own archive. Metadata, screenshots, build selection, review notes, and acceptance remain platform-specific even when the platforms share one purchase record. A platform must not be marked ready merely because another platform passed review.

The earlier recorded App Store Connect state included the shared app information, free price schedule, a Data Not Collected privacy answer, platform descriptions, review contacts, build selections, manual-release settings, and one privacy-safe synthetic placeholder screenshot for each submitted device family. Those screenshots prove the capture and upload path, but they are not the intended public product-page set. In that recorded state, app availability was not enabled. Licensed demo media, final screenshot capture and review, demo review access, review notes, physical-platform acceptance, storefront scope, Digital Services Act status where applicable, and final submission remain open.

1.7.2 is the current source marketing version (CFBundleShortVersionString). The number in parentheses is the App Store build number (CFBundleVersion). A new marketing version begins at build 1; each replacement upload for the same platform and marketing version must use a higher build number.

Current release audit and deferred scope

The 2026-09-15 disclosure audit is a historical source audit, not current account certification. Its wording and required-reason API fixes landed in PRs #329 and #328. The October 2026 continuation applied the owner-approved collection mapping and generated readable Xcode aggregate reports from all four fresh, distribution-signed local correction archives. The shared App Store Connect privacy label was published and reloaded to verify the seven declared data types, linked to users, with tracking off. Functionality is declared for all seven; user ID, device ID and product interaction also declare personalization. The tvOS binary manifest omits crash summaries because that MetricKit path is absent on tvOS.

This resolves the exercised blank-report generation problem, not every privacy or release gate. Received support storage outside GitHub and end-to-end demo database/log/edge/backup retention remain unverified. The updated Apple TV policy was saved for the next app version. All four App Store Connect version drafts now show 1.7.2, with descriptions that identify the separate optional demo service. Selected 1.6.1 (build 2) binaries were left unchanged; the new version drafts are not submission-ready. Review access remains unverified. The public policy website update is still pending: normal deployment requires trusted main; local integration is authorized, but no push or deployment has been performed. A fresh issue-state check found #325 already closed externally; that status is not evidence that the retention/storage uncertainties above were resolved. #326 remains open. Neither issue was closed by these checks.

Local integration validation passed 1,712 PMSKit Swift Testing cases plus 121 XCTest cases, 731 iPhone-hosted cases, 418 tvOS-hosted cases, semantic iPhone/iPad/TV fixtures, and a passive visionOS fixture. The isolated Mac fixture passed home/detail navigation; the single-worker full Mac suite passed 747 cases and a focused 20-case integration set passed three repetitions. Earlier default-parallel runs exposed season-metadata, artwork-admission and authorization-fixture deadline failures. The follow-up below removed unnecessary filesystem diagnostics and isolated fixture scheduling/storage assumptions; a fresh default-parallel Mac run and an independent repeat each passed all 747 tests across five repetitions. Earlier failing evidence is retained; the passing single-worker result was not used as a substitute for parallel validation. No new physical-device or source-matched live-backend acceptance is implied by this integration.

#259, disconnected cold-launch access to completed downloads, is deferred by user decision. Keep the issue open; deferral is not hardware acceptance. Do not advertise reliable offline cold launch as verified.

The licensed-media capture plan retains final screenshots, storefront attribution, age suitability and clean-install reviewer journeys as open gates. Recorded provenance is not a fresh deployed-catalog hash check.

1.7.2 release-candidate scope

The coordinated 1.7.2 (build 1) candidate includes the merged playback-error and bounded-cleanup work, required-reason uptime declaration, and current disclosure and screenshot guidance. PMSKit's fallback version matches all four app targets.

The release owner explicitly deferred these issues for this candidate on 2026-09-29:

  • #324: HEVC Rext 4:4:4 playback and the observed Jellyfin server-worker cleanup race;
  • #322: Emby P8 deep-seek investigation and remaining controlled validation;
  • #258: iOS player-chrome size/position changes and clipping.

These are accepted deferrals, not fixes or passing acceptance results. Keep the issues open and preserve their evidence. The previous #259 offline-cold-launch deferral also remains in effect. #331, Stats readability redesign, is low-priority follow-up and not a release blocker.

Candidate preparation does not close the physical-device, privacy/disclosure, signed-archive report, screenshot, reviewer-access, or Account Holder gates below. TestFlight upload and App Review submission require separate authorization.

Local correction validation

The parallel-stress follow-up separates cheap download counters from filesystem diagnostics. Health collection is now gated before work by logging enablement and its existing reporting cadence, and temporary-file bytes are collected only for an eligible active snapshot. Reattach also skips diagnostic-only enumeration when logging is off; cleanup/recovery authority is unchanged. Eligible enabled diagnostics still inspect the filesystem synchronously. Tests that only assert counters omit that inspection, startup fixtures own their parent directory and its sibling cleanup authority, and controlled home-rail completions wait for their corresponding publication before asserting a particular intermediate order. No production timeout, test assertion, or parallel-execution setting is relaxed by these corrections. The updated hermetic PMSKit run passed 1,713 Swift Testing cases plus 121 XCTest cases.

The continuation adds acknowledged Emby stop-before-reopen ordering and preserves failed cleanup authority for explicit Retry, together with relative-seek target handling and opt-in bounded HLS startup diagnostics. It does not prove server worker exit. See the ordering investigation for evidence limits.

After test-only event synchronization and manual-clock fixes, a clean-build default-parallel Mac suite passed all three repetitions: 737 distinct tests (781 parameterized cases per repetition). Earlier failing runs remain in local evidence rather than being discarded. Hermetic PMSKit, repository hygiene, iPhone/tvOS hosted tests, iPhone/iPad/tvOS semantic fixtures, and the passive visionOS fixture also passed in the continuation. Simulator evidence used installed beta runtimes with stable Xcode and does not certify stable-runtime or physical acceptance.

Per-backend Mac visual smokes and a user-reported in-place iPhone Emby smoke are partial acceptance only. Exact source-matched cross-backend parity, audible output, subtitles, next-episode behavior, broader source coverage, physical iPad/Vision Pro/Apple TV and TestFlight acceptance remain open. No physical Apple TV was available.

Coordinated publication sequence

For a new coordinated archive set or the first public release, use this order. If the neutral App Store Connect record already exists, verify it and add the required platform version instead of creating a duplicate record:

  1. In the Apple Developer account, confirm the neutral App ID and required capabilities, then make an Apple Distribution signing identity and platform-appropriate App Store provisioning available to Xcode. Do not commit certificates, private keys, profiles, account identifiers, or exports.
  2. Create the new App Store Connect app for org.labstream.Labstream, then add the visionOS, iOS/iPadOS, tvOS, and macOS platform versions to that one universal-purchase record. Do not reuse the retired personal-identity visionOS record.
  3. From the exact public release commit, produce and locally validate one archive each for Labstream, LabstreamMobile, LabstreamTV, and LabstreamMac. Confirm identity, version, build, entitlements, minimum OS, architecture, and device family before upload.
  4. Upload each archive and wait for App Store Connect processing. Treat warnings or missing platform associations as blockers; do not advance a different binary merely because it shares the version number.
  5. Establish the reviewer environment and its licensed sample-media inventory, then capture and privacy-review the final platform-specific screenshot sets. Complete shared app information plus platform metadata, build selection, privacy/export answers, review notes, and review access.
  6. Install processed builds through TestFlight on every submitted device family, starting from a fresh install for the identity boundary and sign-in checks. Record the platform-specific gates below.
  7. Add only accepted platform versions for review. The final submit action and storefront scope remain Account Holder decisions.

Reviewer environment

App Review needs a reproducible path that does not depend on a private home network, short-lived token, personal media library, VPN, or reviewer-created server. Prefer a dedicated review account and a small non-personal library whose media and artwork are licensed for this use. The environment must support the same backend choice and core browse/play journey documented in the review notes and remain available throughout review.

A public Jellyfin demonstration service may be evaluated as a candidate, but it is not automatically an acceptable dependency: confirm the operator permits App Review use, credentials are stable, Apple networks can reach it, and the sample library exercises the submitted clients. If any of those conditions is uncertain, run a dedicated review-only Jellyfin instance instead. Keep its credentials only in App Store Connect. Test the final instructions from clean installs on Vision Pro, iPhone, iPad, Apple TV, and Mac before submission.

The official stable demo is the first evaluation lane before provisioning new infrastructure. The 2026-08-22 evaluation recorded a passwordless shared account, Quick Connect, Movies/Shows/Music/Playlists, and a catalog containing public/open test media. It is useful for compatibility and screenshot trials, but it is not yet accepted as the final reviewer dependency: the shared account is mutable, downloads are disabled, service resets can interrupt sessions, and the project's permission for third-party App Store marketing screenshots still needs to be established. Labstream supports the demo's passwordless Jellyfin login as of issue #283.

Prefer a Labstream-controlled review instance with a deterministic catalog of original, public-domain, or appropriately Creative Commons media. Record every title, artwork source, license, attribution requirement, and permitted screenshot/review use in a repository manifest; do not use commercial movie or television artwork merely because a metadata provider can return it. The same catalog should drive automated screenshots and the reviewer journey so the captured UI matches the environment Apple can actually test.

Apple-platform release checklist

Repository and binary

Checked boxes below reflect the latest recorded evidence; re-verify external account, TestFlight, and App Store Connect state before relying on them for a new submission.

  • [ ] The release commit contains no credentials, private endpoints, signing files, diagnostic bundles, or personal media data, including in newly added files.
  • [ ] PMSKit hermetic tests, repository hygiene, strict MkDocs, and the affected native test matrix pass.
  • [x] The latest processed 1.6.1 (build 2) Release archives were produced for iOS/iPadOS, visionOS, tvOS, and macOS with the intended Xcode release and Apple Distribution signing; every archive reports the neutral bundle identifier and expected marketing version/build.
  • [x] The latest processed 1.6.1 (build 2) archives are reproducible from their exact public release commit. If that commit changes after a preflight archive, rebuild rather than treating the older archive as the submission binary.
  • [x] The latest processed 1.6.1 (build 2) platform archives pass Xcode validation and App Store Connect processing without compliance or binary warnings.
  • [x] Each selected 1.6.1 (build 2) App Store Connect build reports the intended minimum OS, device family, entitlements, and supported architecture.
  • [ ] Clean Release archives for the current 1.7.2 (build 1) source are produced, validated, and selected for every platform version.
  • [ ] A physical Vision Pro TestFlight smoke covers first launch, sign-in, browse, playback, seeking, subtitles, audio, Cinema, background/foreground, and diagnostics. Simulator smoke is useful but does not replace this gate.
  • [ ] Physical iPhone and iPad TestFlight smokes cover compact and regular-width navigation, sign-in, playback, downloads, lifecycle, diagnostics, and accessibility.
  • [ ] A physical Apple TV TestFlight smoke covers Siri Remote focus/input, sign-in, browse, playback, long-play behavior, audio/HDR routing, lifecycle, and accessibility. Downloads are intentionally absent from this platform.
  • [ ] A TestFlight Mac smoke covers sandboxed sign-in, browse, playback, keyboard/media keys, window lifecycle, downloads, diagnostics, and accessibility on the supported architectures.
  • [ ] The release commit is publicly available as corresponding GPLv3 source. Create the annotated coordinated tag vX.Y.Z only after the version commit exists and tagging is authorized.

Product-page metadata

  • [ ] App name, subtitle, category, age rating, description, keywords, copyright, and availability are complete and match the product that was tested.
  • [x] The description states that Labstream connects to a server selected by the user, provides no media, and is unofficial and unaffiliated with Plex, Jellyfin, and Emby.
  • [x] The public support URL and privacy-policy URL resolve over HTTPS: Support and Privacy.
  • [ ] Replace the staged single-image synthetic placeholders with final, reviewed screenshot sets for every required App Store device size; the Vision Pro set includes at least one 3840 × 2160 image. Apple permits up to ten screenshots and up to three optional app previews per supported size and localization. See Apple's current screenshot specifications before capture because requirements can change.
  • [ ] Final screenshots show only licensed demo media and contain no account, server, network, or personal information. At minimum, cover Home, library browsing, a title detail surface, and playback; add Downloads only on platforms that ship it and platform-specific features only where they are actually available.
  • [ ] Screenshot automation can reproduce the accepted set from clean fixture/review state for iPhone, iPad, Mac, Apple TV, and Apple Vision Pro, and the exported files pass the repository size/privacy manifest validator before upload.
  • [ ] Reconcile App Privacy answers with the exact candidate and actual service behavior. The historically recorded Data Not Collected answer is not certified by an empty manifest collection array. Resolve #325: project-operated review/demo records, retention enforcement, and optional feedback criteria. See the bounded privacy audit for proposed data-type mapping and owner approval gates. No App Store Connect answer is changed by documentation edits. Required-reason API declarations are a separate packaging check (#326), not a collection exemption.
  • [ ] Verify export-compliance answers against the exact candidate and linked dependencies. ITSAppUsesNonExemptEncryption remains false in source; this is not a new binary/account certification.
  • [ ] Evaluate any storefront accessibility feature claims on each submitted platform against Apple's criteria; source labels and passing tests alone do not establish support.

  • [ ] Inspect app/dependency privacy manifests and the Xcode aggregate privacy report from each exact signed Release archive (visionOS, iOS/iPadOS, tvOS, macOS). Confirm the SystemBootTime 35F9.1 declaration and its actual-use restrictions; unsigned/source checks do not close this gate. See packaging verification and issue #326.

TestFlight and App Review

  • [x] The recorded TestFlight beta description, feedback contact, and What to Test text are current. Internal builds remain available for 90 days; Apple currently permits up to 100 internal App Store Connect users. See the current TestFlight overview.
  • [x] Review contact information is complete in App Store Connect. Do not commit it here.
  • [ ] Because the app requires sign-in, App Review has a stable, non-expiring demo path and clear steps for choosing a backend, signing in, browsing a library, and playing authorized sample media. Store credentials only in App Store Connect, never in Git or issue comments.
  • [ ] The review environment is reachable from Apple networks without a VPN or private DNS, uses non-personal sample media that may be shown to reviewers, and is tested from a fresh install on every submitted platform. If a community demo service is used, verify its current terms, stability, credentials, and permission for App Review before depending on it.
  • [ ] Do not enable public availability, add a platform version for review, or submit the app until the licensed-media manifest, final screenshot sets, and clean-install reviewer journey above have been accepted.
  • [ ] Review notes explain local-network access, direct connections to user-selected servers, optional offline downloads, the absence of bundled media, and where Cinema mode is found.
  • [ ] Review notes call out platform differences: one iOS binary serves iPhone and iPad; tvOS has no downloads/offline surface; Cinema is visionOS-only; and macOS uses a sandboxed native app.
  • [x] The correct build is attached to each platform version before Add for Review and the final Submit for Review action. See Apple's current submission procedure.

These gates cannot be completed by source changes or automation:

  • [x] The Account Holder reviews and accepts any current Apple Developer Program agreement.
  • [ ] Trader status is declared. Apple requires a declaration even when an app is not offered in the EU; EU distribution by a trader requires verified public contact information. See Apple's EU Digital Services Act guidance.
  • [ ] Agreements, tax, banking, pricing, territories, and release method are configured as required for the selected business model and storefronts.
  • [ ] The Account Holder explicitly approves the final storefront scope and submission.

Public-release closeout

After approval, verify the live product page and its support/privacy links, publish the exact corresponding source and release notes, create the authorized annotated tag, and record the released platform/version in this page. Do not describe an internal TestFlight build as a public App Store release.