github getmydia/mydia v0.13.0-beta.5

latest release: v0.13.0-beta.6
pre-release4 hours ago

Fifth beta for v0.13.0, cut from master. 2 PRs since beta.4. No migrations.

Flatpak publishing

The Linux player's Flatpak channels shipped in beta.4 but never published. This is the first release where flatpak-publish can complete, and three separate faults had to be fixed for that to be true.

  • The repository signing public key is committed. make-flatpakrepo.sh embeds it in both .flatpakrepo files so clients can verify the OSTree commits, and the script exits 1 when the key is absent, so the job failed before it ever reached R2.
  • The staged repo now survives the artifact round trip. upload-artifact does not preserve empty directories, and an ostree repo keeps refs/remotes, refs/mirrors, extensions, state and tmp/cache empty after a build. They were gone by the time flatpak build-commit-from read the downloaded repo, which exited with Listing refs: opendir(refs/remotes): No such file or directory. That is what killed the publish on beta.4.
  • The dry run could not have caught that. Its rehearsal points publish.sh at $PWD/staged-repo inside the build job, which never passes through an artifact, so the skeleton is intact there and the rehearsal passes while the real path fails.
  • rclone can upload against a bucket-scoped R2 token. Such a token cannot call ListBuckets, so rclone's existence probe fails and it falls back to CreateBucket, which the token also cannot do. Uploads died on AccessDenied: CreateBucket, which reads like bad credentials while the credentials are correct.

Operator setup was completed alongside this: the mydia-flatpak R2 bucket, flatpak.mydia.dev attached as its custom domain, and the signing and storage secrets.

Once this release publishes, the beta channel can be added with:

flatpak remote-add --if-not-exists --from mydia-beta https://flatpak.mydia.dev/mydia-beta.flatpakrepo
flatpak install mydia-beta dev.mydia.player

Casting

  • Skip Intro and Skip Credits work while casting. Both were bound to the local media_kit Player, which the cast path deliberately never builds, so the button was gated off, auto-skip read a position from a listener that does not exist, and the seek returned early. The feature was missing on the surface where sitting through an intro is most annoying.
  • Local and cast playback share one auto-skip rule now, rather than two copies that can drift.
  • A failed cast skip no longer escapes into the zone.
  • Two limits remain. Auto-skip only fires while the app is awake and foregrounded, because every skip is the phone issuing a seek and the stock receiver knows nothing about segments. Skip is also available on the player screen only, not from the mini controller.

Don't miss a new mydia release

NewReleases is sending notifications on new releases.