Merge main into the epic: NestJS 11, slug-change rendering — and make CI actually run - #1993
Merged
Merged
Conversation
…nd add navigation tests (#1968) * fix(SingleContent): ensure correct content rendering on slug change and add navigation tests * test(post-navigation): add tests to ensure previous post content is not rendered when navigating between posts * fix(SingleContent): prevent navigation to previous post's translation when opening a new post * fix(HybridQuery): implement keepPreviousResult option to control output persistence across query rebuilds * feat(HybridQuery): add keepPreviousResult option to maintain output during query rebuilds
… handling (#1984) * feat(theme): centralize theme storage key and enhance pre-paint theme handling * refactor(theme): replace THEME_STORAGE_KEY import with hard-coded value and remove themeStorage module
…-paint One conflict, in SingleContent.vue: main's #1968 keys the video player by content id so slug navigation re-renders it; the epic reads the source through hasVideoSource (parentMedia-aware) rather than content.video. Kept the epic's condition and took main's :key — both fixes survive.
…and clear the type errors CI never got far enough to see
The four workflows that clone the submodule assumed the encoder
repository is public; it is not yet, so every run died at checkout with
"repository not found". They now pass
`secrets.MEDIA_CONVERT_SUBMODULE_TOKEN || github.token` — a fine-grained
read PAT until the repository goes public, the default token after,
when the secret can simply be deleted.
E2E (local stack) had two gaps of its own: no submodule in its checkout
and no player-library build, so the app's production build could not
resolve @luminary-media-converter/player-web-legacy. It now checks out
and builds them the same way the unit-test workflows do.
With checkout fixed, type-check runs — and fails on errors the dead
checkout had been masking: the sync specs' accessible-groups literals
predate DocType.Sidecar, EditContentMedia's spec reads props("parent")
without narrowing, and one hoisted mock's call tuple is typed empty.
All fixed; app and cms type-checks are clean.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The merge (unblocks #1910)
Main's three commits since the last merge-of-main: the NestJS 10→11 migration (#1950, the @fastify/middie auth-bypass CVE), the SingleContent slug-change rendering fix + navigation tests (#1968), and the theme pre-paint work (#1984).
One conflict, in
SingleContent.vue: main keys the video player by content id so slug navigation re-renders it; the epic reads the source throughhasVideoSource(parentMedia-aware) instead ofcontent.video. Kept the epic's condition and took main's:key— both fixes survive, per "prioritize the epic's changes".The CI fixes
Every submodule-cloning workflow assumed the encoder repo is public; it isn't yet, so all four died at checkout ("repository not found"). They now pass
secrets.MEDIA_CONVERT_SUBMODULE_TOKEN || github.token.➡️ One action needed from you: create a fine-grained PAT with read-only Contents access to
bccsa/luminary-media-convertand add it as the repo secretMEDIA_CONVERT_SUBMODULE_TOKEN. Once the repo goes public, delete the secret — the fallback takes over, no workflow change needed.E2E (local stack) had two extra gaps: no submodule in its checkout, and no player-library build — the app's production build failed on
Rollup failed to resolve import "@luminary-media-converter/player-web-legacy". It now checks out and builds them like the unit-test workflows do.With checkout fixed, type-check finally runs — and it failed on errors the dead checkout had been masking: the sync specs' accessible-groups literals predate
DocType.Sidecar(app + cms),EditContentMedia.specreadsprops("parent")without narrowing (6×), one hoisted mock's call tuple is typed empty. All fixed.Verified locally
tsccleanvue-tsc0 errors (down from the 9-error baseline)responseCache … overflows quota) reproduces byte-identically onorigin/main, so it's pre-existing there, not from this merge