You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[1.2.0] — 2026-08-01
Added
Calculator. Rina now answers arithmetic asked in plain speech: "посчитай
15 * 12", "сколько будет 2+2", "20% от 3000", "раздели 100 на 5", "5 в
квадрате". Spoken operators ("плюс", "умножить на", "разделить на") are
understood, since speech recognition never produces * or /. Expressions
are evaluated from a parsed syntax tree with a whitelist of operations —
never with eval() on text coming from a microphone — and division by zero
and oversized powers are handled explicitly.
Web search. Explicit queries work out of the box: "найди рецепт борща",
"загугли python", "поищи в интернете …". Unrecognized commands can also fall
back to a web search instead of "Извини, я не поняла команду".
"Web search" settings section with a search engine picker (Google,
Яндекс, DuckDuckGo, Bing) and a toggle for the unrecognized-command fallback.
Changed
Command matching is now fuzzy. Triggers are normalized (case, ё/е,
punctuation, spacing) and compared with a similarity threshold, so
"зопусти дискорт" still matches a command saved as "запусти дискорд".
Matching slides a window over the phrase, so a trigger is found inside a
longer sentence. "Exact match" mode still requires the whole phrase, but
tolerates recognition noise. The threshold is deliberately strict:
launching the wrong program is worse than having to repeat yourself.
The same normalization now applies to built-in commands.
The interface was reworked to look more restrained. One accent color
replaces the neon purple→pink→blue gradients across navigation, cards,
buttons, toggles, chat bubbles, avatars, and the window border. Cards are
flat surfaces with a hairline border instead of glass-style gradients and
layered shadows, corner radii are tighter (8/12/18/24 → 6/8/12/16), the
sidebar wordmark is plain text, and the status indicator no longer pulses.
Hierarchy now comes from scale and spacing rather than color and glow.
Decorative emoji removed from section headings, settings rows, buttons,
status labels, About links, empty states, and history badges. Navigation
icons remain, where they help scanning the sidebar.
The unrecognized-command fallback never triggers in always-listen mode:
background speech and noise must not be able to open a browser.
English translations added for all new strings, and translation keys
re-synchronized after the emoji cleanup so the English UI stays fully
translated.
Removed
The GradientText component and the theme's gradient/glow helpers, along
with the secondary accent colors they needed.
Unused icon arguments left over in SettingRow, _path_row, and _action_row after the emoji cleanup.