Stats history with year filter, folding and XLSX/CSV export; snippets, read-only links, commit suggestions, weekly review, offline copies, server speech-to-text, planning model, job reports; fal.ai health fix

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Sonnet 5.5 committed 2026-11-15 08:20:52 +01:00
1 parent c08c6c7436
commit 388ca96419
31 files changed
+1518 -82

No files matched your search

+43
View File
@@ -1100,6 +1100,49 @@ export const en = {
"stats.user": "User",
"stats.allUsers": "All users",
"stats.byUser": "By user",
"snippets.title": "Prompt snippets",
"snippets.hint": "Your own text blocks. Type / in the message field and pick a snippet to insert it (e.g. /tests → \"Add tests for this change\").",
"snippets.name": "name",
"snippets.text": "Text to insert",
"snippets.add": "Add snippet",
"snippets.insert": "Snippet",
"link.title": "Read-only link",
"link.hint": "Anyone with the link can read the conversation text (no tool output, no files) – without an account.",
"link.create": "Create link",
"link.copy": "Copy",
"link.copied": "Link copied",
"link.revoke": "Revoke",
"link.validity": "Validity",
"link.days": "{n} days",
"link.until": "until {date}",
"link.readOnly": "Shared read-only",
"git.suggest": "Suggest message",
"git.suggestHint": "Let the small model write a commit message for the staged changes",
"settings.weeklyDigest": "Weekly review on Mondays at 8:00 (chats, checks, costs)",
"settings.transcribeModel": "Speech-to-text model",
"settings.transcribeHint": "provider/model of an OpenAI-compatible transcription endpoint (e.g. openai/whisper-1). Adds the microphone button in browsers without built-in dictation, such as Firefox.",
"voice.transcribing": "Transcribing …",
"offline.banner": "No connection – showing saved copies. Messages you write wait in the outbox.",
"settings.planModel": "Planning model",
"settings.planModelHint": "Plan mode always uses this model (e.g. a strong one); all other modes use the model chosen for the chat (e.g. a cheaper one). Empty = the chat's model.",
"settings.sameAsChat": "(model of the chat)",
"jobEditor.notify": "Send the report as a push notification when a run ends",
"stats.year": "Year",
"stats.month": "Month",
"stats.perMonth": "Per month",
"stats.costPerMonth": "Cost per month",
"stats.tokensPerMonth": "Tokens per month",
"stats.export": "Export",
"stats.exportHint": "Download the figures of the selected range",
"stats.exportXlsx": "Excel (.xlsx) – all tables",
"stats.exportCsv": "CSV – {table}",
"stats.table.day": "per day",
"stats.table.month": "per month",
"stats.table.model": "by model",
"stats.table.provider": "by provider",
"stats.table.agent": "by agent",
"stats.table.user": "by user",
"stats.table.session": "top chats",
};
export type Messages = Record<keyof typeof en, string>;