peregrine/web/src
pyr0ball 8c42de3f5c feat(merge): merge feature/vue-spa into main
Full Vue 3 SPA merge — closes #8. Major additions:

Backend (dev API):
- dev_api.py → symlink to dev-api.py (importable module alias)
- dev-api.py: full FastAPI backend (settings, jobs, interviews, prep,
  survey, digest, resume optimizer endpoints); cloud session middleware
- scripts/user_profile.py: load_user_profile / save_user_profile helpers
- scripts/discover.py + scripts/imap_sync.py: API-compatible additions

Frontend (web/src/):
- ApplyWorkspace: ATS resume optimizer panel (gap report free, rewrite paid+)
- ResumeOptimizerPanel.vue: new component with task polling + .txt download

Test suite:
- test_dev_api_settings/survey/prep/digest/interviews: full API test coverage
- fix: replace importlib.reload with monkeypatch.setattr(dev_api, "DB_PATH")
  to prevent module global reset breaking isolation across test files

Docs:
- docs/vue-spa-migration.md: migration guide
2026-04-01 07:11:14 -07:00
..
assets feat(web): merge Vue SPA from feature/vue-spa; add ClassicUIButton + useFeatureFlag 2026-03-22 18:46:11 -07:00
components feat(merge): merge feature/vue-spa into main 2026-04-01 07:11:14 -07:00
composables feat(web): merge Vue SPA from feature/vue-spa; add ClassicUIButton + useFeatureFlag 2026-03-22 18:46:11 -07:00
router feat(web): merge Vue SPA from feature/vue-spa; add ClassicUIButton + useFeatureFlag 2026-03-22 18:46:11 -07:00
stores feat(web): add task indicator component and task store for background jobs 2026-04-01 07:09:55 -07:00
views feat(web): merge Vue SPA from feature/vue-spa; add ClassicUIButton + useFeatureFlag 2026-03-22 18:46:11 -07:00
App.vue feat(web): merge Vue SPA from feature/vue-spa; add ClassicUIButton + useFeatureFlag 2026-03-22 18:46:11 -07:00
main.ts feat(web): merge Vue SPA from feature/vue-spa; add ClassicUIButton + useFeatureFlag 2026-03-22 18:46:11 -07:00
test-setup.ts feat(web): merge Vue SPA from feature/vue-spa; add ClassicUIButton + useFeatureFlag 2026-03-22 18:46:11 -07:00