feat(core): v5.0.0 command palette + FTS5 search, v5.2.0 versioned migrations
- Command palette Ctrl+K/Ctrl+P (base.html): universal search, fuzzy highlight, keyboard nav, quick actions. openQuickFind now opens it. - GET /api/search endpoint + search service: unified pages + databases search, FTS5 with LIKE fallback, trash excluded, user-scoped. - app/migrations.py: lightweight versioned migration runner (schema_version table); baseline schema = v1, new steps applied in order. - Migration v2: missing indexes (users.email, user_oauth_tokens, etc). - Migration v3: FTS5 pages_fts + sync triggers + backfill. - VERSION + app.main -> 5.0.0; CHANGELOG + ROADMAP updated. - +8 tests (tests/test_search_migrations.py). 259 passed (3 pre-existing PDF/weasyprint env failures unrelated).
This commit is contained in:
+15
-15
@@ -416,13 +416,12 @@ app/
|
||||
- Budget tokens max par conversation (500k tokens)
|
||||
- Timeout 5 minutes par run
|
||||
|
||||
### v5.0.0 — Command Palette & Recherche ⬜ (stub uniquement)
|
||||
> ⚠️ **État actuel** : `Ctrl+K` appelle `openQuickFind()` dans `base.html` qui n'affiche qu'un
|
||||
> toast « Quick Find — Ctrl+K ». Le raccourci est déjà câblé, la palette elle-même n'existe pas.
|
||||
### v5.0.0 — Command Palette & Recherche ✅ (2026-09-06)
|
||||
> **Objectif** : `Ctrl+K` / `Ctrl+P` palette de commandes universelle + recherche full-text. **COMPLETED**.
|
||||
|
||||
- [ ] **Command palette** — Ctrl+K / Ctrl+P recherche universelle (modale, fuzzy, navigation clavier)
|
||||
- [ ] **Quick actions** — navigation, création, commandes
|
||||
- [ ] **Recherche full-text** — SQLite FTS5 sur pages + propriétés (prérequis technique de la palette)
|
||||
- [x] **Command palette** — Ctrl+K / Ctrl+P recherche universelle (modale, fuzzy, navigation clavier)
|
||||
- [x] **Quick actions** — navigation, création, commandes
|
||||
- [x] **Recherche full-text** — SQLite FTS5 sur pages + propriétés (prérequis technique de la palette)
|
||||
|
||||
### v5.1.0 — Automations ⬜ (non commencé)
|
||||
|
||||
@@ -432,9 +431,10 @@ app/
|
||||
- [ ] **Database automations** — moteur de règles if-this-then-that (trigger + condition + action)
|
||||
- [ ] **Buttons** — boutons cliquables déclenchant des actions
|
||||
|
||||
### v5.2.0 — Infrastructure & Polish ⬜ (à prioriser)
|
||||
> ⚠️ **Priorité recommandée n°1** : les **migrations versionnées** d'abord — la base compte
|
||||
> déjà 30+ tables créées ad-hoc ; ajouter agent/automations sans versioning va créer une dette ingérable.
|
||||
### v5.2.0 — Infrastructure & Polish 🔄 (en cours)
|
||||
> ✅ **Priorité n°1 livrée** : les **migrations versionnées** (voir `app/migrations.py` +
|
||||
> table `schema_version`) — la base comptait 30+ tables créées ad-hoc ; tout nouveau
|
||||
> schéma passe désormais par des étapes versionnées (baseline v1, indexes v2, FTS5 v3).
|
||||
> **État actuel** : API publique + tokens **partiellement implémentés** (`routers/public_api.py`,
|
||||
> test `test_public_api_token`) — à compléter dans la section Sécurité.
|
||||
|
||||
@@ -448,9 +448,9 @@ app/
|
||||
- [ ] **Onboarding wizard** — `/welcome` au premier lancement (créer compte → lier forges → premier projet)
|
||||
|
||||
**Infrastructure**
|
||||
- [ ] **🥇 Migrations versionnées** — Alembic ou table `schema_version` *(URGENT avant v4.10/v5.x)*
|
||||
- [x] **🥇 Migrations versionnées** — table `schema_version` + runner `app/migrations.py` (baseline v1, indexes v2, FTS5 v3) ✅
|
||||
- [ ] **Backup automatique** — cron daily → fichier daté
|
||||
- [ ] **Index manquants** — `users.email`, `forge_connections.user_id`
|
||||
- [x] **Index manquants** — `users.email`, `user_oauth_tokens(user_id, provider)`, `collections/pages(workspace_id)`, `pages(deleted_at)` ✅
|
||||
- [ ] **Linting** — ruff (Python), eslint (JS) *(aucune config actuellement)*
|
||||
- [ ] **Tests parallèles** — pytest-xdist
|
||||
- [ ] **Build Docker multi-stage** — optimiser taille d'image
|
||||
@@ -461,7 +461,7 @@ app/
|
||||
- [ ] **GitHubAdapter** complet — API GitHub v3 → interface ForgeAdapter
|
||||
|
||||
**Tests (cibles)**
|
||||
- [x] **143 tests** — cible 100+ atteinte ✅
|
||||
- [x] **267 tests** — 259+ (dont 8 nouveaux migrations/search) ✅
|
||||
- [ ] Tests d'intégration auth (OAuth mock)
|
||||
- [ ] Tests des adapters forge (mock HTTP)
|
||||
- [ ] Tests multi-user (permissions croisées)
|
||||
@@ -599,8 +599,8 @@ app/
|
||||
|
||||
## 🎯 Ordre de priorité recommandé (état 2026-09)
|
||||
|
||||
1. **v5.2.0 → Migrations versionnées** (bloquant pour tout le reste)
|
||||
2. **v5.0.0 → Command palette + FTS5** — Ctrl+K déjà câblé, petit effort / gros impact
|
||||
1. ~~**v5.2.0 → Migrations versionnées**~~ ✅ livré (`schema_version` + `app/migrations.py`)
|
||||
2. ~~**v5.0.0 → Command palette + FTS5**~~ ✅ livré (palette Ctrl+K + `GET /api/search`)
|
||||
3. **v5.3.0 → Inline databases dans pages** — API serveur prête, uniquement travail éditeur
|
||||
4. **v5.13.0 → Realtime (WS + présence)** — chantier de parité Notion n°1, socle aussi pour v5.14 (synced blocks)
|
||||
5. **v5.10.0 → Interactions de bloc** (drag&drop, undo/redo, duplicate) — gros impact UX, effort modéré
|
||||
@@ -622,4 +622,4 @@ Quality DB views, Agent IA Palette → Éditeur bloc Re
|
||||
DB avancée, Wiki-links,
|
||||
Calendrier, AI Templates & lock
|
||||
|
||||
*Dernière mise à jour: 2026-09-05 — v4.10.0 Agent IA livré (18 tests) ; audit précédent : v5.10.0 → v5.14.0 ajoutées (interactions de bloc, wiki-links & mentions, templates & page lock, realtime, synced blocks)*
|
||||
*Dernière mise à jour: 2026-09-06 — v5.0.0 Command Palette + FTS5 et v5.2.0 Migrations versionnées (schema_version) + indexes livrés (267 tests) ; reste v5.3 → v6.0*
|
||||
|
||||
Reference in New Issue
Block a user