Skip to content

Release privacy: reconcile project-operated review demo and collection disclosures #325

Closed

Description

@jlipworth

Scope: client disclosures, with a separate review-service boundary

This is not an audit of every user's Plex/Jellyfin/Emby server, nor a claim that the normal client uploads meaningful diagnostic logs to the developer. There is one Labstream client app; the optional project-operated reviewer/demo server is a distinct destination the user selects, not a separate demo app.

Three paths must remain distinct:

  1. Ordinary client diagnostics: bounded on-device events/files and OS-delivered diagnostic summaries. Source inspection found no automatic developer-upload path in the reviewed diagnostics/reporting code. Normal selected-server authentication, browse and playback/progress traffic is not diagnostic upload.
  2. Explicit support sharing: copy/local export alone is not developer receipt. Opening the GitHub prefill URL transmits included fields to GitHub; submitting an issue or using a share destination is a separate user action. Redaction does not make every report non-personal or automatically exempt from disclosure.
  3. Project-operated review/demo service: when selected, its operator receives normal service requests and may retain operational records. Its operational retention verification belongs to App Review: provision an isolated dedicated Jellyfin demo environment #280; this ticket must ensure policy/account answers accurately reflect the verified service behavior and remaining uncertainty.

Verified client-source findings

Rechecked at f1a6a5e0 (PR #327 head):

  • AppDiagnostics is off by default, keeps a 300-event ring, writes redacted local unified/file logs and exports at most 80 recent events in a report.
  • DiagnosticFileLogSink uses app-support storage with one active file and up to three rotated archives, nominally 1 MB each. Count/size bounds are not a time-based deletion guarantee.
  • MetricKitDiagnostics stores bounded summaries locally for optional reports; tvOS uses an empty provider.
  • FeedbackSheet and Settings expose affirmative GitHub/copy/share/export actions; GitHub prefill may include the report under its URL-length cap. No automatic network sender was identified in the reviewed diagnostics implementation/call sites.

This is source-level evidence, not packet-capture proof, a promise about Apple OS services, third-party server logging, or a final App Store privacy certification.

Acceptance by boundary

Client and wording (this issue)

  • Inspect local diagnostic sinks and outbound report handoffs; separate normal media-server protocol traffic from developer telemetry.
  • Review/merge PR docs: reconcile demo-service privacy and collection disclosures #329's correction of absolute no-developer-backend/media-hosting claims, preserving the ordinary-client versus optional-demo distinction.
  • Resolve applicable support-data disclosure using all Apple optional-disclosure conditions and the owner's actual purposes/handling. The in-app submitting-account identity condition is not established; do not infer exemption from user initiation alone.
  • Reconcile policy, manifest and proposed data/purpose/linkage answers against the exact candidate and approved review-service findings. No account edits without explicit approval; Privacy manifest: declare production systemUptime API use #326 required-reason APIs are separate.

Review-service evidence dependency (owned by #280)

Current delivery

Merged PR #329 (181b9431, reviewed source ece31016) corrects wording and records a read-only service audit/proposed disclosure mapping; CI passed. It does not close this issue or change infrastructure, app behavior, manifests or App Store Connect answers. The previous Data Not Collected account answer is historical, not newly certified.

References: #92, #280, Apple App Privacy Details.

Activity

  1. jlipworth commented on Sep 16, 2026

    @jlipworth
    OwnerAuthor

    Scope reconciled after additional client-source inspection: local diagnostics, explicit support sharing, and project-operated review-server records now have separate acceptance lanes. No automatic developer-upload path was found in the reviewed diagnostics/reporting code; this is bounded source evidence, not a global traffic guarantee. Operational retention/deletion/backup verification is now explicitly assigned to #280, with a disclosure dependency here. No infrastructure, runtime, manifest or account changes were made.

  2. jlipworth commented on Sep 29, 2026

    @jlipworth
    OwnerAuthor

    PR #329 is now merged to published main. Policy/support wording and the dated review-service audit are landed; the issue stays open for owner-approved support-data disclosure and exact-candidate App Store privacy mapping, with operational retention/access/backup facts tracked in #280. No App Store Connect answers or infrastructure were changed.

  3. jlipworth commented on Oct 5, 2026

    @jlipworth
    OwnerAuthor

    Local integration update (not a published release): the 1.7.2 correction work and reconciled local playback fixes are now integrated into local main at 17a3ed1bfb25, preserving the prior local-main history. Nothing was pushed, uploaded, or submitted.

    The owner-approved collection mapping, platform manifests and policy wording are recorded in source; App Store Connect's shared seven-type privacy label was published and reload-verified with separate approval, and all four version drafts now show 1.7.2. Existing processed 1.6.1 (2) selections were not replaced. The public website policy has not yet been deployed.

    Four signed local archives and readable aggregate reports were verified at the pre-integration correction commit 07fba33d. Those are not archives of the newly reconciled tip; final-tip archives/report verification remain required before any future upload. Support storage outside GitHub and end-to-end demo retention/backup coverage remain unverified. Review access and hardware acceptance remain open. The issue was already closed when checked; this update does not change its state or imply those remaining gates are satisfied.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions