Skip to content

feat(cms): let an editor download the encoder from where they need it - #2002

Merged
johan-bell merged 1 commit into
1878-api-cms-hls-media-data-modelfrom
1878-cms-download-link
Sep 4, 2026
Merged

feat(cms): let an editor download the encoder from where they need it#2002
johan-bell merged 1 commit into
1878-api-cms-hls-media-data-modelfrom
1878-cms-download-link

Conversation

@johan-bell

Copy link
Copy Markdown
Collaborator

Now that v0.0.1 exists, releases/latest resolves — so the CMS can actually send someone to it.

The gap

There was exactly one download link in the CMS, in the outdated notice. That notice only renders when the encoder is running and reporting a version below MIN_ENCODER_VERSION — so by definition, only for someone who already has the app.

An editor who has never installed it saw this instead:

Luminary Media Convert is not running. Open it, then try again.

"Open it" is a luminary-convert:// protocol link. On a machine that has never had the app, nothing has registered that scheme, so the click silently does nothing — and there was no other route to the installer from the CMS. The one notice most likely to reach someone without the app was the one that assumed they had it.

What changes

  • Both unreachable notices (unavailable, browser-unsupported) now offer the download beside the launch link — "…then try again — or download it if it is not installed yet."
  • The Media help text names it too, so it is findable when no notice is showing at all.

Why releases/latest and not a direct asset link

Asset filenames carry the version (…-0.0.1-mac-arm64.dmg), so a direct link would break on the next release and need a CMS change to follow every encoder release. The releases page is also where a person picks between Apple Silicon, Intel and Windows — a choice the browser cannot make for them, since it cannot tell Apple Silicon from Intel.

Tests

Four new: the download appears in each unreachable state, and it opens in a new tab with rel="noopener" (it leaves the CMS, and should not hand the opener over). Plus one asserting the help text carries it.

cms: 865 tests pass across src/components, vue-tsc 0 errors.

The only download link sat in the "your encoder is outdated" notice —
which by definition an editor only sees once they already have the app.
Someone who has never installed it got "Luminary Media Convert is not
running. Open it, then try again", where "Open it" is a luminary-convert://
link nothing on their machine has registered. The click did nothing, and
the CMS offered no way to get it.

Both unreachable notices now offer the download beside the launch link,
and the Media help text names it too, so it is findable when no notice is
showing.

Links to releases/latest rather than a named asset: asset filenames carry
the version, so a direct link would break on the next release, while the
page is where a person picks the right one for their machine anyway.
@johan-bell
johan-bell merged commit dba6f73 into 1878-api-cms-hls-media-data-model Sep 4, 2026
@johan-bell
johan-bell deleted the 1878-cms-download-link branch September 4, 2026 06:42
johan-bell added a commit that referenced this pull request Sep 4, 2026
Two files conflicted, both because the same sentences changed for
different reasons.

EncodeStatus: this branch dropped "then try again" — polling makes it
untrue, the notice clears itself — while the epic added the download link
for editors who never installed the app (#2002). Both are right, so both
survive: "Open it — this updates on its own once it is — or download it
if it is not installed yet."

EditContentMedia: each side added one field to the same destructure,
`outdated` from the epic and `watchForEncoder` from here. Kept both.

Also fixed while merging: the watcher was started only when the encoder
was missing at mount, which contradicts the comment on it — polling is
meant to run for as long as the section is on screen, so that quitting
the encoder is noticed too, not only starting it. It now does. The test
mock predates both features and gained the two members it was missing.

cms: 1187 tests pass, vue-tsc clean.
johan-bell added a commit that referenced this pull request Sep 4, 2026
One file conflicted, and both hunks were the same shape: each side had
removed something the other still carried.

The help text — this branch drops "and audio" with the feature; the epic
added the download link for editors who never installed the app (#2002).
Both removals and both additions stand.

The video block — #1985 moved the encode status out of EditContentVideo,
so its props go; MediaAudioList goes with the audio feature, and its
component file is deleted on this branch, so keeping the tag would have
broken the build.

cms: 1179 tests, api: 981, both type-checks clean.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant