You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 69da07f
Browse filesBrowse the repository at this point in the historyBrowse files
echo 'The macOS DMG is **not Developer ID signed or notarized**.'
169
170
fi
171
+
echo
172
+
echo 'Release CI requires the complete Linux traditional and real OpenGL/Vulkan GUI suites, Windows OpenGL tests, and the Android phone journey. Full macOS, tvOS simulator, and Android TV native suites remain available manually but do not gate this release; their platform builds and package audits are retained.'
173
+
echo
174
+
echo 'The Apple TV IPA is **unsigned**: it has no Apple signing identity or provisioning profile, and tvOS will not install it as downloaded. It is not distributed through the App Store or TestFlight and has not been reviewed by Apple.'
175
+
echo "Build and sign from source with your own Apple Account, or use your own tvOS re-signing setup. See [Apple TV build and signing directions](https://github.com/$REPO/tree/$TAG#apple-tv)."
remoteControl, streamQuality, trickplay): what the enabled accounts can do
52
+
between them. Provider-specific UI is the provider's own QML, mounted by
53
+
`shell/ProviderSurface` with a `ProviderUiContext`; item-menu entries come
54
+
from the manifest's `actions`.
55
+
- Group playback and remote control are generic (`GroupPlaybackController`,
56
+
`AppControllerRemote.cpp`); providers translate their protocol into
57
+
`group` and `remote` events. Do not touch `src/player` or
58
+
`qml/pages/Player*` for provider work beyond renames.
44
59
-`qml/primitives` and `qml/theme` reach exactly two singletons, `Art.url` and
45
60
`Settings.uiScalePercent`. Keep it that way; page- and shell-level QML is
46
61
where backend-shaped data belongs.
@@ -52,6 +67,12 @@ library; the grouping exists so the split stays mechanical.
52
67
-`tools/manifests/toolchain.json` sets the Qt and FFmpeg versions for every
53
68
platform. Nothing else may name one; `tools/toolchain-versions.sh --check`
54
69
is what CI runs to keep the Qt module manifests honest.
70
+
- Qt source manifests use the official-listed FAU archive mirror rather than a
71
+
geo-selected redirect. Mirror changes must preserve version/module SHA-256 pins;
72
+
verify the full archive digest before changing a source URL.
73
+
- webOS GCC coroutine calls use named argument maps before `co_await`; nesting
74
+
a member expression inside a temporary argument aggregate triggered a compiler
75
+
internal error. Keep the wire arguments unchanged when restructuring such calls.
55
76
- The launch screen carries the version, so it is rendered per build by
56
77
`tools/generate-splash.sh` from `tools/manifests/splash.json` and is not
57
78
committed. Configuring the app is enough to get it on every platform.
@@ -61,12 +82,30 @@ library; the grouping exists so the split stays mechanical.
61
82
- Launch the native release app with `nix run`. Clean Git revisions substitute the immutable package from Cachix; dirty tracked changes use the incremental checkout build.
62
83
- Launch the already-built native release app without rebuilding with `nix run .#run`. It fails with a build-command hint when the binary is missing.
63
84
- Build without launching with `nix run .#build`.
64
-
- Run the test suite the way CI does with `nix run .#tests` (release build, then the same ctest invocation and exclusions as the workflow).
85
+
- Run the test suite the way CI does with `nix run .#tests` (release build, then `python tools/run-tests.py --build-dir <dir> --workers N`: traditional selectors finish before real GUI e2e; failures aggregate without GPU exclusions).
65
86
- Leave interactive UI testing to the user. Do not drive their desktop with xdotool/xdgtool or similar input automation, or launch visible smoke tests unless explicitly requested. Use builds and isolated/offscreen checks for verification.
66
-
- Use `nix develop .#native -c ...` for targeted development commands (e.g. `cmake --preset linux-dev`, then `cmake --build build/linux-dev/app --target jellyfin-native`).
87
+
- Use `nix develop .#native -c ...` for targeted development commands (e.g. `cmake --preset linux-dev`, then `cmake --build build/linux-dev/app --target spool`).
67
88
- The image-diagnostics equivalents remain `nix run .#image-debug-build` followed by `nix run .#image-debug`.
68
89
- Batch coherent edits, then run one build and one `qmlformat`/`clang-format` invocation over all touched files; don't build or format file-by-file.
69
90
91
+
### Filtered preview diagnostics
92
+
93
+
- Trace is opt-in: `QT_LOGGING_RULES='spool.provider.trace.debug=true'`.
94
+
Enable it only for the shortest necessary inspection, then unset it.
95
+
- Never print or share unfiltered app logs, diagnostics JSON, provider responses,
96
+
credential stores, URLs, request headers, or account configuration. Restoration
97
+
must use the real app's existing credential path, never pasted tokens.
98
+
- Always filter trace output before displaying it: select only `preview metadata`,
99
+
`preview session`, `preview fetch failed`, and `preview load failed` messages
100
+
from `spool.provider.trace`. Prefer an explicit field allowlist (item ID,
101
+
enabled, availability, format, dimensions/count, numeric network/status codes,
102
+
frame/speculative). Redact authentication, URL/query, user/account and path
103
+
values even if upstream logging is already sanitized.
104
+
-`spoolet` may inspect restored-account library rows and drive an explicitly
105
+
requested offscreen preview smoke. Filter JSON to the required titles, IDs,
106
+
player/preview state and dimensions. Never dump raw provider payloads or
107
+
support reports to discover preview availability.
108
+
70
109
## webOS
71
110
72
111
- Do not build, install, launch, deploy, or test on a TV unless the user explicitly requests it. "Deploy" means install-only; never launch unless separately asked.
0 commit comments