- ai-chat: sélecteur tone (Professional/Créatif/Académique/Décontracté)
passé via noteContext.tone dans le body vers /api/chat
- network-graph: dragended garde fx/fy → nœud épinglé après drag
double-clic sur nœud pour désépingler (fx=null, fy=null)
- sprint-status: 6-2 et 6-3 passés en done
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
L'input caché dans le toolbar était bloqué par le conteneur parent.
Maintenant l'input est créé dynamiquement dans le handler et détruit
après usage — garanti d'ouvrir l'explorateur fichiers.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- 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>
- SlideChart reçoit isDark et adapte tooltip, tick, grid, cursor, légende
- margin bottom 40px pour que les labels X-axis ne soient plus coupés
- cursor et tooltip blancs en thème clair (fini le carré noir)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- 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>
Le graphe était noir car recharts cherchait xKey='name' mais les données
avaient {label,value}. Fix dans normalizeSlide case 'chart':
- data.map({label,value} → {name,value})
- xKey: 'name', yKeys: ['value'] explicitement
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- 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>
Reverts le changement qui avait cassé les graphes des slides.
data.spec → SlidesRenderer (recharts, graphes OK)
data.html → iframe (fallback si pas de spec)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- 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>
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>
- Auto-sauvegarde à la fermeture de l'éditeur fullPage si isDirty (évite
que la vignette reste après suppression d'image sans Ctrl+S)
- Correction de resolveImagesForSave : fusion des images contenu HTML +
images standalone (hors éditeur) en excluant les removedImageUrls,
pour ne pas perdre les images uploadées séparément à la sauvegarde
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>
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>
Use editor.commands.insertContent with JSON node definition instead of
direct transaction manipulation. This is more reliable for custom nodes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 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>
Instead of relying on HTML parsing which can be inconsistent,
create the chartBlock node directly using TipTap's schema and transaction API.
This ensures the custom node is properly created and rendered as a visual chart.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 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>
- Convert chart markdown to <pre><code class="language-chart"> HTML format
- Fix parseHTML to store code content in node attrs
- Fix renderHTML to output actual code content instead of placeholder
This fixes charts rendering as raw markdown text instead of visual charts.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add step-by-step console logging in API route
- Show actual error message in dialog
- Add debug info section
- Wrap each section in try-catch to isolate failure point
- Remove conflicting tool approach, use direct JSON
- Add fallback: extract numbers from regex if AI fails
- Add debug section to show what content was analyzed
- Be more lenient: any 2+ numbers = valid chart
- Better error messages
- Add console logging for debugging
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 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>