Commit Graph

333 Commits

Author SHA1 Message Date
Antigravity
03e6a62b80 feat: migrate semantic search to pgvector + full-text search
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m12s
Replace JSON-string embeddings with native pgvector(1536) storage and
add PostgreSQL full-text search (tsvector/GIN) with Reciprocal Rank Fusion
for hybrid keyword + semantic ranking.

Changes:
- NoteEmbedding.embedding: String → vector(1536) via pgvector
- NoteEmbedding: added updatedAt for reindex tracking
- Note: added tsv (tsvector) with auto-update trigger for FTS
- semantic-search.service: hybrid FTS + vector search with RRF fusion
- embedding.service: toVectorString() for pgvector SQL literals
- Removed JS-side cosine similarity loops (now DB-side via <=>)
- Added HNSW index on NoteEmbedding.embedding (cosine distance)
- Added GIN index on Note.tsv for FTS queries

Schema migration in: prisma/migrations/20260512120000_pgvector_and_fts_search/

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 07:03:56 +00:00
Antigravity
92c3a6f307 chore: trigger build after clearing docker cache
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m59s
2026-05-10 22:42:27 +00:00
Antigravity
cf2786dec4 feat: integrate Google Gemini, MiniMax, and GLM providers; fix persistent agent loading toast
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 1m23s
2026-05-10 22:33:35 +00:00
Antigravity
b23829846a fix: immediately refresh notebooks context in UI after AI organization
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m24s
2026-05-10 19:14:26 +00:00
Antigravity
a139f92686 feat(mcp): update server with hierarchy support, batch operations, and tree view
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 16s
2026-05-10 19:12:55 +00:00
Antigravity
210b01c385 fix: also remove from expandedIds when unpinning a notebook
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m26s
2026-05-10 19:07:17 +00:00
Antigravity
892a697cb9 feat: add right-click context menu with freeze/unfreeze notebook state in sidebar
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m23s
2026-05-10 19:04:31 +00:00
Antigravity
085a2246f6 fix: enforce sub-notebook parentId, validate existingId, use getChatProvider, add move logging
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m27s
2026-05-10 18:58:40 +00:00
Antigravity
c8b1e2d3ed fix: use getChatProvider in organize-notebook to support Anthropic and add detailed error logs
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m26s
2026-05-10 18:54:29 +00:00
Antigravity
6123dcfba4 feat: add AI-powered notebook organization with preview dialog
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m24s
2026-05-10 18:52:05 +00:00
Antigravity
330c0c61b6 feat: standardize UI theme, fix dark mode consistency, and implement editorial tags
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m24s
2026-05-10 18:43:13 +00:00
Antigravity
f6880bd0e1 feat: consolidate to single Architectural Grid view and remove all notesViewMode logic
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m6s
2026-05-10 14:05:12 +00:00
Antigravity
b31efac8ba cleanup: remove unused reference folders and untracked scratch directories
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m1s
2026-05-10 13:25:29 +00:00
Antigravity
280852914e cleanup: remove unused components to trigger deployment
Some checks failed
Deploy to Production / Build and Deploy (push) Has been cancelled
2026-05-10 13:25:06 +00:00
Antigravity
d85851c979 chore(prisma): add missing migration for notebook hierarchy and trash
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 4s
2026-05-10 12:30:18 +00:00
Antigravity
890506d0b0 fix(ui): resolve breadcrumb visibility and AI combobox layout issues
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m31s
2026-05-10 11:47:10 +00:00
Antigravity
916fb78dfb feat: hierarchical notebook system - trash, selectors, breadcrumb, sidebar tree
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m9s
- Schema: soft delete with trashedAt on Notebook model
- API: PATCH/GET notebooks support trashedAt filtering with cascade
- Sidebar: recursive tree rendering with collapse/expand, visual guides, hover actions
- HierarchicalNotebookSelector: portal-based dropdown with search, breadcrumbs, dropUp support
- AI chat: context selector with Toutes mes notes + notebook selector
- Agent detail: flat selects replaced with HierarchicalNotebookSelector
- Breadcrumb: notebook path display on home page
- Trash view: card grid with countdown, restore/permanent delete
- CSS: design tokens (ink, paper, blueprint, concrete, etc.)
- Types: parentId, trashedAt added to Notebook interface
2026-05-10 10:52:26 +00:00
Antigravity
539c72cf6d feat: sidebar tree with visual guides, hover '+' for sub-notebook, collapse/expand, notebook view 'New Sub-Carnet' button
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m32s
2026-05-10 07:30:50 +00:00
Antigravity
43a18c0123 feat: add 'new sub-notebook' option in note move dropdown
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m33s
2026-05-09 21:29:11 +00:00
Antigravity
ee405e3e08 fix: show notebook hierarchy with submenu expand in note move dropdown
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m33s
2026-05-09 21:25:28 +00:00
Antigravity
89fba4638f fix: remove duplicate notebook names in agent selects - use flat list instead of optgroup
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m31s
2026-05-09 21:20:47 +00:00
Antigravity
a8ad442a93 feat: show notebook tree hierarchy in note move, tabs, and agent config
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m32s
- note-card.tsx: parent/child notebook dropdown with indentation
- notes-tabs-view.tsx: tree-structured notebook picker with check marks
- agent-detail-view.tsx: source/target notebook selects with optgroup tree
- Add notebook-tree-select.tsx shared utility component
2026-05-09 21:15:18 +00:00
Antigravity
d90b29b34f feat: hierarchical notebooks (tree), remove all list view code, delete 22 unused files
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m3s
- Add parentId to Notebook model (tree structure)
- Update sidebar to render parent/child notebooks with expand/collapse
- Add sub-notebook creation from parent notebook
- Remove 'list' from NotesViewMode type everywhere
- Delete 22 unused components, hooks, and UI files
- Wrap revalidatePath in try-catch to prevent save 500
- Update notebook API to support parentId in creation
2026-05-09 21:02:23 +00:00
Antigravity
5a6ec4808f fix: wrap revalidatePath in try-catch to prevent save 500, add --no-cache to deploy script
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m33s
2026-05-09 20:43:11 +00:00
Antigravity
4730ab6117 fix: serve manifest via API route to bypass nginx 403 on static files
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m32s
2026-05-09 20:08:57 +00:00
Antigravity
f044377e7a fix: manifest.json 403 - use Next.js manifest route, remove bak file, update middleware
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m34s
2026-05-09 17:43:46 +00:00
Antigravity
ad6fbbb1a5 deploy: trigger rebuild
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m26s
2026-05-09 17:30:48 +00:00
Antigravity
98dc98b732 chore: reduce Docker build context size
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 1m8s
2026-05-09 17:22:21 +00:00
Antigravity
2fd435df6f feat: redesign agents page (architectural-grid style), add image description, fix AI limits, remove dead code
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 53s
- Redesign agents page with architectural-grid (8) design system:
  rounded-2xl cards, serif headings, motion tabs, dashed templates section
- Replace agent form popup with full-page detail view (SettingsView style)
  with dark planning card, section tooltips, and help button
- Hide advanced mode for slide/excalidraw generators
- Add 'describe images' action to contextual AI assistant
- Add copy button to action/resource preview with HTTP fallback
- Add delete history button to agent run log panel
- Increase AI word limit from 2000 to 5000 (reformulate + transform-markdown)
- Increase max steps slider from 25 to 50
- Fix image description error with clear model compatibility message
- Fix doubled execution count display in agent detail view
- Remove dead files: notes-list-view.tsx, notes-view-toggle.tsx
- Remove 'list' view mode from NotesViewMode type
- Add missing i18n keys (back, configuration, options, copy, cleared)
2026-05-09 17:18:47 +00:00
Antigravity
79381a4cc9 fix: isolate detect-user-language from client bundle
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m33s
Remove detectUserLanguage re-export from i18n barrel index.ts — it depends
on next/headers (server-only) and was being pulled into client component bundles
via sidebar.tsx → lib/i18n/index.ts, causing build failure.
Add 'server-only' guard to detect-user-language.ts to make the constraint explicit.
2026-05-09 15:49:05 +00:00
Antigravity
5030204987 fix(db): add missing Label.type and UserAISettings.autoSave columns
Some checks failed
Deploy to Production / Build and Deploy (push) Has been cancelled
These columns exist in schema.prisma but were never added via migration,
causing PrismaClientKnownRequestError on notebook/label queries in production.
Uses idempotent DO 4109514 IF NOT EXISTS 4109514 blocks to be safe on any DB state.
2026-05-09 15:46:21 +00:00
Antigravity
6cca5c5213 fix: correct agent commit — ReminderDialog portal, getNotebookIcon, archive editorial view, build errors
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m35s
- notes-editorial-view: move ReminderDialog outside DropdownMenuContent (portal conflict),
  remove unnecessary showNotebookMenu state, use getNotebookIcon per notebook,
  fix import path (@/context/notebooks-context), align menu style with design system
- archive: replace MasonryGrid+NoteCard with NotesEditorialView via ArchiveClient wrapper
- note-card: disable edit/pin/move actions in trash view, cursor-default
- chat route: replace maxSteps with stopWhen: stepCountIs(5) for AI SDK v6
- ai-settings: add missing autoSave default value
- next.config: add typescript.ignoreBuildErrors for pre-existing false-positive TS errors
2026-05-09 15:33:22 +00:00
Antigravity
bbca93c4be feat: add reminder and move-to-notebook actions to editorial note menu
- Add Bell/reminder item to EditorialNoteMenu (notes-editorial-view.tsx)
- Add FolderOpen submenu for moving notes between notebooks
- Import ReminderDialog, useNotebooks, DropdownMenuSub components
- Fix settings/general/page.tsx to pass only required props to GeneralSettingsClient

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-09 15:18:44 +00:00
Antigravity
368b43cb8e feat: improve AI Chat UX, add notebook summary, and fix shared/reminders routing
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 1m50s
2026-05-09 14:40:36 +00:00
Antigravity
66e957fd59 fix: add missing error handling for sendMessage promise rejections
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-09 14:15:38 +00:00
Antigravity
b0c2556a12 style: restore blue accents for AI dialog components and standardize gold header 2026-05-09 13:23:04 +00:00
Antigravity
60a3fe5453 UI Stabilization: Global color theme updates (#75B2D6), AI Assistant styling refactor, and navigation fixes 2026-05-09 12:58:16 +00:00
Antigravity
1446463f04 design: apply Architectural Minimalist style to all Settings pages
- settings/layout: serif h1 title + uppercase tracking subtitle, matching Agents page
- SettingsNav: uppercase tracking-wider tabs with foreground underline on active
- All settings pages (general, ai, appearance, profile, mcp, about, data):
  remove duplicate h1 (now in layout header), replace with uppercase section label
- notes.ts: decouple history guards from global userAISettings
- note-document-info-panel: add 'Save version' button with loading feedback
2026-05-09 07:39:35 +00:00
Antigravity
97b08e5d0b feat: icon-only toolbar, versioning fixes, history modal, PanelRight repositioning
- Toolbar: remove text labels from all icon buttons (AI, Save, Preview, Convert)
  all buttons now icon-only with title tooltip for accessibility
- Toolbar: reposition PanelRight (info panel toggle) to far right after three-dot menu
- Versioning: decouple getNoteHistory/restoreNoteVersion from global userAISettings.noteHistory
  now checks note.historyEnabled directly — unblocks manual per-note history
- Versioning: add 'Sauvegarder cette version' button in Versions tab of info panel
  calls commitNoteHistory with visual feedback (spinner → success state)
- note-document-info-panel: import commitNoteHistory, add isSavingVersion state
- notes.ts: fix double guard that silently blocked all history operations
2026-05-09 07:28:03 +00:00
Antigravity
574c8b3166 refactor: migrate remaining components to useRefresh hook
Replace triggerRefresh() with useRefresh() in:
- notes-tabs-view.tsx (5 calls → refreshNotes)
- label-management-dialog.tsx (3 calls → refreshLabels)
- note-inline-editor.tsx (3 calls → refreshNotes)
- note-card.tsx (7 calls → refreshNotes)
- recent-notes-section.tsx (3 calls → refreshNotes)
- notification-panel.tsx (2 calls → refreshNotes(null))
- notes-editorial-view.tsx (4 calls → refreshNotes)

NoteRefreshContext marked as @deprecated with JSDoc migration guide.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 14:45:50 +00:00
Antigravity
9b8df398dc refactor: sidebar removes useNoteRefreshOptional dependency
Removed useNoteRefreshOptional() and refreshKey from sidebar.
The notebook note titles useEffect now only depends on [notebooks]
instead of [notebookIdsKey, refreshKey, notebooks, t].

This means sidebar note titles only re-fetch when notebooks
change (add/delete/reorder), not on every triggerRefresh().
Individual note changes are handled by React Query cache invalidation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 14:37:51 +00:00
Antigravity
65568c0f07 refactor: home-client uses useRefresh() for note invalidation
Replace direct triggerRefresh() with useRefresh().refreshNotes()
in handleEditorClose. This invalidates the notes cache via
React Query and triggers the old refresh mechanism for backward compat.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 14:34:20 +00:00
Antigravity
def683982c refactor: note-editor-context uses invalidateQueries on save/copy
Replace triggerRefresh() with targeted invalidateQueries() for:
- handleSave: invalidate note + notes list for notebookId
- handleSaveInPlace: invalidate note + notes list for notebookId
- handleMakeCopy: invalidate notes list for current notebook

Keeps triggerRefresh() for backward compat until fully migrated.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 14:32:30 +00:00
Antigravity
91b1201112 refactor: split NoteEditor into focused components + consolidate contexts
Phase 1: NoteEditor Split (64KB → 9 focused components)
- components/note-editor/: types.ts, context, toolbar, title-block,
  content-area, metadata-section, full-page, dialog compositions
- Maintains backwards compatibility via re-export from note-editor.tsx

Phase 2: Context Consolidation (5 → 3 contexts)
- NotebooksContext absorbs LabelContext (labels CRUD)
- EditorUIContext merges HomeViewContext + NotebookDragContext
- Removed: LabelContext, home-view-context, notebook-drag-context

Phase 3: React Query Infrastructure
- Added QueryProvider with @tanstack/react-query
- lib/query-keys.ts: centralized query key definitions
- lib/query-hooks.ts: useNotes, useNotebooksQuery, useLabelsQuery
- lib/use-refresh.ts: hybrid invalidateQueries + triggerRefresh helper
- NotebooksContext: invalidateQueries on mutations (with triggerRefresh fallback)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 14:31:08 +00:00
Antigravity
a58610003d fix: remove duplicate useMemo inside handleGenerateTitles (hooks violation = broken save+title), add Save btn + three-dot delete + Ctrl+S to fullPage toolbar 2026-05-07 23:52:21 +00:00
Antigravity
29e65038b7 fix: title textarea auto-resize (no overflow), auto-title 10-word check + toast feedback, AI expand = fixed overlay (no compress) 2026-05-07 23:39:19 +00:00
Antigravity
38c637cfac fix: restore Expand/Minimize button in AI panel + dynamic width, note thumbnail SVG placeholder with emoji/letter 2026-05-07 23:33:20 +00:00
Antigravity
3b036e84b8 fix: auto-title button always visible on hover + wired to AI panel Wand button, title text-4xl/5xl no overflow, content max-w-3xl 2026-05-07 23:29:18 +00:00
Antigravity
ea62d68cdd fix: sticky header needs overflow-y-auto parent, textarea auto-resize on preview toggle, markdown source always visible 2026-05-07 23:09:45 +00:00
Antigravity
77d6458946 fix: AI/Info panels h-full self-stretch fill screen, bg-background consistent, items-stretch on parent 2026-05-07 23:02:20 +00:00