feat: brainstorm sessions, PDF document Q&A, embedding fixes, and UI improvements
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 7s

- Add brainstorm feature with collaborative canvas, AI idea generation, live cursors, playback, and export
- Add PDF upload/extraction/ingestion pipeline with pgvector document search (RAG)
- Add document Q&A overlay with streaming chat and PDF preview
- Add note attachments UI with status polling, grid layout, and auto-scroll
- Add task extraction AI tool and agent executor improvements
- Fix NoteEmbedding missing updatedAt column, re-index 66 notes with 1536-dim embeddings
- Fix brainstorm 'Create Note' button: add success toast and redirect to created note
- Fix memory echo notification infinite polling
- Fix chat route to always include document_search tool
- Add brainstorm i18n keys across all 14 locales
- Add socket server for real-time brainstorm collaboration
- Add hierarchical notebook selector and organize notebook dialog improvements
- Add sidebar brainstorm section with session management
- Update prisma schema with brainstorm tables, attachments, and document chunks
This commit is contained in:
Antigravity
2026-05-14 17:43:21 +00:00
parent 195e845f0a
commit 1fcea6ed7d
228 changed files with 57656 additions and 1059 deletions

View File

@@ -19,7 +19,7 @@
--color-memento-ink: #1C1C1C;
--color-primary: #ACB995;
--color-memento-accent: #D4A373;
--color-memento-blue: #75B2D6;
--color-memento-blue: #A47148;
--color-memento-paper-elevated: #faf9f5;
--color-background-light: var(--color-memento-paper);
--color-background-dark: #202020;
@@ -29,7 +29,7 @@
--color-paper: var(--paper);
--color-muted-ink: var(--muted-ink);
--color-concrete: var(--concrete);
--color-blueprint: #75B2D6;
--color-blueprint: #A47148;
--color-ochre: #D4A373;
--color-sage: #A3B18A;
--color-rust: #9B2226;
@@ -273,6 +273,13 @@ html.dark .sidebar-inbox-item.active {
opacity: 0.7;
}
/* Persian/Arabic: avoid uppercase + wide tracking on mixed scripts; bidi class set in TSX */
.note-date-badge.note-date-badge--locale-rtl {
text-transform: none;
letter-spacing: 0.08em;
unicode-bidi: isolate;
}
/* AI send button accent */
.ai-send-btn {
background: var(--ai-accent);
@@ -1181,7 +1188,7 @@ html.font-system * {
.notion-editor-wrapper .ProseMirror p.is-editor-empty:first-child::before,
.notion-editor-wrapper .ProseMirror p.is-empty::before {
content: attr(data-placeholder);
float: left;
float: inline-start;
color: var(--muted-foreground);
pointer-events: none;
height: 0;
@@ -1221,13 +1228,13 @@ html.font-system * {
/* --- Lists --- */
.notion-editor-wrapper .ProseMirror ul {
list-style-type: disc;
padding-left: 1.5rem;
padding-inline-start: 1.5rem;
margin: 0.25em 0;
}
.notion-editor-wrapper .ProseMirror ol {
list-style-type: decimal;
padding-left: 1.5rem;
padding-inline-start: 1.5rem;
margin: 0.25em 0;
}
@@ -1243,7 +1250,7 @@ html.font-system * {
/* --- Task / Todo List --- */
.notion-editor-wrapper .ProseMirror ul[data-type="taskList"] {
list-style: none;
padding-left: 0;
padding-inline-start: 0;
}
.notion-editor-wrapper .ProseMirror ul[data-type="taskList"] li {
@@ -1301,13 +1308,16 @@ html.font-system * {
/* --- Blockquote --- */
.notion-editor-wrapper .ProseMirror blockquote {
border-left: 3px solid var(--primary);
padding: 0.25em 0 0.25em 1em;
border-inline-start: 3px solid var(--primary);
padding-block: 0.25em;
padding-inline-start: 1em;
padding-inline-end: 0;
margin: 0.4em 0;
color: var(--muted-foreground);
font-style: italic;
background: oklch(0.5 0 0 / 0.03);
border-radius: 0 4px 4px 0;
border-start-end-radius: 4px;
border-end-end-radius: 4px;
}
/* --- Code --- */
@@ -1983,13 +1993,13 @@ html.font-system * {
.rt-preview ul,
.rt-preview ol {
padding-left: 1.25rem;
padding-inline-start: 1.25rem;
margin: 0.2em 0;
}
.rt-preview blockquote {
border-left: 3px solid var(--border);
padding-left: 0.75rem;
border-inline-start: 3px solid var(--border);
padding-inline-start: 0.75rem;
color: var(--muted-foreground);
margin: 0.3em 0;
}
@@ -2036,7 +2046,7 @@ html.font-system * {
.fullpage-editor .ProseMirror ol {
font-size: 1.125rem;
line-height: 1.8;
padding-left: 1.5em;
padding-inline-start: 1.5em;
margin-bottom: 1em;
}
@@ -2045,8 +2055,8 @@ html.font-system * {
}
.fullpage-editor .ProseMirror blockquote {
border-left: 3px solid var(--foreground);
padding-left: 1.25rem;
border-inline-start: 3px solid var(--foreground);
padding-inline-start: 1.25rem;
font-size: 1.2rem;
font-style: italic;
font-family: var(--font-memento-serif, Georgia, serif);
@@ -2058,7 +2068,7 @@ html.font-system * {
.fullpage-editor .ProseMirror p.is-editor-empty:first-child::before {
color: var(--muted-foreground);
content: attr(data-placeholder);
float: left;
float: inline-start;
height: 0;
pointer-events: none;
font-size: 1.125rem;