Files
bab-app/docs/summaries/handoff-2026-03-20-nuxt-repo-replacement.md
Patrick Toal 12f7138687
Some checks failed
Build BAB Application Deployment Artifact / build (push) Failing after 2m35s
fix(build): trigger release
2026-03-20 18:09:13 -04:00

4.4 KiB

Session Handoff: Nuxt Repo Replacement & CI Fixes

Date: 2026-03-20 Session Focus: Replace Quasar source with Nuxt in bab-app repo; fix CI pipeline Context at Handoff: Medium — migration complete, CI pipeline passing, app deploying

What Was Accomplished

1. Quasar → Nuxt repo replacement (nuxt_test branch)

Lifted bab-app-nuxt/ (sibling dir) into bab-app/ root, replacing all Quasar artifacts.

Deleted from root:

  • src/, src-pwa/, .quasar/, dist/, node_modules/
  • quasar.config.ts, quasar.extensions.json, index.html, postcss.config.cjs, eslint.config.js, tsconfig.vue-tsc.json, .npmrc, nohup.out

Added to root:

  • app/, tests/, public/ (nuxt versions)
  • nuxt.config.ts, vitest.config.ts, tsconfig.json (nuxt versions)
  • package.json, yarn.lock (nuxt versions)

Updated:

  • generate-version.cjs — removed src/version.ts write; path changed from bab-app-nuxt/app/utils/version.tsapp/utils/version.ts
  • .releaserc.json — removed cd bab-app-nuxt &&; fixed .output/public path; changed npm run generate-versionnode generate-version.cjs; fixed ::set-output::$GITHUB_OUTPUT
  • .gitea/workflows/build.yamlbab-app-nuxt/.env.env
  • .gitignore — replaced with Nuxt version (kept VERSION, release-*.gz, CHANGELOG.md)

2. Pre-commit hook (husky)

  • Added husky, vue-tsc to devDependencies
  • Added prepare: husky and typecheck: nuxt typecheck scripts
  • .husky/pre-commit runs yarn typecheck
  • Note: yarn test excluded — only test file is live Appwrite integration test, not suitable for pre-commit

3. Semantic-release plugins

  • Added all plugins to devDependencies (were missing from nuxt package.json): semantic-release, @semantic-release/changelog, @semantic-release/commit-analyzer, @semantic-release/release-notes-generator, @semantic-release/exec, @saithodev/semantic-release-gitea
  • Changed npx semantic-releaseyarn semantic-release in build.yaml

4. CI pipeline fixes (iterative)

  • Removed cache: 'yarn' from setup-node (yarn not available yet at that step)
  • Added node_modules cache via actions/cache@v4, keyed on yarn.lock hash; install skips on cache hit
  • Replaced workflow-webhook action with direct curl — action was sending X-Hub-Signature/X-GitHub-Event headers that caused AAP EDA 403
  • Fixed Authorization: Bearer Token:***Authorization: Bearer *** (removed redundant Token: prefix)
  • Added if: steps.build.outputs.VERSION != '' to webhook step
  • Replaced --fail-with-body (curl too old on runner) with -w "\n%{http_code}" pattern that prints body + status and fails on non-2xx
  • Added $GITHUB_OUTPUT for VERSION output (replaced deprecated ::set-output::)

5. nuxt.config.ts

  • Added vite.optimizeDeps.include for @vue/devtools-core, @vue/devtools-kit, appwrite, @quasar/quasar-ui-qcalendar to prevent dev server page reloads

Current State

  • nuxt_test branch: Nuxt app is the only source in the repo root
  • CI pipeline: passes on push to alpha/devel/main
  • node_modules cache: working (Gitea cache confirmed operational)
  • Webhook: working — direct curl to AAP EDA event stream
  • App deploying but showing runtime error (see open questions)

Open Questions

  • OPEN: ENV_FILE Gitea variable likely has old Quasar env var names. Nuxt expects NUXT_PUBLIC_APPWRITE_ENDPOINT and NUXT_PUBLIC_APPWRITE_PROJECT_ID. Update in Gitea → Repo Settings → Actions → Variables.
  • OPEN: .env.local at repo root should be renamed to .env for local Nuxt 4 dev (Nuxt 4 loads .env, not .env.local).
  • OPEN: nuxt_test branch ready to merge to main once ENV_FILE is fixed and smoke test passes.
  • OPEN: Appwrite SDK deprecated API calls (TS6387) — migrate to v14+ signatures.
  • OPEN: task/taskTags/skillTags collections — not yet created in bab_prod.

Key File Paths

  • .gitea/workflows/build.yaml — CI pipeline
  • .releaserc.json — semantic-release config
  • generate-version.cjs — writes VERSION to VERSION and app/utils/version.ts
  • .husky/pre-commit — runs yarn typecheck
  • nuxt.config.ts — Nuxt config with optimizeDeps
  • app/plugins/appwrite.client.ts — throws console.error (not exception) when env vars missing

Next Session

  1. Update ENV_FILE in Gitea to use Nuxt var names
  2. Trigger a build and smoke test the deployed app
  3. Merge nuxt_testmain