fix: brainstorm infinite loop, ghost cursor, embedding ::vector cast, semantic search, billing stats, usage meter accordion
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 5s

- Fix useBrainstormSocket: stable guestId via useRef, remove setState in cleanup
- Fix GhostCursor: direct DOM manipulation via refs, no useState re-renders
- Fix all SQL embedding queries: add ::vector cast on text columns
- Fix embedding truncation to 15000 chars (under 8192 token limit)
- Fix NoteEmbedding INSERT: remove non-existent updatedAt column
- Fix billing page: show all quota stats in grid instead of single metric
- Fix usage meter: accordion expand/collapse, per-feature detail
- Fix semantic search: rebuild 103 note embeddings, ::vector cast on vectorSearch
- Fix brainstorm expand/manual-idea/create: ::vector cast on embedding SQL
This commit is contained in:
Antigravity
2026-05-16 18:50:34 +00:00
parent ee8e2bda59
commit 8c7ca69640
117 changed files with 11732 additions and 834 deletions

View File

@@ -890,7 +890,7 @@
"recentNotesUpdateFailed": "Recente notities-instelling bijwerken mislukt"
},
"aiSettings": {
"title": "AI-instellingen",
"title": "AI",
"description": "Configureer uw AI-aangedreven functies en voorkeuren",
"features": "AI-functies",
"provider": "AI-provider",
@@ -917,7 +917,8 @@
"autoLabeling": "Labelsuggesties",
"autoLabelingDesc": "Stelt automatisch labels voor en past deze toe op uw notities",
"noteHistory": "Let op de geschiedenis",
"noteHistoryDesc": "Schakel momentopnamen van versies en herstel vanuit de geschiedenis in"
"noteHistoryDesc": "Schakel momentopnamen van versies en herstel vanuit de geschiedenis in",
"titleSuggestions": "Titelsuggesties"
},
"general": {
"loading": "Laden...",
@@ -1115,7 +1116,13 @@
"languageDetection": "Taaldetectie",
"languageDetectionDesc": "Detecteert automatisch de taal van elke notitie",
"autoLabeling": "Automatisch labelen",
"autoLabelingDesc": "Stelt labels voor en past ze automatisch toe"
"autoLabelingDesc": "Stelt labels voor en past ze automatisch toe",
"fallbackSectionTitle": "Fallback-provider (optioneel)",
"fallbackSectionDescription": "Wordt automatisch gebruikt bij providerfouten (429, 5xx). Eén nieuwe poging binnen 1,5 s.",
"fallbackProvider": "Fallback-provider",
"fallbackModel": "Fallback-model",
"fallbackNone": "Geen (uitgeschakeld)",
"fallbackModelPlaceholder": "bijv. gpt-4o-mini"
},
"resend": {
"title": "Resend (Aanbevolen)",
@@ -1173,6 +1180,8 @@
"deleteFailed": "Verwijderen mislukt",
"roleUpdateSuccess": "Gebruikersrol bijgewerkt naar {role}",
"roleUpdateFailed": "Rol bijwerken mislukt",
"tierUpdateSuccess": "Subscription updated to {tier}",
"tierUpdateFailed": "Failed to update subscription",
"demote": "Degraderen",
"promote": "Bevorderen",
"confirmDelete": "Weet u zeker dat u deze gebruiker wilt verwijderen?",
@@ -1180,6 +1189,7 @@
"name": "Naam",
"email": "E-mail",
"role": "Rol",
"subscription": "Subscription",
"createdAt": "Aangemaakt op",
"actions": "Acties"
},
@@ -1371,7 +1381,7 @@
"loading": "Laden..."
},
"dataManagement": {
"title": "Gegevensbeheer",
"title": "Data",
"toolsDescription": "Hulpmiddelen om de gezondheid van uw database te behouden",
"exporting": "Exporteren...",
"importing": "Importeren...",
@@ -1436,7 +1446,7 @@
"fontJetBrainsMono": "JetBrains Mono"
},
"generalSettings": {
"title": "Algemene instellingen",
"title": "General",
"description": "Algemene applicatie-instellingen"
},
"toast": {
@@ -1622,7 +1632,7 @@
"collapse": "Inklappen"
},
"mcpSettings": {
"title": "MCP-instellingen",
"title": "MCP",
"description": "Beheer uw API-sleutels en configureer externe tools",
"whatIsMcp": {
"title": "Wat is MCP?",
@@ -2211,7 +2221,9 @@
"exportDefaultNoteTitle": "Synthesis",
"exportOpening": "Opening…",
"ownerBadge": "Owner",
"waveBadge": "Wave {wave}"
"waveBadge": "Wave {wave}",
"quotaGuest": "De sessiehost heeft zijn AI-limiet bereikt. Vraag om een upgrade van het abonnement.",
"quotaHost": "Je hebt je AI-limiet voor deze brainstorm bereikt. Upgrade je abonnement om door te gaan."
},
"usageMeter": {
"packName": "AI Discovery Pack",
@@ -2323,6 +2335,215 @@
"checkoutSuccessBody": "Welkom bij {tier}. Je functies zijn nu ontgrendeld.",
"subscriptionType": "subscriptionType",
"renewalDate": "renewalDate",
"noRenewalDate": "—"
"noRenewalDate": "—",
"currentUsage": "Huidig gebruik",
"currentPeriod": "Huidige periode",
"aiCredits": "AI-credits",
"used": "gebruikt",
"billing": "Facturatie",
"renewal": "Verlenging",
"paidPlanDesc": "Uw abonnement wordt automatisch verlengd.",
"businessDescription": "Voor teams en productmanagers."
},
"landing": {
"nav": {
"features": "Functies",
"agents": "AI-agents",
"brainstorm": "Brainstorm",
"pricing": "Prijzen",
"tech": "Architectuur",
"login": "Inloggen",
"cta": "Aan de slag"
},
"hero": {
"badge": "Aangedreven door kunstmatige intelligentie",
"title1": "Uw tweede brein,",
"title2": "eindelijk versterkt.",
"subtitle": "Momento is meer dan een notitie-app. Het is een intelligent ecosysteem dat uw ideeën in realtime verbindt, analyseert en ontwikkelt met 6 soorten AI-agents en geavanceerde semantische zoekfunctie.",
"cta": "Nu registreren",
"secondary": "Bekijk functies",
"memoryEcho": "Memory Echo",
"memoryEchoText": "\"Verbinding gedetecteerd met uw duurzaam designproject van maart 2024...\"",
"brainstormLive": "Brainstorm Live",
"ideasGenerated": "+12 ideeën gegenereerd"
},
"features": {
"label": "AI-mogelijkheden",
"title": "Vloeiende intelligentie,",
"title2": "verweven in elk woord.",
"desc": "Momento orkestreert uw ideeën via een multi-provider architectuur.",
"f1Title": "Semantisch zoeken",
"f1Desc": "Stop met zoeken op trefwoorden. Vind op concept. Onze hybride Vector + FTS-engine begrijpt de intentie achter uw notities.",
"f2Title": "Contextuele RAG-chat",
"f2Desc": "Praat met uw kennis. Onze agents lezen uw notities, verkennen het web en analyseren documenten voor nauwkeurige antwoorden.",
"f3Title": "Augmented schrijven",
"f3Desc": "Herschrijven, titelsuggesties, automatisch taggen en samenvattingen. AI structureert uw denken op de achtergrond."
},
"agents": {
"label": "Gespecialiseerde agents",
"title": "Delegeer complex werk.",
"desc": "6 soorten autonome AI-agents voor onderzoek, samenvattingen en presentaties.",
"scraper": {
"title": "Scraper",
"desc": "Scrapet URL's, parseert RSS-feeds en synthetiseert info met slimme beeldplaatsing."
},
"researcher": {
"title": "Researcher",
"desc": "Genereert complexe queries, verkent webbronnen en schrijft gestructureerde onderzoeksnotities."
},
"slideGen": {
"title": "Slide Gen",
"desc": "Zet uw notities om in professionele PowerPoint-presentaties of interactieve HTML-slides."
},
"monitor": {
"title": "Monitor",
"desc": "Analyseert continu uw notitieboeken om trends en nieuwe inzichten te detecteren."
},
"diagramGen": {
"title": "Diagram Gen",
"desc": "Zet ideeën om in vloeiende Excalidraw-diagrammen (mindmaps, flowcharts) met auto-layout."
},
"custom": {
"title": "Custom",
"desc": "Definieer eigen agents met specifieke rollen en databronnen."
}
},
"brainstorm": {
"label": "Gedachtegolven",
"title": "Radiale brainstorming in realtime.",
"waveGeneration": {
"title": "Golfgeneratie",
"desc": "Variaties, analogieën, dan disrupties. AI duwt uw startconcept tot het uiterste."
},
"collaboration": {
"title": "Native samenwerking",
"desc": "AI-spookcursors, gesynchroniseerde avatars en realtime knooppuntbeweging."
},
"export": {
"title": "Semantische export",
"desc": "Zet uw hele brainstorm om in gestructureerde notities met één klik."
},
"disruptionLabel": "DISRUPTIE",
"disruptionText": "Modulaire architectuur 2.0",
"analogyLabel": "ANALOGIE",
"analogyText": "Het getijdenritme"
},
"tech": {
"label": "Architectuur en providers",
"title": "Koppel uw eigen AI-model.",
"tags": {
"title": "Tags",
"desc": "Onafhankelijk configureerbaar met elk model."
},
"embeddings": {
"title": "Embeddings",
"desc": "Onafhankelijk configureerbaar met elk model."
},
"chatRag": {
"title": "Chat RAG",
"desc": "Onafhankelijk configureerbaar met elk model."
}
},
"pricing": {
"label": "Plannen en prijzen",
"title": "Kies uw versterkingsniveau.",
"desc": "Flexibele opties voor creatieve geesten, van individueel gebruik tot grote organisaties.",
"monthly": "Maandelijks",
"annual": "Jaarlijks",
"perMonth": "/maand",
"perMonthAnnual": "/maand, jaarlijks gefactureerd",
"perUser": "+ 3.90€/user",
"perUserAnnual": "+ 2.90€/user, billed annually",
"popular": "Meest populair",
"basic": {
"name": "Basic",
"desc": "Ontdek de magie van Momento.",
"cta": "Starten",
"feature0": "Max. 100 notities",
"feature1": "3 notitieboeken",
"feature2": "50 AI-credits (levenslang)",
"feature3": "Semantisch zoeken",
"feature4": "7 dagen geschiedenis"
},
"pro": {
"name": "Pro",
"desc": "Voor veeleisende consultants en makers.",
"cta": "Upgrade naar Pro",
"feature0": "Onbeperkte notities",
"feature1": "BYOK (OpenAI/Anthropic)",
"feature2": "200 semantische zoekopdrachten",
"feature3": "Agents (12 runs/maand)",
"feature4": "30 dagen geschiedenis",
"feature5": "E-mailondersteuning"
},
"business": {
"name": "Business",
"desc": "Voor teams en productmanagers.",
"cta": "Kies Business",
"feature0": "10 medewerkers inbegrepen",
"feature1": "BYOK (13 providers)",
"feature2": "1000 semantische zoekopdrachten",
"feature3": "Agents (60 runs/maand)",
"feature4": "Onbeperkt brainstormen",
"feature5": "API-toegang"
},
"enterprise": {
"name": "Enterprise",
"desc": "Veilig organisatiegeheugen.",
"cta": "Contact verkoop",
"feature0": "Alles uit Business",
"feature1": "Onbeperkte agents",
"feature2": "SSO / SAML",
"feature3": "Audit Logs en SLA",
"feature4": "Dedicated support",
"feature5": "Live onboarding"
}
},
"byok": {
"label": "Open cloudtechnologie",
"title": "De BYOK-strategie",
"desc": "Heeft u al API-sleutels van OpenAI, Anthropic of Google? Koppel ze direct aan Momento. Gebruik AI zonder opgelegde creditlimieten en betaal alleen wat u daadwerkelijk verbruikt bij uw favoriete provider.",
"noLockin": "Geen lock-in",
"noLockinDesc": "Wissel provider in 1 klik.",
"cost": "Geoptimaliseerde kosten",
"costDesc": "Betaal de directe API-prijs.",
"configLabel": "Multi-provider config"
},
"cta": {
"title1": "Klaar om uw",
"title2": "volledige potentieel te ontgrendelen?",
"desc": "Sluit u aan bij duizenden onderzoekers, ontwerpers en denkers die Momento al gebruiken om hun toekomst te bouwen.",
"button": "Momento starten"
},
"footer": {
"desc": "Het AI-versterkte tweede brein. Ontworpen voor creatieve geesten.",
"product": {
"title": "Product",
"link0": "Changelog",
"link1": "Documentatie",
"link2": "Roadmap",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
},
"community": {
"title": "Community",
"link0": "Discord",
"link1": "Twitter / X",
"link2": "LinkedIn",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
},
"legal": {
"title": "Juridisch",
"link0": "Privacybeleid",
"link1": "Servicevoorwaarden",
"link2": "Cookiebeleid",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
}
}
}
}
}