mirror of
https://github.com/stablyai/orca.git
synced 2026-11-13 09:27:29 +00:00
android-play-release
1
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
108226bfe3 |
feat: combine localization and status-bar formatting (#40456)
* feat(appearance): let app chrome follow the terminal theme Add an "App Chrome Appearance" setting (Default / Match Terminal) next to Left Sidebar Appearance. In match-terminal mode the terminal theme's background/foreground are written as document-root CSS variables (--bg-titlebar, --background/--card/--popover/..., both sidebar token families), so the tab strip, status bar, side panels, full-page views and popovers all follow the terminal instead of the app theme. Left-sidebar modes still win because they scope their own variables below the root. The terminal color pair and token derivation move into terminal-surface-colors.ts and are shared with the sidebar resolver. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat(status-bar): configurable usage format template Add Settings → Appearance → Status Bar → "Usage format": a template that replaces the built-in per-provider usage text when non-empty. Placeholders cover {provider}, {plan}, the 5h/7d/fable/30d windows as percentages (following Used/Remaining), {x.reset} countdowns, {x.resetAt} clock times and Gemini {buckets}; "[...]" groups drop out when a placeholder inside is empty so one template works across providers with different windows. Whitespace is rendered as authored (whitespace-pre). Persisted as PersistedUIState.statusBarUsageFormat with a byProvider override map reserved for later; the RPC UI-update schema gains the optional field. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * chore(appearance): document touched functions; surface usage format in search Add one-line JSDoc to every function this branch adds or edits so the review docstring gate passes. Include the usage-format entry in the Status Bar section's search match so searching "template" or "placeholder" no longer hides the parent row, and mention popovers in the App Chrome Appearance descriptions since the setting styles them. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat(appearance): let file editors follow the terminal theme in match-terminal mode With App Chrome Appearance = Match Terminal, the tab strip, status bar and side panels took the terminal palette but every file pane kept the stock app theme: Monaco (code, plain text, diffs, notebooks, markdown source) was hard-wired to `vs`/`vs-dark`, and the markdown preview / rich editor painted the fixed `--editor-surface` with GitHub-colored hljs tokens. - `terminal-editor-palette.ts` derives an editor palette from the active terminal theme (background/foreground/cursor/selection + syntax roles mapped onto the ANSI slots) and builds a Monaco theme (`orca-terminal`) from it; light/dark is rated by the terminal background, so a light terminal theme under a dark OS setting still gets light styling. - match-terminal chrome variables now include `--editor-surface` and `--syntax-*`; the hljs stylesheets read those ahead of their defaults. - `useEditorSurfaceAppearance` / `useMonacoEditorTheme` replace the inline `isDark ? 'vs-dark' : 'vs'` computations; the diff-section chain passes the Monaco theme name instead of a dark flag. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VbWbChctXeMvaR2zdbFY99 (cherry picked from commit dc85fadee0a2664adbf55a49dd3c97c9b10fc111) * fix(status-bar): honor the usage template in compact usage mode ProviderSegment only rendered a user template on the verbose branch, so switching usage mode to compact silently fell back to the built-in tightest-window label. A non-empty template now replaces the built-in text in both modes; the mini bar stays verbose-only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VbWbChctXeMvaR2zdbFY99 * docs(appearance): document remaining functions touched by the diff Adds one-line JSDoc to the editor surfaces, diff viewers, palette helpers and UI-slice entry points this branch modifies so the diff's docstring coverage clears the pre-merge threshold. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VbWbChctXeMvaR2zdbFY99 * fix(editor): keep Monaco theme registration and preview clock out of render The upgraded oxlint React rules flag reassigning a module variable during render and calling Date.now() inside useMemo. Move the terminal Monaco theme's signature cache into ensureTerminalMonacoTheme() and pin the usage-format preview clock with a lazy useState initializer. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VbWbChctXeMvaR2zdbFY99 * localization: complete Brazilian Portuguese catalogs * fix(i18n): localize remaining hard-coded UI copy and complete Simplified Chinese coverage Route the English literals and shared English labels that ignored the UI language through the existing catalog: host labels, plugin cards and consent, CLI and SSH errors, the checks pill, browser profile labels, shortcut groups, app and context menus, and the macOS computer-use permission window. Shared labels are translated where they render, so src/shared stays English for mobile, CLI and older paired hosts. - en.json gains 314 keys bootstrapped from inline fallbacks; four duplicate "Unassigned" keys collapse into translateUnassignedLabel() - zh gains 337 entries and refreshes existing ones; the other nine locales get the newly extracted keys - joinSentences ends a CJK sentence that has no final stop with 。 before the next one - the desktop caller passes the computer-use helper its locale; orcad and the CLI stay Electron-free - three files the copy pushed past max-lines each shed a focused module * test: expect labeled roles in the editable context menu The edit menu now passes explicit Cut, Copy and Select All labels so the roles render in the UI language; the upstream template assertion still expected bare roles. * fix(i18n): key translated memos on the UI language without bare void reads Upstream's React Compiler ratchet rejects `void language;`, which the compiler drops, and treats a react-hooks lint suppression as a bailout. The two host-label hooks now pass the language through readUiLanguageMemoInput so it stays a real memo input. ContextualTourOverlay drops its language key: getContextualTour is a static lookup, and step copy is localized at render. * fix(i18n): translate editor theme settings * Fix reactive localization and catalog extraction * Fix combined localization validation * Localize nested import failures and refine catalogs * Handle older nested import responses * Fix localized merge prompts and quota windows * Address localization and runtime review feedback * Keep host search and configuration examples usable * Preserve configured names in add-project host selector * Preserve host label origins across views * Use localized fallback for missing local host * Preserve custom names and refresh localized host labels * Refresh task host labels without repeating searches * Preserve Portuguese mobile tab translations * Address localization review feedback * fix(status-bar): import window visibility interval from its new path (#40951) --------- Co-authored-by: lisi <lisi.see@bytedance.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: marlico77 <marlonssoficial@gmail.com> Co-authored-by: x-Ai <5061489+x-Ai@users.noreply.github.com> Co-authored-by: Kelvin Amoaba <97001695+AmoabaKelvin@users.noreply.github.com> |