# Story 3.1: Indexation Vectorielle Automatique

Status: ready-for-dev

## Story

As a system,
I want to generate and store vector embeddings for every note change,
So that the notes are searchable by meaning later.

## Acceptance Criteria

1. **Given** a Prisma schema.
2. **When** I run the migration.
3. **Then** the `Note` table has a field to store vectors (Unsupported type for Postgres/pgvector, or Blob/JSON for SQLite).
4. **Given** a note creation or update.
5. **When** the note is saved.
6. **Then** an embedding is generated via the AI Provider (`getEmbeddings`).
7. **And** the embedding is stored in the database asynchronously.

## Tasks / Subtasks

- [ ] Mise à jour du Schéma Prisma (AC: 1, 2, 3)
  - [ ] Ajouter un champ `embedding` (Bytes ou String pour compatibilité SQLite/Postgres)
  - [ ] `npx prisma migrate dev`
- [ ] Implémentation de la génération d'embeddings (AC: 4, 5, 6)
  - [ ] Modifier `createNote` et `updateNote` dans `actions/notes.ts`
  - [ ] Appeler `provider.getEmbeddings(content)`
  - [ ] Sauvegarder le résultat
- [ ] Script de Backfill (Migration de données)
  - [ ] Créer une action pour générer les embeddings des notes existantes
- [ ] Optimisation
  - [ ] Ne pas régénérer l'embedding si le contenu n'a pas changé

## Dev Notes

- **Compatibilité DB :** Le projet utilise `sqlite` par défaut (`dev.db`). SQLite ne supporte pas nativement les vecteurs comme pgvector.
  - **Solution :** Stocker les vecteurs sous forme de `String` (JSON) ou `Bytes` dans SQLite.
  - **Recherche :** Pour le MVP local, nous ferons la recherche par similarité cosinus **en mémoire** (JavaScript) ou via une extension SQLite (comme `sqlite-vss`) si possible sans trop de complexité.
  - **Choix BMad :** Stockage JSON String pour simplicité maximale et compatibilité. Calcul de similarité en JS (rapide pour < 1000 notes).
- **Performance :** L'appel `getEmbeddings` peut être lent. Il ne doit pas bloquer l'UI.
  - Utiliser `waitUntil` (Next.js) ou ne pas `await` la promesse d'embedding dans la réponse UI.

## Dev Agent Record

### Agent Model Used

### Debug Log References

### Completion Notes List

### File List
