# 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.ts` → `app/utils/version.ts` - `.releaserc.json` — removed `cd bab-app-nuxt &&`; fixed `.output/public` path; changed `npm run generate-version` → `node generate-version.cjs`; fixed `::set-output::` → `$GITHUB_OUTPUT` - `.gitea/workflows/build.yaml` — `bab-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-release` → `yarn 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_test` → `main`