Commit Graph

8 Commits

Author SHA1 Message Date
7106791372 refacto: AuthGuard token cache — memory TTL 5min, skip round-trip
Map<token, {user, expiresAt}> avec lazy cleanup.
Token en cache et valide → zero HTTP, latence ~0.
Expiration ou miss → round-trip SuperOAuth comme avant.
6 tests unitaires couvrent cache hit, miss, expiry, et edge cases.
2026-04-05 07:39:55 +02:00
6dcb6bf4b5 test: flip anti-regression double XP — fix merged, assertion inversée 2026-04-05 07:37:55 +02:00
f83b07863d Merge branch 'sprint/sakuin/setup-jest'
Some checks failed
CI/CD — Build & Deploy / Build & Deploy (push) Failing after 25s
2026-04-05 07:30:25 +02:00
e68c8d1f19 test: 60 tests backend — user, list, work, anilist services
4 spec files, mocks TypeORM, zero DB reelle.
Anti-regression double XP documentee dans list.service.spec.
Coverage : 0% → services critiques couverts.
2026-04-05 07:29:37 +02:00
2504c3756d feat: setup Jest backend — config + deps + scripts test/watch/cov 2026-04-05 07:25:46 +02:00
1059d4ae17 fix: prevent double XP on completion — guard already-completed status 2026-04-05 07:19:44 +02:00
108f021bd8 feat: Sprint 1 core tracker + SuperOAuth PKCE E2E
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 31s
Backend: cookie-parser, auth guard token introspection (SuperOAuth profile API),
fix réponse wrappée { success, data: { user, linkedProviders } }.
Frontend: page login 4 providers PKCE, callback SSR-safe (browser guard),
search améliorée (debounce, pagination, toast, feedback visuel ajout),
list complète (7 tabs, progression inline, score, vue grille/liste, cards goldées),
profil (XP bar, grades, 8 stats), user store partagé, toast system.
2026-03-25 02:43:36 +01:00
f1cff74d83 init: scaffold complet Sakuin — backend NestJS + frontend SvelteKit + CI/CD + deploy VPS
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 29s
Backend: 5 modules (auth, user, work, list, health), AniList GraphQL proxy,
SuperOAuth PKCE introspection, XP system, migrations TypeORM.
Frontend: SvelteKit adapter-node, PWA manifest, dark theme, pages home/search/list/profile/callback.
Infra: CI/CD Gitea vps-runner, Apache vhost SSL, pm2 sakuin-backend + sakuin-frontend, port 4002.
License: BSL 1.1 (Apache 2.0 en 2028).
2026-03-25 01:43:32 +01:00