# Deferred Work ## ~~Deferred from: code review of 3-5-secure-byok-management (2026-05-16)~~ ✅ COMPLETED All BYOK items implemented on 2026-05-30: - ✅ **Test host BYOK + quota invité vide (Task 7.4)** — Test AC10 ajouté dans `brainstorm-billing.test.ts` - ✅ **`lastUsedAt` / `lastUsedFor` tracking** — Implémenté dans `resolveByokApiKey()` avec update async non-bloquant - ✅ **`keyHash` dédup cross-provider** — `findDuplicateApiKeyHash()` ajouté, vérification dans route POST (409 Conflict) - ✅ **Downgrade tier → désactivation clés** — `deactivateUnauthorizedKeys()` + safety check dans `getActiveByokKey()` - ✅ **Rate limit POST `/api/user/api-keys`** — `checkApiKeyCreationRateLimit()` (5/h) dans route POST (429) ## Deferred from: code review of 4-1-gdpr-cookie-consent (2026-05-16) - **AC5 anonymousAnalytics DB sync** — La synchronisation de `anonymousAnalytics` vers `UserAISettings` via `updateAISettings()` n'a pas été implémentée. Contrainte utilisateur : zéro écriture DB en 4.1, consentement 100 % client. À implémenter dans une story ultérieure si la cohérence DB devient requise. ## Deferred from: unified tasks view study (2026-05-24) - **Vue agrégée Notes/Tâches (Markdown scrape)** — Retirée volontairement (option A produit) : surcharge UX, chevauchement avec vues structurées Kanban. Spec `spec-unified-tasks-view.md` abandonnée ; pas d'unification TipTap/Checklist pour cette vue. ## Deferred from: US-TEMPORAL product decision (2026-05-24) - **Prédictions d'accès temporelles** — Reporté : chevauche rappels + flashcards SM-2 + Memory Echo ; heuristique prototype peu fiable ; `NoteAccessLog` non prioritaire. Voir `docs/user-stories.md` § US-TEMPORAL. - **Build error in note-graph-view.tsx** — Variable `plainText` définie plusieurs fois (ligne 238). Fichier préexistant modifié hors de cette tâche. À corriger indépendamment. ## Deferred from: code review of 4-4-explicit-ai-consent (2026-05-23) - **PUT `/api/ai/batch-organize` sans check consent** — Handler PUT applique le plan d’organisation en DB sans appeler d’API IA tierce ; hardening consent possible mais hors périmètre GDPR direct. ## Deferred from: code review of 4-3-data-portability (2026-05-23) - **`lib/export/zip-builder.ts` non extrait** — logique inline dans la route ; fonctionnel mais écarte la structure prévue par la story. - **Rate limiting absent sur `GET /api/user/export`** — vecteur d’abus (exports répétés) ; hardening ultérieur.