diff --git a/.github/workflows/auto-pr-description.yml b/.github/workflows/auto-pr-description.yml index 5382691b..3c57933a 100644 --- a/.github/workflows/auto-pr-description.yml +++ b/.github/workflows/auto-pr-description.yml @@ -6,9 +6,22 @@ name: Generate PR Description +# DISABLED. This ran on every `opened` and `synchronize` and overwrote the pull request body +# wholesale, discarding hand-written descriptions on each push. It also fabricated ClickUp +# links from whatever it inferred, producing dead task references. +# +# The file is kept rather than deleted so the setup is recoverable. `workflow_dispatch` is only +# here to keep the file valid — the steps below read `github.event.pull_request`, so a manual +# run would need the PR number wired in as an input first. +# +# To turn automation back on: restore the `pull_request` trigger below AND re-enable the +# workflow in the repo (`gh workflow enable auto-pr-description.yml`). Both are required — a +# `pull_request` workflow runs from the BASE branch's copy, so editing this file alone changes +# nothing for PRs already targeting an existing branch. on: - pull_request: - types: [opened, synchronize] + workflow_dispatch: + # pull_request: + # types: [opened, synchronize] env: TEMPLATE_FILE_PATH: .github/pr-description-template.md diff --git a/Dockerfile b/Dockerfile index 2d2f7db3..2e013092 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,11 @@ FROM node:22.17.1-alpine as build-stage WORKDIR /app +# subturtle-ui is a link:../ui dependency whose dist/ is not committed, so the library's +# source has to be in the image and gets built by frontend's postinstall. The path must stay +# ../ui relative to this WORKDIR. +COPY /ui /ui + COPY /frontend/package.json ./ COPY /frontend/yarn.lock ./ COPY /frontend/.npmrc ./ diff --git a/frontend/components/bundle/GenerativeCard.vue b/frontend/components/bundle/GenerativeCard.vue index 35a324f8..682aace1 100644 --- a/frontend/components/bundle/GenerativeCard.vue +++ b/frontend/components/bundle/GenerativeCard.vue @@ -1,70 +1,74 @@ + + const withLanguages = phrases.find((p) => p.language_info?.source || p.translation_language); + if (withLanguages) { + langPair.value = { + source: toLanguageCode(withLanguages.language_info?.source), + target: toLanguageCode(withLanguages.language_info?.target ?? withLanguages.translation_language), + }; + } + } - + onMounted(async () => { + getWords(); + }); + diff --git a/frontend/components/common/StPageHeader.vue b/frontend/components/common/StPageHeader.vue new file mode 100644 index 00000000..a184df12 --- /dev/null +++ b/frontend/components/common/StPageHeader.vue @@ -0,0 +1,30 @@ + + + diff --git a/frontend/components/material/WordGenerativeCover.vue b/frontend/components/material/WordGenerativeCover.vue index 10318f5e..b044009b 100644 --- a/frontend/components/material/WordGenerativeCover.vue +++ b/frontend/components/material/WordGenerativeCover.vue @@ -1,6 +1,6 @@