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": "Failed to update recent notes setting"
},
"aiSettings": {
"title": "AI सेटिंग्स",
"title": "AI",
"description": "अपनी AI-संचालित सुविधाओं और प्राथमिकताओं को कॉन्फ़िगर करें",
"features": "AI सुविधाएं",
"provider": "AI प्रदाता",
@@ -917,7 +917,8 @@
"autoLabeling": "सुझावों को लेबल करें",
"autoLabelingDesc": "स्वचालित रूप से आपके नोट्स पर लेबल सुझाता है और लागू करता है",
"noteHistory": "इतिहास नोट करें",
"noteHistoryDesc": "इतिहास से संस्करण स्नैपशॉट और पुनर्स्थापना सक्षम करें"
"noteHistoryDesc": "इतिहास से संस्करण स्नैपशॉट और पुनर्स्थापना सक्षम करें",
"titleSuggestions": "शीर्षक सुझाव"
},
"general": {
"loading": "लोड हो रहा है...",
@@ -1115,7 +1116,13 @@
"languageDetection": "भाषा पहचान",
"languageDetectionDesc": "प्रत्येक नोट की भाषा का स्वचालित पता लगाएं",
"autoLabeling": "स्वतः लेबलिंग",
"autoLabelingDesc": "लेबल स्वचालित रूप से सुझाएँ और लागू करें"
"autoLabelingDesc": "लेबल स्वचालित रूप से सुझाएँ और लागू करें",
"fallbackSectionTitle": "फ़ॉलबैक प्रदाता (वैकल्पिक)",
"fallbackSectionDescription": "प्रदाता त्रुटियों (429, 5xx) पर स्वतः उपयोग। 1.5 सेकंड में एक पुनः प्रयास।",
"fallbackProvider": "फ़ॉलबैक प्रदाता",
"fallbackModel": "फ़ॉलबैक मॉडल",
"fallbackNone": "कोई नहीं (अक्षम)",
"fallbackModelPlaceholder": "उदा. gpt-4o-mini"
},
"resend": {
"title": "Resend (अनुशंसित)",
@@ -1173,6 +1180,8 @@
"deleteFailed": "हटाने में विफल",
"roleUpdateSuccess": "उपयोगकर्ता भूमिका को {role} में अपडेट किया गया",
"roleUpdateFailed": "भूमिका अपडेट करने में विफल",
"tierUpdateSuccess": "Subscription updated to {tier}",
"tierUpdateFailed": "Failed to update subscription",
"demote": "अवमत करें",
"promote": "पदोन्नत करें",
"confirmDelete": "Are you sure? This action cannot be undone.",
@@ -1180,6 +1189,7 @@
"name": "नाम",
"email": "ईमेल",
"role": "भूमिका",
"subscription": "Subscription",
"createdAt": "बनाया गया",
"actions": "कार्रवाई"
},
@@ -1371,7 +1381,7 @@
"loading": "लोड हो रहा है..."
},
"dataManagement": {
"title": "डेटा प्रबंधन",
"title": "Data",
"toolsDescription": "अपने डेटाबेस स्वास्थ्य को बनाए रखने के लिए उपकरण",
"exporting": "निर्यात हो रहा है...",
"importing": "आयात हो रहा है...",
@@ -1436,7 +1446,7 @@
"fontJetBrainsMono": "JetBrains Mono"
},
"generalSettings": {
"title": "सामान्य सेटिंग्स",
"title": "General",
"description": "सामान्य एप्लिकेशन सेटिंग्स"
},
"toast": {
@@ -1622,7 +1632,7 @@
"collapse": "संकुचित करें"
},
"mcpSettings": {
"title": "MCP सेटिंग्स",
"title": "MCP",
"description": "API कुंजियाँ प्रबंधित करें और बाहरी टूल कॉन्फ़िगर करें",
"whatIsMcp": {
"title": "MCP क्या है?",
@@ -2211,7 +2221,9 @@
"exportDefaultNoteTitle": "Synthesis",
"exportOpening": "Opening…",
"ownerBadge": "Owner",
"waveBadge": "Wave {wave}"
"waveBadge": "Wave {wave}",
"quotaGuest": "सत्र के होस्ट की AI सीमा समाप्त हो गई है। उनसे अपना प्लान अपग्रेड करने को कहें।",
"quotaHost": "इस ब्रेनस्टॉर्म के लिए आपकी AI सीमा समाप्त हो गई है। जारी रखने के लिए प्लान अपग्रेड करें।"
},
"usageMeter": {
"packName": "AI Discovery Pack",
@@ -2323,6 +2335,215 @@
"checkoutSuccessBody": "{tier} में आपका स्वागत है।",
"subscriptionType": "subscriptionType",
"renewalDate": "renewalDate",
"noRenewalDate": "—"
"noRenewalDate": "—",
"currentUsage": "वर्तमान उपयोग",
"currentPeriod": "वर्तमान अवधि",
"aiCredits": "AI क्रेडिट",
"used": "उपयोग किया",
"billing": "बिलिंग",
"renewal": "नवीनीकरण",
"paidPlanDesc": "आपकी सदस्यता स्वचालित रूप से नवीनीकरण होती है।",
"businessDescription": "टीमों और उत्पाद नेताओं के लिए।"
},
"landing": {
"nav": {
"features": "सुविधाएँ",
"agents": "AI एजेंट",
"brainstorm": "Brainstorm",
"pricing": "मूल्य",
"tech": "आर्किटेक्चर",
"login": "लॉग इन",
"cta": "शुरू करें"
},
"hero": {
"badge": "कृत्रिम बुद्धिमत्ता से संचालित",
"title1": "आपका दूसरा दिमाग,",
"title2": "आखिरकार प्रबलित।",
"subtitle": "Momento सिर्फ़ नोट ऐप नहीं है। यह एक बुद्धिमान इकोसिस्टम है जो 6 प्रकार के AI एजेंट और अत्याधुनिक सिमैंटिक खोज के साथ आपके विचारों को रियल टाइम में जोड़ता, विश्लेषण करता और विकसित करता है।",
"cta": "अभी साइन अप करें",
"secondary": "सुविधाएँ देखें",
"memoryEcho": "Memory Echo",
"memoryEchoText": "\"मार्च 2024 के आपके सतत डिज़ाइन प्रोजेक्ट से कनेक्शन मिला...\"",
"brainstormLive": "Brainstorm Live",
"ideasGenerated": "+12 विचार जनरेट"
},
"features": {
"label": "AI क्षमताएँ",
"title": "प्रवाही बुद्धि,",
"title2": "हर शब्द में बुनी हुई।",
"desc": "Momento मल्टी-प्रोवाइडर आर्किटेक्चर से आपके विचारों को व्यवस्थित करता है।",
"f1Title": "सिमैंटिक खोज",
"f1Desc": "कीवर्ड से खोजना छोड़ें। अवधारणा से खोजें। हमारा हाइब्रिड Vector + FTS इंजन आपके नोट्स के पीछे के इरादे को समझता है।",
"f2Title": "संदर्भित RAG चैट",
"f2Desc": "अपने ज्ञान से बात करें। हमारे एजेंट नोट्स पढ़ते हैं, वेब खोजते हैं और दस्तावेज़ विश्लेषण कर सटीक उत्तर देते हैं।",
"f3Title": "संवर्धित लेखन",
"f3Desc": "पुनर्लेखन, शीर्षक सुझाव, ऑटो-टैगिंग और सारांश। AI पृष्ठभूमि में आपकी सोच को संरचित करता है।"
},
"agents": {
"label": "विशेषज्ञ एजेंट",
"title": "जटिल काम सौंपें।",
"desc": "6 प्रकार के स्वायत्त AI एजेंट आपके शोध, सारांश और प्रस्तुतियों को स्वचालित करते हैं।",
"scraper": {
"title": "Scraper",
"desc": "URL स्क्रैप करता है, RSS पार्स करता है और स्मार्ट इमेज प्लेसमेंट के साथ जानकारी संश्लेषित करता है।"
},
"researcher": {
"title": "Researcher",
"desc": "जटिल क्वेरी बनाता है, वेब स्रोत खोजता है और संरचित शोध नोट्स लिखता है।"
},
"slideGen": {
"title": "Slide Gen",
"desc": "आपके नोट्स को प्रोफेशनल PowerPoint या इंटरैक्टिव HTML स्लाइड में बदलता है।"
},
"monitor": {
"title": "Monitor",
"desc": "ट्रेंड और नई अंतर्दृष्टि के लिए आपके नोटबुक का निरंतर विश्लेषण करता है।"
},
"diagramGen": {
"title": "Diagram Gen",
"desc": "विचारों को Excalidraw के प्रवाही आरेख (माइंडमैप, फ्लोचार्ट) में ऑटो-लेआउट के साथ बदलता है।"
},
"custom": {
"title": "Custom",
"desc": "विशिष्ट भूमिकाओं और डेटा स्रोतों के साथ अपने एजेंट परिभाषित करें।"
}
},
"brainstorm": {
"label": "विचार की लहरें",
"title": "रियल टाइम रेडियल ब्रेनस्टॉर्मिंग।",
"waveGeneration": {
"title": "वेव जनरेशन",
"desc": "विविधता, सादृश्य, फिर व्यवधान। AI आपकी प्रारंभिक अवधारणा को उसकी सीमा तक धकेलता है।"
},
"collaboration": {
"title": "मूल सहयोग",
"desc": "AI घोस्ट कर्सर, सिंक अवतार और रियल टाइम नोड मूवमेंट।"
},
"export": {
"title": "सिमैंटिक निर्यात",
"desc": "पूरा ब्रेनस्टॉर्म एक क्लिक में संरचित नोट्स में बदलें।"
},
"disruptionLabel": "व्यवधान",
"disruptionText": "मॉड्यूलर आर्किटेक्चर 2.0",
"analogyLabel": "सादृश्य",
"analogyText": "ज्वार का चक्र"
},
"tech": {
"label": "आर्किटेक्चर और प्रोवाइडर",
"title": "अपना AI मॉडल कनेक्ट करें।",
"tags": {
"title": "Tags",
"desc": "किसी भी मॉडल के साथ स्वतंत्र रूप से कॉन्फ़िगर करने योग्य।"
},
"embeddings": {
"title": "Embeddings",
"desc": "किसी भी मॉडल के साथ स्वतंत्र रूप से कॉन्फ़िगर करने योग्य।"
},
"chatRag": {
"title": "Chat RAG",
"desc": "किसी भी मॉडल के साथ स्वतंत्र रूप से कॉन्फ़िगर करने योग्य।"
}
},
"pricing": {
"label": "प्लान और मूल्य",
"title": "अपना प्रबलन स्तर चुनें।",
"desc": "रचनात्मक दिमागों के लिए लचीले विकल्प — व्यक्तिगत उपयोग से बड़े संगठनों तक।",
"monthly": "मासिक",
"annual": "वार्षिक",
"perMonth": "/माह",
"perMonthAnnual": "/माह, वार्षिक बिलिंग",
"perUser": "+ 3.90€/user",
"perUserAnnual": "+ 2.90€/user, billed annually",
"popular": "सबसे लोकप्रिय",
"basic": {
"name": "Basic",
"desc": "Momento का जादू खोजें।",
"cta": "शुरू करें",
"feature0": "अधिकतम 100 नोट",
"feature1": "3 नोटबुक",
"feature2": "50 AI क्रेडिट (आजीवन)",
"feature3": "सिमैंटिक खोज",
"feature4": "7 दिन का इतिहास"
},
"pro": {
"name": "Pro",
"desc": "मांग वाले सलाहकारों और रचनाकारों के लिए।",
"cta": "Pro में अपग्रेड",
"feature0": "असीमित नोट",
"feature1": "BYOK (OpenAI/Anthropic)",
"feature2": "200 सिमैंटिक खोज",
"feature3": "एजेंट (12 रन/माह)",
"feature4": "30 दिन का इतिहास",
"feature5": "ईमेल सहायता"
},
"business": {
"name": "Business",
"desc": "टीमों और प्रोडक्ट मैनेजरों के लिए।",
"cta": "Business चुनें",
"feature0": "10 सहयोगी शामिल",
"feature1": "BYOK (13 प्रोवाइडर)",
"feature2": "1000 सिमैंटिक खोज",
"feature3": "एजेंट (60 रन/माह)",
"feature4": "असीमित ब्रेनस्टॉर्म",
"feature5": "API एक्सेस"
},
"enterprise": {
"name": "Enterprise",
"desc": "सुरक्षित संगठनात्मक स्मृति।",
"cta": "बिक्री से संपर्क",
"feature0": "Business की सब कुछ",
"feature1": "असीमित एजेंट",
"feature2": "SSO / SAML",
"feature3": "Audit Logs और SLA",
"feature4": "समर्पित सहायता",
"feature5": "लाइव ऑनबोर्डिंग"
}
},
"byok": {
"label": "ओपन क्लाउड तकनीक",
"title": "BYOK रणनीति",
"desc": "पहले से OpenAI, Anthropic या Google API कुंजी हैं? सीधे Momento से जोड़ें। बिना लागू क्रेडिट सीमा के AI उपयोग करें, केवल पसंदीदा प्रोवाइडर पर वास्तविक खपत का भुगतान करें।",
"noLockin": "कोई लॉक-इन नहीं",
"noLockinDesc": "1 क्लिक में प्रोवाइडर बदलें।",
"cost": "अनुकूलित लागत",
"costDesc": "सीधी API कीमत चुकाएँ।",
"configLabel": "मल्टी-प्रोवाइडर कॉन्फ़िग"
},
"cta": {
"title1": "अपनी",
"title2": "पूरी क्षमता खोलने के लिए तैयार?",
"desc": "हज़ारों शोधकर्ताओं, डिज़ाइनरों और विचारकों से जुड़ें जो Momento से अपना भविष्य बना रहे हैं।",
"button": "Momento लॉन्च करें"
},
"footer": {
"desc": "AI-प्रबलित दूसरा दिमाग। रचनात्मक दिमागों के लिए।",
"product": {
"title": "उत्पाद",
"link0": "चेंजलॉग",
"link1": "दस्तावेज़",
"link2": "रोडमैप",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
},
"community": {
"title": "समुदाय",
"link0": "Discord",
"link1": "Twitter / X",
"link2": "LinkedIn",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
},
"legal": {
"title": "कानूनी",
"link0": "गोपनीयता",
"link1": "सेवा की शर्तें",
"link2": "कुकी नीति",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
}
}
}
}
}