Commit Graph

129 Commits

Author SHA1 Message Date
Antigravity
a4238dc204 feat: AI Overview recherche + AI Writer inline streaming
All checks were successful
CI / Lint, Unit Tests & Build (push) Successful in 5m6s
CI / Deploy production (on server) (push) Successful in 2m2s
- AI Overview : synthèse IA en haut des résultats de recherche (Ctrl+K)
  - Service search-overview.service.ts
  - Endpoint /api/ai/search-overview
  - Carte 'Réponse IA' avec Sparkles en haut du panneau gauche
  - Pur additif, ne modifie pas le classement des résultats
- AI Writer inline : slash menu → 'Écrire avec l'IA' → champ inline
  - Mode 'write' dans paragraph-refactor.service.ts
  - Streaming paragraphe par paragraphe (120ms delay)
  - Nettoyage HTML (espaces vides supprimés)
  - Ref synchrone pour éviter fermeture du menu pendant la frappe
- Fix: index slashCommands AI Writer corrigé
- Fix: Loader2 import manquant
- i18n FR/EN
2026-06-19 19:42:37 +00:00
Antigravity
82f87b65cb feat: AI Writer inline — génère du contenu au curseur
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m19s
CI / Deploy production (on server) (push) Has been skipped
- Mode 'write' ajouté à paragraph-refactor.service.ts
- Endpoint /api/ai/reformulate étendu (option 'write' + writePrompt)
- UI : champ de prompt inline apparaît au curseur après slash menu
  - Tape / → 'Écrire avec l'IA' → décrit ce que tu veux → Entrée
  - L'IA génère et insère le contenu à la position du curseur
- Pas de migration DB, réutilise l'infra existante
- i18n FR/EN
2026-06-14 20:30:10 +00:00
Antigravity
b9a80f9e64 feat: Organisateur IA — analyse carnet + tags + doublons + regroupements
All checks were successful
CI / Lint, Unit Tests & Build (push) Successful in 5m37s
CI / Deploy production (on server) (push) Successful in 2m2s
- Service notebook-organizer.service.ts : analyse IA des notes
- Endpoint /api/ai/organize-notebook
- Dialog avec 4 sections :
  1. Résumé de l'état du carnet
  2. Tags suggérés (cliquable pour appliquer)
  3. Regroupements logiques par catégorie
  4. Détection de doublons avec explication
- Bouton 'Organiser' (Wand2) dans la barre du carnet
- i18n FR/EN complet
- Complète les 3 scénarios : Prof (wizard+exercices), Étudiant (wizard+planning), Ingénieur (organisateur)
2026-06-14 20:16:01 +00:00
Antigravity
eff906d187 fix: exercices dans menu GraduationCap + équations KaTeX + refresh liste
Some checks failed
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
- Menu déroulant GraduationCap : Flashcards + Exercices réunis
- Fix: language non défini dans toolbar (useLanguage destructuring)
- Fix: équations 658071 → KaTeX dans exercices (preprocessMathInHtml partagé)
- lib/text/math-preprocess.ts : utilitaire partagé wizard + exercices
- Toast avec bouton 'Voir' pour rafraîchir après création exercices
- emitNoteChange pour rafraîchir la liste
- i18n FR/EN
2026-06-14 20:13:25 +00:00
Antigravity
104af3149f feat: générateur d'exercices + planning de révision IA
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m28s
CI / Deploy production (on server) (push) Has been skipped
- Générateur d'exercices : bouton dans menu note → IA crée 5 exercices
  - Niveaux variés (facile/moyen/difficile) avec emojis 🟢🟡🔴
  - Corrigés détaillés dans des toggles (cliquer pour révéler)
  - Callout warning pour le niveau
  - Notes créées dans le même carnet
- Planning de révision : bouton dans barre carnet → IA crée planning
  - Choix date d'examen
  - Répétition espacée (première lecture → revoir → révision globale)
  - Rappels automatiques ajoutés aux notes (9h le jour J)
  - Vue chronologique avec activités et notes par jour
- Services : exercise-generator.service.ts + study-planner.service.ts
- Endpoints : /api/ai/generate-exercises + /api/ai/study-plan
- i18n FR/EN complet
2026-06-14 19:57:21 +00:00
Antigravity
940c3daf62 feat: Wizard IA + Export PDF + fixes blocs
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m7s
CI / Deploy production (on server) (push) Has been skipped
- Wizard IA: création de carnet complet (étudiant/prof/ingénieur)
  - 3 profils, choix niveau, nombre de notes (3-12)
  - Étapes numérotées, messages de progression, écran de succès
  - Notes riches avec callouts, toggles, équations, colonnes
  - Structured View auto-créé avec propriétés Statut/Difficulté
  - Embeddings en arrière-plan
- Export PDF: clone le DOM réel, rend KaTeX, préserve couleurs callouts
- Fix: boutons toggle/callout en hover-only
- Fix: parsing JSON robuste (backslashes LaTeX)
- Fix: flushSync warning (queueMicrotask)
- Fix: drag handle clamp viewport
- Bouton wizard dans la sidebar ( à côté du +)
- i18n FR/EN complet
2026-06-14 19:51:02 +00:00
Antigravity
f7b62009cf fix: drag handle resolve container blocks + menu popup clamp viewport
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m24s
CI / Deploy production (on server) (push) Has been skipped
- Drag handle résout les blocs conteneurs (columns, toggle, callout) au lieu du paragraphe intérieur
- Delete agit sur tout le bloc conteneur, pas juste le paragraphe
- Menu popup (block action menu) clampé dans le viewport (Math.min + overflow auto)
- Drag handle clamped dans le viewport via MutationObserver + scroll/resize
2026-06-14 19:01:30 +00:00
Antigravity
d5b409c1ac feat: équations mathématiques (KaTeX) — bloc, inline, barre visuelle, IA
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m28s
CI / Deploy production (on server) (push) Has been skipped
- Bloc équation avec barre visuelle 20 symboles (fractions, intégrales, grec, etc.)
- Math en ligne : tape $x^2$ → rendu KaTeX inline automatique
- Math en bloc : tape $$E=mc^2$$ → converti en bloc
- Génération IA : décrit l'équation en langage naturel → LaTeX
- Service math-from-text + endpoint /api/ai/math-from-text
- CSS KaTeX importé
- i18n FR/EN complet
2026-06-14 18:21:46 +00:00
Antigravity
ba3ab3422a feat: Link Preview block (carte aperçu URL) + proxy images
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m29s
CI / Deploy production (on server) (push) Has been skipped
- Bloc Link Preview : colle une URL → carte avec titre, description, image, favicon
- API /api/link-preview : extraction OpenGraph + meta tags
- API /api/image-proxy : contourne le hotlinking (Referer spoofing)
- Métadonnées persistées en HTML (data-preview JSON) — pas de refetch au reload
- Texte indexable : titre + description + URL inclus pour recherche/embeddings
- Modal propre pour saisir l'URL (plus de prompt())
- Slash menu + smart paste 'Coller comme carte aperçu'
- i18n FR/EN complet
- Fix: bouton calendrier retiré du sélecteur de vue
2026-06-14 17:43:53 +00:00
Antigravity
a623454347 perf: memo GridCard, fuse save fns, fix slash tab active color
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m32s
CI / Deploy production (on server) (push) Has been skipped
2026-06-14 14:06:05 +00:00
Antigravity
aeedb2846f feat: App mobile Expo + API mobile dédiée
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m21s
CI / Deploy production (on server) (push) Has been skipped
memento-mobile/ (Expo + React Native + expo-router):
- Auth: login email/password → Bearer token (expo-secure-store)
- Layout: guard auth → redirect /(auth)/login ou /(tabs)/home
- Tabs: Accueil, Carnets, Recherche, Profil
- Screens: login, home (recent notes + quick actions), notebooks list,
  note viewer (WebView HTML), search (texte), notebook detail, profile
- Design: tokens brand-accent (#A47148), ink, concrete, paper, border
- lib/config.ts: API_URL dev/prod configurable
- lib/api.ts: apiFetch avec Bearer token automatique
- lib/store.ts: Zustand auth store (login/logout/restore)

memento-note/ (API mobile dédiée):
- lib/mobile-auth.ts: createMobileToken / verifyMobileToken (HMAC-SHA256, 90j)
- POST /api/mobile/auth/login: email+password → token + user
- GET /api/mobile/auth/me: valider token, retourner profil
- GET /api/mobile/notebooks: liste carnets avec nb notes
- GET /api/mobile/notes: notes récentes (filtre par carnet optionnel)
- GET /api/mobile/notes/[id]: contenu complet d'une note
- GET /api/mobile/search: recherche fulltext titre+contenu

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 15:53:13 +00:00
Antigravity
cd1be630d2 fix: agent notifications pointaient vers / au lieu de /home?openNote=
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m24s
CI / Deploy production (on server) (push) Has been skipped
La landing page est sur /, l'app sur /home.
Correction: actionUrl = /home?openNote=noteId

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 15:17:36 +00:00
Antigravity
c415d93945 feat: Tier 1 & 2 — Daily Note, Voice, Flashcard quota, Readwise, Calendar, Agent Gallery
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m7s
CI / Deploy production (on server) (push) Has been skipped
Tier 1:
- BASIC tier: chat (10/mo) + reformulate (10/mo) désormais accessibles
- Nouveaux quotas: ai_flashcard + voice_transcribe dans tous les tiers
- /api/notes/daily : note du jour auto-créée (find or create)
- Bouton Note du Jour dans la sidebar (CalendarDays)
- Voice-to-Text dans l'éditeur (Web Speech API, bouton Mic toolbar)
- Flashcard generation → quota ai_flashcard (au lieu de reformulate)

Tier 2:
- Intégration Readwise: GET/POST/DELETE /api/integrations/readwise
- Intégration Google Calendar: OAuth flow + today's events + meeting notes
- /api/integrations/calendar + /callback
- Page /settings/integrations avec cards Calendar + Readwise
- SettingsNav: onglet Intégrations
- AgentTemplates: catégories + 4 nouveaux templates (Digest/Recap/AutoTagger/Synthesis)

Schema:
- UserAISettings.integrationTokens Json? (migration 20260529160000)
- prisma generate + migrate deploy appliqués

Fix:
- SpeechRecognition types (triple-slash @types/dom-speech-recognition)
- Notebook.create: suppression champ 'description' inexistant

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 15:14:01 +00:00
Antigravity
5703d5bd49 feat(4-5/4-6): audit logging + zero-data-retention headers
Some checks failed
CI / Lint, Unit Tests & Build (push) Successful in 5m39s
CI / Deploy production (on server) (push) Failing after 18s
Audit Logging (story 4-6):
- Nouveau modèle AuditLog (userId, action, resource, metadata, ip, createdAt)
- Migration 20260529143000_add_audit_log appliquée
- lib/audit-log.ts : logAuditEvent (fire-and-forget) + logAuditEventAsync + getClientIp
- auth.ts : LOG LOGIN / LOGOUT / USER_CREATED sur chaque event NextAuth
- /api/chat : log AI_REQUEST avec tokens + byok flag dans onFinish
- /api/agents/run-for-note : log AI_REQUEST avec featureKey + noteId

Zero-data-retention (story 4-5):
- OpenAI provider : header OpenAI-No-Training: 1
- Anthropic provider : header Anthropic-No-Train: 1
- DeepSeek provider : header X-No-Train: 1

sprint-status: 4-5 et 4-6 → done

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 14:36:06 +00:00
Antigravity
b825bdb8b2 fix: boucle infinie Maximum update depth dans useAutoTagging + toolbar
Some checks failed
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
- use-auto-tagging: onQuotaExceeded via ref stable → n'invalide plus
  useCallback analyzeContent à chaque render parent
- note-editor-context: filteredSuggestions et existingLabelsLower
  stabilisés avec useMemo (était recalculé sans memo → nouvelle ref
  à chaque render → état useMemo state se réexécutait → boucle)
- deepseek.ts: generateTags via generateText (pas generateObject)
  pour éviter response_format:json_schema non supporté

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 13:40:59 +00:00
Antigravity
1e00b01bc3 fix: quota auto_tag consommé 1x par application réelle, pas à chaque frappe
Some checks failed
CI / Lint, Unit Tests & Build (push) Successful in 5m33s
CI / Deploy production (on server) (push) Failing after 18s
- Route /api/ai/tags: supprime l'incrément sur les suggestions (UI only)
  → chaque keystroke (debounce 1.5s) ne consommait plus de quota
- notes.ts: incrément unique quand des labels IA sont réellement appliqués
  en background (syncNoteLabels)
- PRO limit: 200 → 500 auto_tag/mois (200 était trop bas)

Avant: écrire une note 5min = ~20 incréments pour UNE note
Après: 1 incrément uniquement si des labels sont effectivement appliqués

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 13:17:40 +00:00
Antigravity
4218470830 fix: génération slides dans la langue de la note (15 langues)
Some checks failed
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
- Récupère note.language (détecté automatiquement) depuis la DB
- LANG_NAMES: mapping code → nom complet (fa→Persian, ar→Arabic, zh→Chinese...)
- Injecte règle de langue absolue dans le prompt: tous les textes
  des slides doivent être dans la langue de la note
- Fonctionnement pour les 15 locales du projet

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 13:13:28 +00:00
Antigravity
6f8121e937 fix: nombre slides proportionnel aux vrais mots de la note
Some checks failed
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
- stripNoteMarkdown() : supprime #, **, URLs, métadonnées (Connection to seed,
  Novelty score, Origin...), frontmatter, code blocks
- countNoteWords() : compte les mots sémantiques réels
- slideLimit() : <50 mots → 3 slides, 50-150 → 4, 150-350 → 6, >350 → 8
- Le prompt injecte la règle dynamique avec priorité absolue (⚠️)
- Suppression des 3 occurrences hardcodées '6-12 slides'

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 13:09:46 +00:00
Antigravity
3ee07c5f55 fix: chart/diagram fond cohérent avec le thème + slides strictement proportionnels
Some checks failed
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
- slides-renderer: chart et diagram utilisent bg/text/muted du thème
  (plus de fond #111827 forcé)
- slides.tool: prompt ultra-clair (<50 mots = max 3 slides)
  + cappedSlides.slice(0,8) côté serveur comme filet de sécurité

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 12:41:41 +00:00
Antigravity
51d6334f8a fix: plafond strict 8 slides max + contrainte zod .max(8)
Some checks failed
CI / Lint, Unit Tests & Build (push) Successful in 6m48s
CI / Deploy production (on server) (push) Has been cancelled
- JAMAIS plus de 8 slides quelle que soit la note
- Zod schema: .max(8) coupe l'array si le modèle déborde
- Prompt: ignore markdown/URLs dans le comptage de mots
- Chart seulement si vraies données numériques dans la note

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 12:34:43 +00:00
Antigravity
40cfdc9357 fix: slide graphe noire + nombre slides adaptatif
Some checks failed
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
- slides-renderer: SlideChart supporte le nouveau format plat
  (slide.chartType + slide.data[{label,value}]) en plus de slide.chart
  → corrige la slide noire avec légende visible mais graphe vide
- slides.tool: nombre de slides adapté au contenu
  (3-4 pour note courte, 5-7 moyenne, 8-12 longue)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 12:26:32 +00:00
Antigravity
3fee8d8bbf fix: ajoute slide_generate et excalidraw_generate dans VALID_FEATURES
Some checks failed
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
Sans ça isValidFeature retourne false → QuotaExceededError immédiat

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 12:16:59 +00:00
Antigravity
f4208780fd fix: quota slide_generate pour tier BASIC
Some checks failed
CI / Lint, Unit Tests & Build (push) Successful in 5m43s
CI / Deploy production (on server) (push) Failing after 17s
- Ajoute slide_generate et excalidraw_generate dans TIER_LIMITS
  (BASIC: 3, PRO: 20, BUSINESS: 100, ENTERPRISE: unlimited)
- run-for-note: utilise le bon feature key selon le type d'agent
- slides.tool: incrémente slide_generate (pas reformulate)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 12:10:31 +00:00
Antigravity
9e23c078e9 fix: slide 3 noire, watermark PPTX, quota génération slides
Some checks failed
CI / Lint, Unit Tests & Build (push) Successful in 5m44s
CI / Deploy production (on server) (push) Failing after 17s
- canvas-board.tsx: préfère data.html (iframe) sur data.spec (ancien renderer)
  → corrige slide 3 noire en mode HTML viewer
- pptx/route.ts: ajoute watermark 'memento-note.com' sur chaque slide
  via buildPptx (PPTX téléchargé depuis le canvas)
- run-for-note/route.ts: checkEntitlementOrThrow avant création agent
- slides.tool.ts: incrementUsageAsync après canvas créé avec succès

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 11:58:31 +00:00
Antigravity
45fd501953 fix: PPTX watermark + black slide + pricing page /pricing
Some checks failed
CI / Lint, Unit Tests & Build (push) Successful in 6m23s
CI / Deploy production (on server) (push) Failing after 18s
- export-pptx.ts: fix watermark position for LAYOUT_WIDE (13.33"×7.5")
  → moved from y:5.35 (71% height) to y:7.1 near bottom-right (x:10.0)
- export-pptx.ts: fix buildSummarySlide dark background (T.primary overlay
  covered 100% of slide appearing black) → cream bg with colored stat cards
  matching design of other brainstorm slides
- pptx.tool.ts: fix addImageFullSlide using t.primary as bg when no imageUrl
  → falls back to t.bg (light); text colors adapt accordingly
- pricing/page.tsx: create /pricing standalone page reusing exact landing
  page pricing section (PLANS array, billing toggle, i18n keys)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 11:45:47 +00:00
Antigravity
8eb8f551fc Story 6-4/6-5: Chat with PDF (done) + PPTX watermark PLG
Some checks failed
CI / Lint, Unit Tests & Build (push) Successful in 11m47s
CI / Deploy production (on server) (push) Failing after 18s
Story 6-4 — Chat with PDF:
- Feature déjà implémentée (document-qa-overlay.tsx, ingestion, search)
- Marquée done dans sprint-status

Story 6-5 — PPTX Export Watermark (PLG viral loop):
- lib/brainstorm/export-pptx.ts: addWatermark + withWatermark helpers
- lib/ai/tools/pptx.tool.ts: même pattern monkey-patch addSlide
- Watermark 'memento-note.com' 7pt gris bas-droite sur chaque slide
- Zéro modification des 14+ fonctions de slides existantes
- 174 tests passent, aucune erreur TS

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 11:30:56 +00:00
Antigravity
6b4ed8514f Epic 6: Stories 6-2 (Markdown roundtrip) + 6-3 (Brainstorm PPTX + Canvas)
Some checks failed
CI / Lint, Unit Tests & Build (push) Successful in 5m37s
CI / Deploy production (on server) (push) Has been cancelled
Story 6-2 — Markdown roundtrip export/import:
- lib/editor/markdown-export.ts: tiptapHTMLToMarkdown, markdownToHTML, looksLikeMarkdown
- lib/editor/markdown-paste-extension.ts: TipTap extension paste Markdown → blocs
- note-editor-toolbar.tsx: export .md + import .md (file picker)
- rich-text-editor.tsx: intégration MarkdownPasteExtension
- 40 tests unitaires markdown-export.test.ts

Story 6-3 — Brainstorm PPTX + Canvas:
- lib/brainstorm/export-pptx.ts: génération PPTX 5 slides (pptxgenjs)
- app/api/brainstorm/[sessionId]/export-pptx/route.ts: route POST protégée
- brainstorm-page.tsx: bouton PPTX, auto-select session, fix emoji, fix router.replace
- wave-canvas.tsx: fitTrigger recentrage, légende bas-droite

Onboarding activation wizard (Story 6-1):
- components/onboarding/: wizard multi-étapes, hints éditeur
- app/api/onboarding/: route PATCH onboarding
- prisma/migrations: champs onboarding user

Locales: 15 langues mises à jour (brainstorm, markdown, onboarding keys)
Sprint: 6-1 done, 6-2 review, 6-3 review

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 11:24:56 +00:00
Antigravity
dae56187fc fix(byok): bypass api key validation in dev and fix minimax endpoint url
Some checks failed
CI / Lint, Unit Tests & Build (push) Successful in 5m43s
CI / Deploy production (on server) (push) Failing after 18s
2026-05-28 21:52:08 +00:00
Antigravity
7cc2a9ea3b feat(byok): fetch live models dynamically from provider api with user api key on input
Some checks failed
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
2026-05-28 21:49:32 +00:00
Antigravity
6703e75bf3 refactor(byok): move models suggestions list to server config models-list and fetch dynamically via API
Some checks failed
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
2026-05-28 21:44:55 +00:00
Antigravity
11a07adee7 feat(byok): add model selection to BYOK settings panel and overlay custom model on route resolution
Some checks failed
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
2026-05-28 21:41:34 +00:00
Antigravity
4bfa7c6b69 fix(prisma): provide fallback connection string when DATABASE_URL is unset during CI unit testing
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 44s
CI / Deploy production (on server) (push) Has been skipped
2026-05-28 21:20:48 +00:00
Antigravity
457c6fa626 feat(billing): implement robust in-app subscription cancellation & fix CI/CD socket port typo 2026-05-28 20:50:11 +00:00
Antigravity
ad8b8b815e feat(editor): implement US-EDITOR-UX with global block selection, redesigned slash menu (favorites & preview), contextual placeholders, smart paste extended, turn into and undo/redo toasts 2026-05-27 21:47:50 +00:00
Antigravity
07ace46dd3 feat(editor): implement next-gen editor with unique gutter drag handle, block actions menu, smart paste transclusion, and redesigned inline structured view block (US-NEXTGEN-EDITOR, US-4) 2026-05-27 21:39:21 +00:00
Antigravity
f46654f574 feat: editor improvements and architectural grid prototype
Multiple feature additions and improvements across the application:

- NextGen Editor: drag handles, smart paste, block actions
- Structured views: Kanban and table layouts for notes
- Architectural Grid: new brainstorming/agent interface prototype
- Flashcards: SM-2 revision algorithm with AI generation
- MCP server: robustness improvements
- Graph/PDF chat: fix click propagation and copy behavior
- Various UI/UX enhancements and bug fixes

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 19:45:15 +00:00
Antigravity
0784c94242 feat(notes): vues structurées tableau/kanban, flashcards et MCP robuste
Some checks failed
CI / Lint, Test & Build (push) Failing after 57s
CI / Deploy production (on server) (push) Has been skipped
Ajoute la base organisable par carnet (schéma, champs partagés, valeurs par note)
avec activation guidée, tableau éditable, kanban et suppression de colonnes.
Corrige le multiselect en vue tableau et enrichit sidebar, grille et i18n FR/EN.
Inclut aussi les améliorations flashcards SM-2, l'audit consentement IA et la
robustesse du serveur MCP (config, validation, rate-limit, métriques).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-24 23:03:16 +00:00
Antigravity
36336e6b0d feat(flashcards): révision SM-2, génération IA et page /revision
Some checks failed
CI / Lint, Test & Build (push) Failing after 32s
CI / Deploy production (on server) (push) Has been skipped
Livre US-FLASHCARDS avec decks, session de révision, stats et migration Prisma. Finalise le Web Clipper (i18n 15 langues) et corrige les erreurs ESLint bloquant la CI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-24 19:22:20 +00:00
Antigravity
e881004c77 feat(insights): fix DBSCAN, Persian embeddings crash, D3 physics layouts, and D3 node not found runtime error
Some checks failed
CI / Lint, Test & Build (push) Failing after 1m7s
CI / Deploy production (on server) (push) Has been skipped
2026-05-24 18:57:33 +00:00
Antigravity
e2672cd2c2 feat(notes): liens internes, onglet Réseau, living blocks et consentement IA
Some checks failed
CI / Lint, Test & Build (push) Failing after 1m19s
CI / Deploy production (on server) (push) Has been skipped
Rend les liens entre notes visibles et persistants (sync NoteLink au save, auto-save, graphe réseau rafraîchi), ajoute living blocks, Memory Echo, recherche globale, consentement IA explicite et consolide les prototypes design en architectural-grid.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-24 14:27:29 +00:00
Antigravity
077e665dfc feat(cluster): implement cluster detection and bridge notes discovery
Add automatic note clustering using density-based algorithm (DBSCAN variant)
and bridge notes detection for connecting different thematic clusters.

Features:
- NoteCluster, ClusterMember, BridgeNote, BridgeSuggestion models
- Clustering service with pgvector cosine similarity
- Bridge notes detection (notes connecting >=2 clusters)
- AI-powered suggestions for missing cluster connections
- /insights page with React Flow visualization
- Cron endpoint for automatic recalculation

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 20:26:25 +00:00
Antigravity
10777b62b1 debug(chart): add cache logging to debug cache misses 2026-05-23 10:15:45 +00:00
Antigravity
af3a263a54 fix(chart): transaction mapping fix + add cache for suggestions
- Fix transaction.mapping.map usage - it returns a position, not mapping
- Add 5-minute in-memory cache for chart suggestions (max 50 entries)
- Cache key based on content hash + selection
- Significantly improves UX when re-analyzing same content

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 10:12:11 +00:00
Antigravity
d1395d9b81 fix(chart): show correct chart type in previews
- Use NoteChart directly with props instead of NoteChartFromCode
- Remove markdown ticks from chartSuggestionToMarkdown output
- Export NoteChart component for direct use in previews

Now the 3 suggestions correctly show different chart types.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 10:00:44 +00:00
Antigravity
625a79a1f9 fix: multiple issues
1. Script warning in layout.tsx
   - Use Next.js Script component instead of plain <script>

2. QUOTA_EXCEEDED bug for chart suggestions
   - Add 'suggest_charts' to VALID_FEATURES
   - Add 'suggest_charts' to TIER_LIMITS for all tiers
   - Fix route to use 'suggest_charts' instead of invalid 'ai' feature

This fixes the issue where users with valid credit were getting
QUOTA_EXCEEDED errors because 'ai' was not a valid feature name.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 09:31:38 +00:00
Antigravity
18ffd76c1e fix(chart): improve error handling and color variety
- Add quotaExceeded flag to response for better error UX
- Show dedicated quota exceeded state with upgrade button
- Improve AI prompt to better detect data patterns
- Add chart type-specific colors (blue, indigo, emerald, violet, etc.)
- Replace generic primary/10 colors with varied accent colors

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 09:19:52 +00:00
Antigravity
a122a0eade feat(ai): add AI chart suggestions in TipTap editor
Implement slash command "/suggest-charts" that analyzes note content
and suggests 3 appropriate chart types with visual previews.

Created:
- chart-suggestion.tool.ts: AI tool for data extraction and chart recommendations
- suggest-charts/route.ts: API endpoint for chart suggestions
- chart-suggestion.service.ts: Frontend service layer
- chart-suggestions-dialog.tsx: Modal with 3 chart proposals and thumbnails
- tiptap-chart-extension.tsx: TipTap Node extension for rendering chart blocks

Modified:
- rich-text-editor.tsx: Added slash command, toolbar button, and dialog integration

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 08:58:46 +00:00
Antigravity
bfaacc557f fix(chart): simplify to single insert_chart tool that does everything
Some checks failed
CI / Lint, Test & Build (push) Failing after 15s
CI / Deploy production (on server) (push) Has been skipped
2026-05-22 18:30:11 +00:00
Antigravity
beca2c52c3 feat: add inline chart support for notes
Some checks failed
CI / Lint, Test & Build (push) Failing after 15s
CI / Deploy production (on server) (push) Has been skipped
- Add NoteChart component using Recharts (bar, line, area, pie, radar, funnel, gauge)
- Add generate_chart and insert_chart_in_note AI tools
- Add chart code block support in MarkdownContent (```chart ... ```)
- Support JSON and simple data formats (label: value)
- Add i18n translations for chart features

Chart syntax examples:
- JSON: ```chart {"type":"bar","data":[{"label":"A","value":10}]} ```
- Simple: ```chart\nbar\nSales Data\nJan: 120\nFeb: 150\n```

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 17:29:10 +00:00
Antigravity
5728452b4a feat: add slides generation tool with multiple slide types
Some checks failed
CI / Lint, Test & Build (push) Failing after 17s
CI / Deploy production (on server) (push) Has been skipped
- Add slides.tool.ts with support for title, bullets, chart, stats, table, cards, timeline, quote, comparison, equation, image, summary slide types
- Chart types: bar, horizontal-bar, line, donut, radar
- Integrate with agent executor and canvas system
- Add multilingual support (en/fr)
- Various UI improvements and bug fixes

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 17:18:48 +00:00