Repository navigation
Description
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:
- 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.
- 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.
- 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):
AppDiagnosticsis off by default, keeps a 300-event ring, writes redacted local unified/file logs and exports at most 80 recent events in a report.DiagnosticFileLogSinkuses 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.MetricKitDiagnosticsstores bounded summaries locally for optional reports; tvOS uses an empty provider.FeedbackSheetand 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)
- Link verified auth/activity expiry, centralized/edge retention, backup coverage and operator-access findings from App Review: provision an isolated dedicated Jellyfin demo environment #280. Unknown retention must remain unknown; an honest disclosure need not invent a fixed deletion period.
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
jlipworth commentedon Sep 16, 2026
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.
fix: declare required-reason system uptime usage (#328)
jlipworth commentedon Sep 29, 2026
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.
docs: consolidate screenshot provenance and release gates (#330)
jlipworth commentedon Oct 5, 2026
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.