|
|
|
|
@@ -0,0 +1,77 @@
|
|
|
|
|
# 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`
|