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

@@ -0,0 +1,164 @@
{
"admin.ai.providerAnthropicOption": "🧠 Anthropic (Claude API)",
"admin.tools.brave": "Brave Search API",
"admin.users.table.subscription": "اشتراک",
"admin.users.tierUpdateFailed": "اشتراک به‌روزرسانی نشد",
"admin.users.tierUpdateSuccess": "اشتراک به {tier} به روز شد",
"agents.form.back": "برگشت",
"ai.contextSourceHeading": "منبع زمینه",
"ai.tones.academic": "دانشگاهی",
"ai.tones.casual": "گاه به گاه",
"ai.tones.creative": "خلاق",
"ai.tones.professional": "حرفه ای",
"appearance.fontInterDefault": "اینتر (پیش‌فرض)",
"billing.enterpriseTitle": "تصدی",
"brainstorm.addIdea": "ایده اضافه کنید",
"brainstorm.brainstormThisIdea": "طوفان فکری این ایده",
"brainstorm.cancel": "لغو کنید",
"brainstorm.canvasChildBranch": "کودک",
"brainstorm.canvasDoubleClickHint": "برای افزودن ایده دوبار کلیک کنید",
"brainstorm.canvasEditTitleNewIdea": "ایده جدید",
"brainstorm.canvasEditTitleReply": "پاسخ دهید",
"brainstorm.canvasPlaceholderIdea": "ایده شما…",
"brainstorm.canvasPlaceholderReply": "پاسخ شما…",
"brainstorm.canvasShortcutCancel": "لغو",
"brainstorm.canvasShortcutSave": "ذخیره کنید",
"brainstorm.canvasWaitingHint": "بوم منتظر جرقه توست...",
"brainstorm.convertedToNoteStatus": "به یادداشت تبدیل شد",
"brainstorm.converting": "در حال تبدیل...",
"brainstorm.deepen": "عمیق کنید",
"brainstorm.deepening": "در حال تولید...",
"brainstorm.delete": "حذف کنید",
"brainstorm.derived_from": "برگرفته از",
"brainstorm.dismiss": "مربوط نیست",
"notes.dismiss": "مربوط نیست",
"brainstorm.export": "صادرات",
"brainstorm.exportDefaultNoteTitle": "سنتز",
"brainstorm.exportFailedMessage": "صادرات انجام نشد",
"brainstorm.exportNotebookPrefix": "دفترچه یادداشت:",
"brainstorm.exportOpening": "باز کردن…",
"brainstorm.exporting": "در حال صادرات...",
"brainstorm.extends": "تمدید می شود",
"brainstorm.extract": "یادداشت ایجاد کنید",
"brainstorm.feedbackAlreadyPending": "یک دعوت نامه برای این شخص از قبل در انتظار است.",
"brainstorm.feedbackAlreadyShared": "این شخص قبلاً به این طوفان فکری دسترسی دارد.",
"brainstorm.feedbackGenericError": "خطا",
"brainstorm.feedbackInviteResent": "دعوت دوباره ارسال شد!",
"brainstorm.feedbackInviteSent": "دعوت نامه ارسال شد!",
"brainstorm.generating": "هوش مصنوعی در حال برداشت دانه های فکر است...",
"brainstorm.guestReadOnlyNotice": "شما در حال مشاهده این طوفان فکری به عنوان یک مهمان هستید. برای ویرایش وارد شوید",
"brainstorm.ideaDetailConnection": "اتصال",
"brainstorm.ideaDetailNovelty": "تازگی",
"brainstorm.novelty": "تازگی",
"brainstorm.ideaDetailWave": "موج",
"brainstorm.wave": "موج",
"brainstorm.ideaOrigin": "خاستگاه ایده",
"notes.ideaOrigin": "خاستگاه ایده",
"brainstorm.ideas": "ایده ها",
"brainstorm.impactNotesEnriched": "{count} یادداشت (ها) غنی شده است",
"brainstorm.impactNotesMarkedDry": "{count} یادداشت خشک علامت‌گذاری شد",
"brainstorm.invite": "دعوت کنید",
"brainstorm.legendDisruptions": "اختلالات",
"brainstorm.legendSeed": "بذر",
"brainstorm.linkCopied": "پیوند دعوت کپی شد!",
"brainstorm.linkedNotes": "یادداشت های مرتبط",
"brainstorm.liveCollaborationTitle": "همکاری زنده",
"brainstorm.liveOtherParticipants": "{count} شرکت‌کننده دیگر",
"brainstorm.liveStatus": "زندگی کنید",
"brainstorm.liveYouMarker": "(شما)",
"brainstorm.manualIdeaPrompt": "عنوان ایده شما:",
"brainstorm.newBrainstorm": "طوفان فکری جدید",
"brainstorm.noNoteLink": "ایده کاملا مولد",
"notes.noNoteLink": "ایده کاملا مولد",
"brainstorm.noSessions": "هنوز طوفان فکری وجود ندارد",
"brainstorm.none_found": "لینک یادداشت وجود ندارد",
"brainstorm.noteCreated": "یادداشت ایجاد شد",
"brainstorm.opposes": "در مخالفت با",
"brainstorm.originConnection": "اتصال مبدا",
"brainstorm.originalSeedDescription": "ایده اصلی بذر",
"brainstorm.ownerBadge": "مالک",
"brainstorm.placeholder": "مفهومی را وارد کنید تا آشکار شود...",
"brainstorm.playbackReturnToLive": "بازگشت به زندگی",
"brainstorm.playbackStep": "مرحله {current}/{total}",
"brainstorm.playbackStepsCount": "{count} مرحله",
"brainstorm.seedLabel": "ایده بذر",
"brainstorm.seedNodeBadge": "دانه",
"brainstorm.sessions": "طوفان فکری",
"brainstorm.shareDialogTitle": "طوفان فکری را به اشتراک بگذارید",
"brainstorm.shareFooterHint": "آنها اعلانی برای پذیرش یا رد دریافت خواهند کرد.",
"brainstorm.shareGuestsCanEdit": "به مهمانان اجازه ویرایش بدهید",
"brainstorm.shareNameOrEmailPlaceholder": "نام یا ایمیل…",
"brainstorm.sharePublicLink": "لینک عمومی",
"brainstorm.shareSearchLabel": "کسی را پیدا کن",
"brainstorm.shareSubmit": "به اشتراک بگذارید",
"brainstorm.shareSubmitting": "در حال ارسال…",
"brainstorm.spatialMode": "حالت کاوش فضایی",
"brainstorm.startBrainstorm": "طوفان فکری را شروع کنید",
"brainstorm.startOne": "یکی را شروع کنید",
"brainstorm.subtitle": "ابعاد پتانسیل را آشکار کنید",
"brainstorm.synthesizes": "سنتز می کند",
"brainstorm.title": "امواج فکر",
"brainstorm.toastConvertFailed": "تبدیل نشد",
"brainstorm.toastConvertSuccess": "ایده تبدیل به یادداشت شد!",
"brainstorm.toastDismissFailed": "اخراج نشد",
"brainstorm.toastDismissSuccess": "ایده رد شد",
"brainstorm.toastExpandFailed": "گسترش یافت نشد",
"brainstorm.toastExpandSuccess": "ایده ها گسترش یافت!",
"brainstorm.toastExportFailed": "صادر نشد",
"brainstorm.toastExportNoteSuccess": "به عنوان یادداشت صادر شد!",
"brainstorm.transposes": "جابجا می کند",
"brainstorm.unnamedPerson": "بدون نام",
"brainstorm.viewNote": "مشاهده یادداشت",
"brainstorm.wave1": "موج ۱",
"brainstorm.wave2": "موج ۲",
"brainstorm.wave3": "موج ۳",
"brainstorm.waveBadge": "موج {موج}",
"brainstorm.waveFlavorAnalogy": "مقایسه",
"byokSettings.alias": "برچسب (اختیاری)",
"byokSettings.aliasPlaceholder": "به عنوان مثال OpenAI کار کنید",
"byokSettings.apiKey": "کلید API",
"byokSettings.badgeActive": "BYOK فعال است",
"byokSettings.confirmDelete": "این کلید API برای همیشه حذف شود؟",
"byokSettings.deleted": "کلید API حذف شد",
"byokSettings.description": "کلیدهای ارائه‌دهنده LLM خود را برای دور زدن سهمیه‌های Discovery Pack وصل کنید. کلیدها در حالت استراحت رمزگذاری می شوند.",
"byokSettings.empty": "هنوز هیچ کلید API پیکربندی نشده است.",
"byokSettings.error": "کلید API ذخیره نشد",
"byokSettings.loadError": "کلیدهای API بارگیری نشد",
"byokSettings.loading": "در حال بارگیری کلیدها...",
"byokSettings.provider": "ارائه دهنده",
"byokSettings.providerPlaceholder": "ارائه دهنده ای را انتخاب کنید",
"byokSettings.save": "کلید ذخیره",
"byokSettings.saved": "کلید API ذخیره شد",
"byokSettings.tierRequired": "BYOK به یک طرح حرفه ای یا بالاتر نیاز دارد. برای اتصال کلیدهای API خود، ارتقا دهید.",
"byokSettings.title": "کلیدهای API شما (BYOK)",
"richTextEditor.imageUrlPlaceholder": "https://example.com/image.png",
"settings.themeBaseGroup": "پایه",
"settings.themeBlue": "آبی",
"settings.themeGreen": "سبز",
"settings.themeLavender": "اسطوخودوس",
"settings.themeMidnight": "نیمه شب",
"settings.themeOcean": "اقیانوس",
"settings.themePalettesGroup": "پالت های رنگی",
"settings.themeSand": "شن و ماسه",
"settings.themeSepia": "سپیا",
"settings.themeSunset": "غروب آفتاب",
"sidebar.sharedNotebookBadge": "· به اشتراک گذاشته شده",
"sidebar.sortAlpha": "A → Z",
"usageMeter.addApiKey": "از کلید API خود (BYOK) استفاده کنید",
"usageMeter.featureSearch": "جستجو کنید",
"usageMeter.featureTags": "برچسب ها",
"usageMeter.featureTitles": "عناوین",
"usageMeter.later": "بعدا",
"usageMeter.packName": "بسته کشف هوش مصنوعی",
"usageMeter.proChat": "۱۰۰ پیام چت در ماه",
"usageMeter.proIncludes": "حرفه ای شامل:",
"usageMeter.proReformulate": "۵۰ فرمول مجدد در ماه",
"usageMeter.proSearch": "۱۰۰ جستجوی معنایی در ماه",
"usageMeter.proTags": "۲۰۰ برچسب خودکار در ماه",
"usageMeter.proTitles": "۲۰۰ عنوان خودکار در ماه",
"usageMeter.remaining": "{count} باقی مانده است",
"usageMeter.unlimited": "نامحدود",
"usageMeter.upgradeDescription": "شما از تمام اعتبارات AI Discovery Pack خود استفاده کرده اید. برای محدودیت های بالاتر و ویژگی های اضافی به Pro ارتقا دهید.",
"usageMeter.upgradePricing": "به Pro ارتقا دهید",
"usageMeter.upgradeTitle": "به Pro ارتقا دهید"
}