Home

dev / openkara

publicthedavidweng/OpenKara· sync paused
Overview Code History Branches Pull requestsIssuesInsights
main
HomeOverview Code PRsIssues

#557 Streaming Sources 6/6: Accept Streaming Source plugins on macOS, Windows, and Flatpak

open

Opened by dev · 3 weeks ago

devopened this issueAuthor· 3 weeks ago

Part of #551. Implementation slice 6/6.

Blocked by: #554 Blocked by: #555 Blocked by: #556

Deliver slice 6 and close the complete feature only with observed distributed-application evidence on every supported channel.

Exercise real NetEase sign-in, account/session expiry, playlists/search, Online Preview, single/batch/playlist Streaming Import, Keep/Replace/Apply to Remaining/cancellation/conflicts, update/pin/revocation, restart, disable/sign-out/uninstall and local-song preservation. Cover fresh offline setup, interrupted/failed installs, invalid/incompatible/unstartable updates and preservation of a usable installed version.

Use unchanged host plus NetEase and the executable second-source fixture for capability/auth/pagination/colliding-id acceptance. Never place real credentials in logs/artifacts. Record exact tested release, hashes, OS/security environment, quarantine/Gatekeeper and Defender outcomes. Record Flathub policy approval separately from sandbox execution.

Acceptance: complete traceable evidence for the specification, including backend build without Node and local-first workflows. Browser automation does not substitute for native authentication, WebView ownership, runtime policy, or OS security behavior. YouTube resource updates are explicitly out of scope. All six slices must finish before #418 reaches main.

Required workflow

Work from the integration branch in an isolated worktree. Read the parent specification in full. Use TDD at its approved application-facing seam, with a real stdio process for plugin integration. Merge integration tip before reporting. Do not close without acceptance evidence. Resolve by evidence comment, closure, and a pointer on the parent map.

Maintainer-reassigned platform acceptance

Own actual Flatpak sandbox install/execution with channel-bundled pinned Node and signed downloadable JS packages; fix the existing pnpm tarball packaging failure as part of this acceptance. Do not infer Flathub approval: none exists; first-submission rejection of JS downloads triggers explicit Flatpak feature omission in Settings/release notes. Intel macOS missing runner evidence, if any from #553, must be completed here.

devcommented· 3 weeks ago
devcommented· 3 weeks ago

#553 closed with actual signed macOS ARM64+native Intel, protected native Windows, FUSE-mounted AppImage and installed deb runtime download/execute/restart. No Intel runner gap remains. This ticket now explicitly retains actual Flatpak sandbox proof (bundled pinned Node, signed downloaded JS only), pnpm missing-tarball build fix, full source sign-in/preview/import/update/revocation/uninstall installed-app acceptance and backend-no-Node cutover. No Flathub review exists; JS-plugin policy risk belongs first manual submission, rejection triggers explicit Flatpak Streaming Sources omission in Settings/release notes per ADR0038. Do not reintroduce it as a #553 blocker.

devcommented· 3 weeks ago

Runtime path contract agreed with #554: Flatpak channel-bundled executable /app/bin/openkara-source-node, current packaged pin Node24.21.0. Production host selects only that absolute channel-owned path, verifies exact required version/target/compatibility, never falls back to system Node, legacy netease-node, or downloaded executables. #556/#557 cutover must install the neutral executable at that path and preserve license notices. Until package provides it, host exposes actionable update-required/unavailable, not runtime-ready.

devcommented· 2 weeks ago

v0.18.0 shipped the SourceHost; netease-v1.0.0 is the published package (index verifies at generation 1). Remaining acceptance for this issue:

  • Real-account NetEase sign-in, browse, preview and import on a released build. This also confirms the media CDN origins, which are unverified; a missing origin is fixed by a package release.
  • Flatpak sandbox evidence for the bundled /app/bin/openkara-source-node.
  • Short-window layout: the sidebar song list collapses once Online Sources show.

Sign in to comment.

Linked pull requests

No linked pull requests yet.

Maintainer decision: revised #553 gate and channel strategy

The maintainer explicitly superseded the earlier “keep original gate” instruction in this resumed implementation session:

  • Flatpak bundles a fixed pinned Node runtime. At runtime it downloads only verified, signed JS source packages, never runtime executables. Bundled runtimes must still pass exact version and compatibility checks.
  • OpenKara has not submitted to Flathub (packaging/flatpak/README.md). No Flathub review conclusion exists. JS-plugin download policy is a first-submission risk, not a #553 closure condition. If the first submission rejects downloadable JS plugins, use option 2: no Streaming Sources in Flatpak, stated explicitly in Settings and release notes.
  • Actual Flatpak sandbox evidence and the existing missing-pnpm-tarball packaging fix move to #557, not #553.
  • macOS, Windows, AppImage and deb download the managed runtime. Add actual distributed AppImage/deb install/execute/restart evidence with distro, FUSE environment and digests before closing #553. Choose fallback only if observed infeasibility requires it.
  • macOS downloader does not add quarantine; that is the production-path conclusion. Add a regression/check to detect future silent quarantine introduction; no artificial browser-download scenario required.
  • Exercise Intel macOS candidate if a runner is available. If not, record exact #557 gap without blocking #553.
  • Preserve evidence in workflow artifacts or issue text, not /tmp only. Record channel decisions in ADR 0038, close accepted #553 with pointers on #551, then unblock #554/#555.
  • #554 must support both signed-index-downloaded runtimes and channel-bundled runtimes; the latter skips download only, not version/compatibility checks.
  • #554 and #555 each run in isolated worktrees based on feat/551-streaming-source-plugins, concurrently after #553 closure. TDD at approved application-facing seams; real stdio processes for plugin integration.

No unrelated maintainer working tree may be changed. Report after both #554/#555 finish, or immediately for a maintainer decision. No claim of complete #551 before all later acceptance.