Close open uploads, image-proxy SSRF, fail-open AI quotas in production,
auth gaps on app routes, and MCP tenant isolation issues.
Co-authored-by: Cursor <cursoragent@cursor.com>
1. replaceAll (Find & Replace) — une seule transaction ProseMirror
au lieu d'un forEach cassé. Tous les matchs sont maintenant remplacés.
2. Link Preview unwrap — deleteNode() au lieu de clearer les attrs
qui laissaient un nœud fantôme invisible dans le document.
3. Conversion Markdown → richtext — breaks: true dans marked.parse()
Les simple newlines sont maintenant convertis en <br>.
+ préserve les blocs custom (toggle, callout, math, columns,
outline, link-preview) en commentaires HTML lors de l'export MD.
4. emitNoteChange exercices — shape corrigée (type:'created' attend
un objet Note, pas noteId/notebookId séparés).
5. Raccourcis clavier sans conflit :
Cmd+Shift+C → Cmd+Alt+C (callout, avant: copier)
Cmd+Shift+O → Cmd+Alt+O (outline, avant: historique/signets)
Cmd+Shift+L → Cmd+Alt+L (colonnes, avant: lock screen macOS)
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 getChatProvider() + provider.getModel() instead of
resolveAiRouteWithTiming which doesn't return a provider function.
Follow the pattern used in chat/insights/route.ts.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The AI router only supports lanes: 'chat', 'tags', 'embedding'.
'suggest-charts' was not a valid lane causing 500 errors.
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>
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>
- 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>
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>