From a84c7e80d6c5c7dcfe9aa64b4ad4ab52e76d589e Mon Sep 17 00:00:00 2001 From: Antigravity Date: Sun, 5 Jul 2026 16:53:36 +0000 Subject: [PATCH] =?UTF-8?q?fix(critique):=202=20r=C3=A9gressions=20introdu?= =?UTF-8?q?ites=20par=20les=20fixes=20pr=C3=A9c=C3=A9dents?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug #1 — Memory Echo cassé (runtime crash): - lib/ai/services/memory-echo.service.ts: lignes adjustedThreshold restaurées - Cause: sed console.log avait supprimé les lignes de définition - Effet: findConnections() crashait (ReferenceError) Bug #2 — Auth mobile totalement cassée (sécurité): - 14 routes app/api/mobile/*/: getMobileUserId(req) → await getMobileUserId(req) - Cause: verifyMobileToken devenu async mais callers non mis à jour - Effet: auth bypassée (Promise truthy au lieu de string) i18n: - searchModal.* + insightsView.* propagés dans 13 locales (EN fallback) --- .../app/api/mobile/ai/improve/route.ts | 2 +- memento-note/app/api/mobile/ai/title/route.ts | 2 +- .../app/api/mobile/ai/transcribe/route.ts | 2 +- .../app/api/mobile/auth/logout/route.ts | 2 +- memento-note/app/api/mobile/auth/me/route.ts | 2 +- .../app/api/mobile/flashcards/decks/route.ts | 2 +- .../api/mobile/flashcards/generate/route.ts | 2 +- .../app/api/mobile/flashcards/review/route.ts | 2 +- .../api/mobile/flashcards/session/route.ts | 2 +- .../app/api/mobile/notebooks/route.ts | 2 +- .../app/api/mobile/notes/[id]/route.ts | 6 ++--- .../app/api/mobile/notes/daily/route.ts | 2 +- memento-note/app/api/mobile/notes/route.ts | 4 ++-- memento-note/app/api/mobile/search/route.ts | 2 +- .../lib/ai/services/memory-echo.service.ts | 3 +++ memento-note/locales/ar.json | 22 +++++++++++++++++++ memento-note/locales/de.json | 22 +++++++++++++++++++ memento-note/locales/es.json | 22 +++++++++++++++++++ memento-note/locales/fa.json | 22 +++++++++++++++++++ memento-note/locales/hi.json | 22 +++++++++++++++++++ memento-note/locales/it.json | 22 +++++++++++++++++++ memento-note/locales/ja.json | 22 +++++++++++++++++++ memento-note/locales/ko.json | 22 +++++++++++++++++++ memento-note/locales/nl.json | 22 +++++++++++++++++++ memento-note/locales/pl.json | 22 +++++++++++++++++++ memento-note/locales/pt.json | 22 +++++++++++++++++++ memento-note/locales/ru.json | 22 +++++++++++++++++++ memento-note/locales/zh.json | 22 +++++++++++++++++++ 28 files changed, 306 insertions(+), 17 deletions(-) diff --git a/memento-note/app/api/mobile/ai/improve/route.ts b/memento-note/app/api/mobile/ai/improve/route.ts index a010850..9ed00e8 100644 --- a/memento-note/app/api/mobile/ai/improve/route.ts +++ b/memento-note/app/api/mobile/ai/improve/route.ts @@ -11,7 +11,7 @@ const MODE_MAP: Record ({})) diff --git a/memento-note/app/api/mobile/ai/title/route.ts b/memento-note/app/api/mobile/ai/title/route.ts index 9cee754..6f64264 100644 --- a/memento-note/app/api/mobile/ai/title/route.ts +++ b/memento-note/app/api/mobile/ai/title/route.ts @@ -5,7 +5,7 @@ import { getSystemConfig } from '@/lib/config' import { reserveUsageOrThrow, QuotaExceededError } from '@/lib/entitlements' export async function POST(req: NextRequest) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }) const { content } = await req.json().catch(() => ({})) diff --git a/memento-note/app/api/mobile/ai/transcribe/route.ts b/memento-note/app/api/mobile/ai/transcribe/route.ts index 9fca542..56a3026 100644 --- a/memento-note/app/api/mobile/ai/transcribe/route.ts +++ b/memento-note/app/api/mobile/ai/transcribe/route.ts @@ -3,7 +3,7 @@ import { getMobileUserId } from '@/lib/mobile-auth' import { getSystemConfig } from '@/lib/config' export async function POST(req: NextRequest) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }) const formData = await req.formData().catch(() => null) diff --git a/memento-note/app/api/mobile/auth/logout/route.ts b/memento-note/app/api/mobile/auth/logout/route.ts index 2bdd581..6351029 100644 --- a/memento-note/app/api/mobile/auth/logout/route.ts +++ b/memento-note/app/api/mobile/auth/logout/route.ts @@ -3,7 +3,7 @@ import { getMobileUserId } from '@/lib/mobile-auth' import { redis } from '@/lib/redis' export async function POST(req: Request) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) const auth = req.headers.get('Authorization') ?? '' diff --git a/memento-note/app/api/mobile/auth/me/route.ts b/memento-note/app/api/mobile/auth/me/route.ts index f7df5a1..78bd5cc 100644 --- a/memento-note/app/api/mobile/auth/me/route.ts +++ b/memento-note/app/api/mobile/auth/me/route.ts @@ -3,7 +3,7 @@ import prisma from '@/lib/prisma' import { getMobileUserId } from '@/lib/mobile-auth' export async function GET(req: NextRequest) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }) const user = await prisma.user.findUnique({ diff --git a/memento-note/app/api/mobile/flashcards/decks/route.ts b/memento-note/app/api/mobile/flashcards/decks/route.ts index e65b932..3de7a8c 100644 --- a/memento-note/app/api/mobile/flashcards/decks/route.ts +++ b/memento-note/app/api/mobile/flashcards/decks/route.ts @@ -3,7 +3,7 @@ import prisma from '@/lib/prisma' import { getMobileUserId } from '@/lib/mobile-auth' export async function GET(req: NextRequest) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) const now = new Date() diff --git a/memento-note/app/api/mobile/flashcards/generate/route.ts b/memento-note/app/api/mobile/flashcards/generate/route.ts index dfced77..be290c7 100644 --- a/memento-note/app/api/mobile/flashcards/generate/route.ts +++ b/memento-note/app/api/mobile/flashcards/generate/route.ts @@ -6,7 +6,7 @@ import { stripHtmlToText } from '@/lib/flashcards/deck-utils' import { reserveUsageOrThrow, QuotaExceededError } from '@/lib/entitlements' export async function POST(req: NextRequest) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }) const body = await req.json().catch(() => ({})) diff --git a/memento-note/app/api/mobile/flashcards/review/route.ts b/memento-note/app/api/mobile/flashcards/review/route.ts index 09395df..309eeb9 100644 --- a/memento-note/app/api/mobile/flashcards/review/route.ts +++ b/memento-note/app/api/mobile/flashcards/review/route.ts @@ -4,7 +4,7 @@ import { getMobileUserId } from '@/lib/mobile-auth' import { computeSm2Update } from '@/lib/flashcards/sm2' export async function POST(req: NextRequest) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) const body = await req.json() diff --git a/memento-note/app/api/mobile/flashcards/session/route.ts b/memento-note/app/api/mobile/flashcards/session/route.ts index 41958f8..1548531 100644 --- a/memento-note/app/api/mobile/flashcards/session/route.ts +++ b/memento-note/app/api/mobile/flashcards/session/route.ts @@ -3,7 +3,7 @@ import prisma from '@/lib/prisma' import { getMobileUserId } from '@/lib/mobile-auth' export async function GET(req: NextRequest) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) const { searchParams } = new URL(req.url) diff --git a/memento-note/app/api/mobile/notebooks/route.ts b/memento-note/app/api/mobile/notebooks/route.ts index 1458f86..201c330 100644 --- a/memento-note/app/api/mobile/notebooks/route.ts +++ b/memento-note/app/api/mobile/notebooks/route.ts @@ -3,7 +3,7 @@ import prisma from '@/lib/prisma' import { getMobileUserId } from '@/lib/mobile-auth' export async function GET(req: NextRequest) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }) const notebooks = await prisma.notebook.findMany({ diff --git a/memento-note/app/api/mobile/notes/[id]/route.ts b/memento-note/app/api/mobile/notes/[id]/route.ts index c301170..a627b85 100644 --- a/memento-note/app/api/mobile/notes/[id]/route.ts +++ b/memento-note/app/api/mobile/notes/[id]/route.ts @@ -6,7 +6,7 @@ export async function GET( req: NextRequest, { params }: { params: Promise<{ id: string }> } ) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }) const { id } = await params @@ -33,7 +33,7 @@ export async function PUT( req: NextRequest, { params }: { params: Promise<{ id: string }> } ) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }) const { id } = await params @@ -61,7 +61,7 @@ export async function DELETE( req: NextRequest, { params }: { params: Promise<{ id: string }> } ) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }) const { id } = await params diff --git a/memento-note/app/api/mobile/notes/daily/route.ts b/memento-note/app/api/mobile/notes/daily/route.ts index 637fd8d..88e951c 100644 --- a/memento-note/app/api/mobile/notes/daily/route.ts +++ b/memento-note/app/api/mobile/notes/daily/route.ts @@ -19,7 +19,7 @@ function getTodayContent(title: string): string { } export async function GET(req: NextRequest) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }) const todayKey = getTodayKey() diff --git a/memento-note/app/api/mobile/notes/route.ts b/memento-note/app/api/mobile/notes/route.ts index 68c8730..8d1ad21 100644 --- a/memento-note/app/api/mobile/notes/route.ts +++ b/memento-note/app/api/mobile/notes/route.ts @@ -3,7 +3,7 @@ import prisma from '@/lib/prisma' import { getMobileUserId } from '@/lib/mobile-auth' export async function GET(req: NextRequest) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }) const { searchParams } = new URL(req.url) @@ -43,7 +43,7 @@ export async function GET(req: NextRequest) { } export async function POST(req: NextRequest) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }) const { title, content, notebookId } = await req.json().catch(() => ({})) diff --git a/memento-note/app/api/mobile/search/route.ts b/memento-note/app/api/mobile/search/route.ts index cef3d0f..475e8d9 100644 --- a/memento-note/app/api/mobile/search/route.ts +++ b/memento-note/app/api/mobile/search/route.ts @@ -3,7 +3,7 @@ import prisma from '@/lib/prisma' import { getMobileUserId } from '@/lib/mobile-auth' export async function GET(req: NextRequest) { - const userId = getMobileUserId(req) + const userId = await getMobileUserId(req) if (!userId) return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }) const { searchParams } = new URL(req.url) diff --git a/memento-note/lib/ai/services/memory-echo.service.ts b/memento-note/lib/ai/services/memory-echo.service.ts index 0f4d3a8..dfe2274 100644 --- a/memento-note/lib/ai/services/memory-echo.service.ts +++ b/memento-note/lib/ai/services/memory-echo.service.ts @@ -248,6 +248,9 @@ export class MemoryEchoService { const note1 = notesWithEmbeddings[i] const note2 = notesWithEmbeddings[j] + const baseThreshold = this.pairSimilarityThreshold(note1, note2, demoMode) + const adjustedThreshold = baseThreshold + (notePenalty.get(note1.id) || 0) + (notePenalty.get(note2.id) || 0) + // Calculate time difference const daysApart = Math.abs( Math.floor((note1.createdAt.getTime() - note2.createdAt.getTime()) / (1000 * 60 * 60 * 24)) diff --git a/memento-note/locales/ar.json b/memento-note/locales/ar.json index 3cc4c70..817b71f 100644 --- a/memento-note/locales/ar.json +++ b/memento-note/locales/ar.json @@ -3007,5 +3007,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } } diff --git a/memento-note/locales/de.json b/memento-note/locales/de.json index 5e2cc8d..752fa50 100644 --- a/memento-note/locales/de.json +++ b/memento-note/locales/de.json @@ -3007,5 +3007,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } } diff --git a/memento-note/locales/es.json b/memento-note/locales/es.json index 60b44cc..f503e44 100644 --- a/memento-note/locales/es.json +++ b/memento-note/locales/es.json @@ -3007,5 +3007,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } } diff --git a/memento-note/locales/fa.json b/memento-note/locales/fa.json index 876b1a6..af054ba 100644 --- a/memento-note/locales/fa.json +++ b/memento-note/locales/fa.json @@ -3046,5 +3046,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } } diff --git a/memento-note/locales/hi.json b/memento-note/locales/hi.json index f50eaa1..1ca0ea3 100644 --- a/memento-note/locales/hi.json +++ b/memento-note/locales/hi.json @@ -3007,5 +3007,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } } diff --git a/memento-note/locales/it.json b/memento-note/locales/it.json index c199d3e..c40ada2 100644 --- a/memento-note/locales/it.json +++ b/memento-note/locales/it.json @@ -3007,5 +3007,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } } diff --git a/memento-note/locales/ja.json b/memento-note/locales/ja.json index 9b96f99..716bea5 100644 --- a/memento-note/locales/ja.json +++ b/memento-note/locales/ja.json @@ -3007,5 +3007,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } } diff --git a/memento-note/locales/ko.json b/memento-note/locales/ko.json index 48c02c3..7b23e1b 100644 --- a/memento-note/locales/ko.json +++ b/memento-note/locales/ko.json @@ -3007,5 +3007,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } } diff --git a/memento-note/locales/nl.json b/memento-note/locales/nl.json index b8a58f3..08b4b3b 100644 --- a/memento-note/locales/nl.json +++ b/memento-note/locales/nl.json @@ -3007,5 +3007,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } } diff --git a/memento-note/locales/pl.json b/memento-note/locales/pl.json index 5291577..15aaaff 100644 --- a/memento-note/locales/pl.json +++ b/memento-note/locales/pl.json @@ -3007,5 +3007,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } } diff --git a/memento-note/locales/pt.json b/memento-note/locales/pt.json index fef4c97..c2eeee4 100644 --- a/memento-note/locales/pt.json +++ b/memento-note/locales/pt.json @@ -3007,5 +3007,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } } diff --git a/memento-note/locales/ru.json b/memento-note/locales/ru.json index f378f2e..3d92062 100644 --- a/memento-note/locales/ru.json +++ b/memento-note/locales/ru.json @@ -3007,5 +3007,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } } diff --git a/memento-note/locales/zh.json b/memento-note/locales/zh.json index f0f9250..3f760bc 100644 --- a/memento-note/locales/zh.json +++ b/memento-note/locales/zh.json @@ -3007,5 +3007,27 @@ "listView": "List", "graphAriaLabel": "Semantic network: {clusters} clusters, {notes} notes, {bridges} bridge notes. Switch to List view for accessible navigation.", "listAriaLabel": "Accessible cluster list with notes and bridge connections" + }, + "searchModal": { + "search_ariaLabel": "Search", + "search_placeholder": "Search across all your notes…", + "search_caseSensitive": "Case sensitive", + "search_regexMode": "Regex mode", + "search_trashIncluded": "Trash included", + "search_openInEditor": "Open in editor", + "search_title": "Memento Search", + "search_favorites": "Favorites:", + "search_searching": "Searching…", + "search_noResults": "No results", + "search_typeToSearch": "Type to search", + "search_aiAnalysis": "Analyzing…", + "search_aiResponse": "AI Response", + "search_resultsSummary": "Results summary…", + "search_documentPreview": "Document preview", + "search_noMatch": "No note matches.", + "search_typeForResults": "Type to get instant results.", + "search_hintNavigate": "navigate", + "search_hintOpen": "open", + "search_hintClose": "close" } }