All checks were successful
CI / Format (push) Successful in 32s
CI / CUDA type-check (push) Successful in 1m37s
CI / Clippy (push) Successful in 3m22s
CI / Test (push) Successful in 7m4s
CI / Build cortex SRPM (push) Has been skipped
CI / Publish cortex to COPR (push) Has been skipped
CI / Build neuron SRPM (push) Has been skipped
CI / Publish neuron to COPR (push) Has been skipped
CI / Bump version in source (push) Has been skipped
Signing in upgrades the chat workspace from anonymous to account-scoped. - Auth context exposes accountId (resolved on login and on reload for an existing token) so the chat can scope its Dexie owner and the dashboard can query. - Chat: when authed, owner switches to the account id (anon history was already re-owned via claimAnonymousData on login), the anon message cap is lifted (budget is enforced upstream by the account allocation), the full default model (VITE_DEFAULT_MODEL) is used, and the user's API key is sent as the bearer. - The bearer is the raw key the user stored locally via "use for chat on this device" in the key-creation modal (client-side only — consistent with no server-side secrets). Signed in without a stored key → a banner prompts creating/enabling one (sending is disabled until then). - Error mapping: insufficient_quota → top-up link (/account) when authed, sign-up (/register) when anon; rate_limit_exceeded → a wait-and-retry hint; both distinct from generic errors. - New chat (topUp/rateLimited/needsKey/manageKeysLink) and account (keys.useForChat/usedForChat) i18n keys across all languages. Validated: lint, typecheck, build, i18n:check all green. Explicit-path commit; no node_modules/dist. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F6o3ddqmYNh9kzdwq6eowh
22 lines
1.2 KiB
JSON
22 lines
1.2 KiB
JSON
{
|
|
"title": "محیط گفتگو",
|
|
"badge": "گفتگو",
|
|
"lead": "این نمای گفتگوی شماست. منطق مکالمه و مؤلفههای رابط کاربری خود را در این صفحه متصل کنید.",
|
|
"transcriptPlaceholder": "رونوشت گفتگو در اینجا نمایش داده میشود. پیامهای مدل و کاربر را در یک محفظه قابل اسکرول رندر کنید؛ در صورت تمایل آنها را بر اساس نوبت گروهبندی کنید.",
|
|
"inputPlaceholder": "برای شروع گفتگو یک پیام بنویسید…",
|
|
"send": "ارسال",
|
|
"clear": "پاک کردن",
|
|
"newChat": "New chat",
|
|
"newProject": "New project",
|
|
"newProjectName": "New project",
|
|
"unsorted": "Unsorted",
|
|
"emptyState": "Start a conversation. Your history stays in this browser.",
|
|
"anonBanner": "You have reached the anonymous limit. Sign up for a free allocation.",
|
|
"signUp": "Sign up",
|
|
"stop": "Stop",
|
|
"topUp": "Top up",
|
|
"rateLimited": "Rate limited — wait a moment and retry.",
|
|
"needsKey": "Create an API key and enable it for chat to send as yourself.",
|
|
"manageKeysLink": "Manage keys"
|
|
}
|