Sayful Release notes

Release notes

96 releases since May 2026.

v0.9.39

A hundred badges

  • Achievements: 100 badges now, up from 58. Every collection holds at least four, and four new collections count big days of dictation, the days you use Sayful, what you have read aloud and the text you transform.
v0.9.38

Option+Command talks to your board

  • Voice commands for boards now start with Option+Command (press both and let go) from any app; press Option, or Option+Command again, to finish. Double Option, the old trigger, belongs to Claude, so the two no longer clash.
  • Dragging a card on a board: its neighbours no longer jump back and forth, and a card lifted and let go stays where it was.
v0.9.37

Achievements, and boards you can talk to

  • Achievements: 58 badges for dictating, flipping layouts, fixing and translating text, typing practice and boards, each an enamel-pin medal in bronze, silver or gold. Open them from the trophy by the bell; a badge flies into a spotlight and turns, and you can spin it with a drag. New badges show on the island and wait in the bell.
  • Boards badges count your own work: cards you create, cards you finish, checklist items you tick, cards done by their due date, and changes you make by voice. Work from before this update counts as earned earlier.
  • Talk to a board from anywhere: press the hands-free key twice. One spoken command can change many cards at once, set a card's project or tag people on a shared board.
  • Boards: select several cards and change them together, move around the board with the keyboard, a built-in Project on every card (shown on its preview), the app's own calendar for dates, and templates in the page header, your own included.
  • Card pages: pictures and files behave like Notion's, drag pictures to reorder them, and long titles stay whole in the side peek.
  • The first-week card gets two voice quests: create a card and change one by voice.
  • Inviting a friend: the app now says their free month starts once they've dictated 300 words.
  • Faster and smoother: tabs open without blocking, the board no longer burns the processor beside an open card, drags move only what moves, and clicks on a picture's caption respond at once.
v0.9.36

Ink behind the pointer, and email recaps

  • The pointer leaves ink in water behind it: faint when it moves slowly, rich when it moves fast, with letters lighting up and changing around it.
  • Typing practice: a slip stays in its word instead of making every following letter wrong.
  • The first-week card glows round its edge and teaches three more things: grabbing text from the screen, flipping the last word you typed (slang too), and flipping several selected words.
  • Account has an "Email recaps" choice: monthly, weekly and monthly, or off. The button in a recap email opens that recap in Sayful.
  • Recaps say more ways the time you got back could be spent, and compare your words with more books, so they don't repeat.
  • Banner buttons light up more softly under the pointer, and the Dictionary page loses the glows its top edge cut off.
v0.9.35

A microphone check, and updates on the island

  • When a dictation hears nothing, the island says so ("No sound from the mic" or "No speech heard") with a gear that opens the microphone settings.
  • Settings → Voice is a quick microphone check: pick the input, press Check and watch the meter, then play it back or see what dictation makes of it.
  • After you dictate, the island tells you when a new version is ready, with an Update button. At most once a day.
  • Every page opens the way Notes does, its blocks rising out of a soft blur one after another.
  • Banner buttons light up under the pointer, brightest where the pointer is.
  • Typing practice fits the narrowest window.
v0.9.34

Sayful opens with sound

  • Sayful opens with the strands of light from sayful.app: at launch, and whenever its window opens again. A window that is already open just comes forward.
  • Setup ends the same way: the walkthrough fades out, the strands play over the desktop, and Home rises in one block at a time.
  • Setup's last steps are livelier. The crossed-out price tears in light and "$0" lands with a knock. The captions under the icon change from one line to the next, letter by letter. The two gifts open with the confetti, tilt toward the pointer and lift on hover.
  • Every menu in the app is the same Sayful dropdown, and it works from the keyboard.
  • Notes opens with an entrance; Free Pro moves; the typing result is redesigned, and typing statistics show more.
  • Island messages keep their own words while they shrink away.
v0.9.33

Recording stays out of the way

  • Starting a screen recording no longer brings the Sayful window to the front.
v0.9.32

A livelier Home, and your streak in full

  • Home's banner takes turns between dictation, your week and your all-time totals, with the numbers counting up; your week now says what the saved time is enough for.
  • Your streak, totals and Insights count every day you dictated, not only the last 500 dictations, so a daily streak no longer stops at about eleven days.
  • The week's story compares your words with a book you know ("Longer than “The Little Prince”") and says what the saved time was enough for.
  • Permissions and Hotkeys moved into Settings as tabs, so the sidebar is shorter.
  • Menus in Settings, Hotkeys and the dictionary are Sayful's own dropdowns, and shortcuts are recorded with a round record button.
  • Notes opens on Boards the first time, with an empty "My board" ready, and a board opens at its top-left corner.
  • Pages open without a blank pause, and a soft light follows the pointer in the window.
v0.9.31

Polish for shorter dictations

  • Dictations from 25 words, not 36, are polished: punctuation, paragraphs and the corrections you make while speaking ("blue, I mean purple").
v0.9.30

Plans, a smoother setup, and cleaner dictation

  • A Plans item in the sidebar opens a choice of Basic, which is free, or Pro. Pro is $12 a month with tax included.
  • Free Pro has a "Rather not wait?" card that leads to the plans, and its sidebar item no longer jumps when the page opens.
  • Upgrade to Pro opens the payment page straight away again.
  • Setup's headings and subtitles settle in more smoothly, the founder's note and the Pro card come in line by line, and the gift's card no longer flashes the next step as it is dealt.
  • Dictation repairs words that came out with letters from two alphabets, such as a Latin "C" in a Cyrillic word.
  • When you correct yourself while speaking ("blue, I mean purple"), Sayful keeps the correction even when it removes many words.
v0.9.29

A livelier setup, and Pro a click closer

  • Setup's headings and subtitles come in word by word, so each new step reads at a glance.
  • The gift at the end of setup deals its own cards, the paywall tears with a glowing crack and falling halves, and the note carries the founder's photo.
  • Sharing your gift is one Copy link button.
  • Upgrade to Pro opens the payment page straight away, without a stop on sayful.app.
  • A friend's invitation page now says who it is from.
v0.9.28

The island fits every language

  • The dictation island's words now fit in every language: "Transcribing…", "Press ⌘V to paste", the cancel, retry and weekly-limit toasts and Sayful's short notes size the pill to their own words instead of an English width.
  • When a dictation stops because nothing was heard, the island says "No sound. Check the microphone."; the notification keeps the full sentence.
v0.9.27

Sayful in your language, and a gift to start

  • Sayful speaks 20 more languages: Chinese, Hindi, Spanish, Arabic, French, Bengali, Portuguese, Russian, Indonesian, Urdu, German, Japanese, Ukrainian, Turkish, Tamil, Vietnamese, Korean, Persian, Italian and Thai. It follows your Mac's language, or your keyboard's when the Mac's isn't one of them; change it in Settings › General.
  • Setup ends with a gift: a week of Pro for you, and a month of Pro to give someone close. Once they've dictated a little on their own Mac, a month is yours too.
  • Pro has no limits now: dictate, translate, read aloud, take text from the screen and use Notes AI as much as you like.
  • A friend's month now asks for about 300 dictated words, not 2,000.
  • A dictation left running stops after a minute of silence and types what you said. If nothing was heard, Sayful asks you to check the microphone.
  • After about 1,000 dictated words, and two days before a gift of Pro ends, Sayful suggests giving a friend a month.
v0.9.26

Layout flip for accented letters

  • Auto-flip now fixes words whose own letters sit on punctuation or digit keys: Spanish "año" typed on the English keyboard comes out "a;o" and is fixed, as are German "für" ("f[r"), Swedish "hallå" ("hall["), Czech "děkuji" ("d2kuji") and French "été" ("2t2"). This brings auto-flip to Spanish, Italian, Nordic and most other Latin keyboards. Punctuation around a real word stays punctuation, so "it;" or "me:" are left alone.
  • A word followed by a comma or full stop flips too, and the comma stays where you typed it.
  • The setup's layout flip demo greets you in your own language for every language auto-flip knows: Greek γεια, Hebrew שלום, French salut, Kazakh сәлем and more. Where the greeting types the same on English, it uses an everyday word with one of your letters, such as Spanish mañana or German tschüss.
  • Setup fetches your languages' word lists itself, so the flip demo works on the first run.
v0.9.25

A new first run

  • Setup is rebuilt: one window, one step at a time, each with a picture of exactly what to do, and the steps change like a deck of cards.
  • Try it: the heading tells you what to do at each moment, and "Press, Talk, Press again" sits under the key.
  • Permissions: one page per macOS switch, Accessibility then Input Monitoring, with a picture of dragging Sayful into the list.
  • Layout flip demo: type your own word (привіт or привет) on the English keyboard, press Space, and watch it fix itself. The field shows what will come out and fills in as you type.
  • When a step is done the button lights up; at the end, confetti.
v0.9.24

Double Shift for every keyboard, and your week in numbers

  • Double Shift now flips between any of your alphabetic keyboard layouts, not only English and Ukrainian or Russian: select text, or put the cursor after a word, and tap Shift twice. Input methods such as Japanese or Chinese are not flipped. Sayful picks the language whose word list the result matches; with only two keyboard languages it simply swaps them.
  • Every Monday, Home shows what Sayful did for you last week: time saved, words dictated, layouts flipped, text fixed and translated. "Watch your week" plays it as a short story. In a month's first week the card shows last month instead. All of it is counted on your Mac; nothing is sent.
  • The first-week checklist on Home shows each shortcut as a key and opens a short guide with a picture when you click a row. Setup text is shorter.
  • Free Pro and Invite friends now have their own tabs in the sidebar (Free Pro shows while you are signed in).
v0.9.23

Faster layout flip in browsers

  • Auto-flip in web and Electron editors (Claude, Notion, Slack) replaces the word in one step instead of erasing and retyping it letter by letter, so it is several times faster and no longer holds up your next keystrokes. Search boxes and other one-line fields keep the previous way.
v0.9.21

A steadier layout flip

  • When a word could be both Ukrainian and Russian with different spellings, auto-flip picks your own language instead of guessing.
v0.9.20

See which features people use

  • While you're signed in, Sayful sends how many times a day each feature ran on your Mac (layout flips, double Shift, Shift fixes, translations, screen text) with your account, never your text, so we can see which features people use. Turn it off with "Send feature counts" in Settings → General.
v0.9.19

Translate what you read

  • Translate what you read: select text on a web page or in a mail you are reading and press Shift+Space. The translation opens in a card above the island, in your own language, with a copy button. In a text field Shift+Space still replaces the selection.
  • The first-week checklist on Home gains "Translate what you read".
v0.9.18.2

A steadier first run

  • Fixed: on a slow first launch, the main window could open on Settings over the setup window.
  • Fixed: when setup ended right after granting permissions, the Sayful window could open behind System Settings.
  • The microphone step now shows today's macOS prompt, which says your voice goes to Sayful Cloud to become text.
v0.9.18.1

Shift fix, steady again

  • Fixed: with nothing selected, the single-Shift fix could paste what was on the clipboard instead of the corrected text (seen in Telegram). It now selects the field the way it did before 0.9.18; a short highlight is back in apps like Notes, Mail and Telegram.
v0.9.18

A first run that shows the way

  • Setup now walks you through with pictures and the real dictation island. You try dictation with your own hotkey and a phrase in your language, see how fast the text arrived, hear it read back in a native voice, and watch Polish fix a slip.
  • Permissions are easier: drag the Sayful icon from the card under System Settings straight into the Accessibility list. Input Monitoring is requested first and opens System Settings only when it has to. The microphone is asked once, through the system prompt.
  • Sayful moves itself into Applications on first launch.
  • Home welcomes you with a first-week checklist and shows a banner when you are signed out.
  • If a dictation finds no text field, the island says "Press ⌘V to paste" and keeps the text on the clipboard for 7 seconds. Dictating with Finder or the desktop in front no longer leaves a "Pasted …" file behind.
  • Shift+Space translation leaves your text in place until the translation replaces it. The single-Shift fix no longer flashes a selection in apps like Notes, Mail, Messages and Telegram, and a selection you made stays highlighted until the fix replaces it. Translate, transforms and the fix never paste if you changed the text in the meantime.
  • The island says what it is doing: "Fixing…", "Translating…" or the transform's name, then "Nothing to fix" or "Text changed, not replaced" when that happens. "Polishing…" shimmers again.
  • Sayful now counts setup steps anonymously — which steps are finished, with no identifier — so we can see where setup gets stuck. Turn it off with "Count setup steps anonymously" on the first setup screen or in Settings → General.
v0.9.17

Text the moment you stop

  • Dictation now streams while you speak: the text lands about a quarter of a second after you release the key, instead of about a second. If the stream is unavailable, Sayful uploads the recording as before.
  • Read aloud starts almost at once, with natural voices that are native to each language. Auto picks a Ukrainian voice for Ukrainian, a Russian one for Russian, an English one for English and so on for 15 more languages, or you can choose a voice in Settings → Voice. Each read word now counts as 3 dictated words in your weekly allowance, down from 14.
  • A recording with nobody speaking no longer pastes invented words. If the microphone sends no sound at all, Sayful tells you to check it.
  • A dictation you cancel doesn't count against your weekly words.
  • Longer dictations (from about 36 words or 31 seconds) are polished. The island shows "Polishing…" and narrows to fit it.
  • Snippets, Transforms and Dictionary now show how they work, with live examples of each step.
v0.9.16

A code, applied

  • When an invitation code is accepted in Refer a friend → Apply code, the envelope gives way to a checkmark that draws itself, with a short burst of confetti (just the checkmark with Reduce Motion on). The field locks so the code can't be sent twice.
  • Fixed: right after a code was applied, the Refer a friend window briefly turned into a loading spinner.
  • The invitation page at sayful.app/r shows the code with a Copy button and step-by-step instructions for people who already have Sayful.
v0.9.15

See who is typing

  • See who is typing in a shared card and where: their paragraph shows their name with moving dots, and their text appears as they type.
  • Fixed: when two people had the same shared card or page open, the one who saved second replaced the other's text. Text that arrives now merges paragraph by paragraph into what is on screen.
v0.9.14

Files on shared boards

  • Pictures and files on shared boards reach everyone on the board (up to 25 MB each, 2 GB per board); a picture still on its way says so.
v0.9.13

@ mentions

  • Mention people on shared boards the Notion way: type @ anywhere in a card's or page's text and pick a collaborator; they see it on the card, in the @ filter, and get a notification.
v0.9.12

Shared boards, live

  • Shared boards update live: a change shows on the other Macs in about two seconds, the board shows who is on it, and a card someone else has open carries their name.
  • A clearer way to share a board: a Share button on the board, a sheet that explains sharing before you start, then an invite field, the free seats left, and everyone on the board with their picture, role and whether they're here now.
  • Tag people on a shared board's cards: tagged people show on the card, the @ button shows the cards you're tagged on, and a new tag sends you a notification.
v0.9.11

Shared boards, ready to switch on

  • Dictation starts and stops with the same Pop that every other Sayful action plays, instead of a reversed Pop for the stop.
v0.9.10.2

Keep dictation endings

  • Fast dictation independently checks the final audio context and restores a missing continuation when the words match reliably, counted as one final transcript against the allowance.
  • Dictation formatting keeps the original transcript when it changes or drops the last words.
v0.9.8

A dictionary you can manage

  • Edit a learned pair in place: correct the spelling or retype the misheard variants instead of deleting the rule and teaching it again.
  • Sort the personal dictation list by how often a rule fires, by when it was added, or alphabetically, and filter it down to learned rules, your own, ones that never fired, or ones that need attention.
  • Search the list by a word or any of its variants.
  • Stop learning pairs that carry no misheard spelling, and automatically drop learned rules that never fire — after 30 days, or 60 for a suggestion you never answered.
v0.9.7.25

Reliable long dictations

  • Fixed long dictations failing when their pre-recording cloud reservation expires.
  • Automatically recover if a reservation expires during upload, without requiring Retry.
v0.9.7.24

Optional product analytics

  • Added an optional, default-off usage analytics switch in onboarding and General settings.
  • Share only content-free milestones to help improve onboarding, dictation, OCR and checkout.
  • No screen recording, dictated text, audio, screenshots or account identity in analytics.
v0.9.7.23

A more focused account experience

  • Moved Sign out to a top-right icon in the profile menu, with accessible help.
  • Placed Upgrade to Pro at the bottom left with Sayful's atmospheric gradient.
  • Made checkout, return and billing pages more compact, with a unified logo and primary actions visible before secondary content on small screens.
v0.9.7.22

A clearer path to Pro

Improved

  • Refreshed Pro, subscription and invitation screens with Sayful's teal/amber atmosphere, clearer button feedback and a minimal invitation illustration.
  • Added quick access to invitations and weekly allowance usage in the title bar, plus a one-time halfway reminder for eligible Free accounts.
  • Smoothed referral tabs, added a tear-off copy effect and an inline invitation code field; empty referral history stays hidden. Reduced Motion is respected.
  • Updated checkout, return and billing-portal pages with clearer status and tax copy.

Fixed

  • Subscription details refresh after checkout, account changes and returning from billing management; cancellation shows the end of paid access correctly.
  • Referral data stays scoped to the current account; copying confirms only after the clipboard write succeeds.
v0.9.7.21

Single Shift rework

Changed

  • Single Shift no longer holds the selection highlighted while the AI works: the text is copied, the highlight is released so you can keep typing, and the corrected text is pasted back only after verifying the target still holds exactly what was sent (and focus has not moved to another app).
  • With nothing selected, Single Shift now fixes the whole focused text field (up to 8000 characters) instead of doing nothing. Auto-selection only runs in real text fields; selection presence is read from Accessibility instead of a Cmd+C probe, so editors that copy the whole line on empty Cmd+C (Obsidian, VS Code) no longer misfire.
  • Chromium apps that expose no focused accessibility element (Codex inside ChatGPT.app) now work too: the whole-field path runs blind with the same verify-before-paste guard, and a long manual selection stays highlighted and is replaced in place.

Fixed

  • Sayful no longer forces AXManualAccessibility on Claude Desktop — its Electron build doubles every keystroke once renderer accessibility is switched on, and the state sticks until the app restarts.
v0.9.7.20

Notes section chrome

Changed

  • Daily, weekly, and monthly note summary sections (ToDo, Achievements, Notes, and the rest) no longer sit in grey card panels — headers and lists use the page background without fill or stroke. Free-form custom notes keep their cards.
v0.9.7.19

Bundle identity

Changed

  • The signed app identifier is now app.sayful (reverse-DNS of sayful.app). Settings migrate from the previous bundle id; Keychain items and encrypted dictation history keep their historical constants so they still open. Accessibility, Input Monitoring, Microphone, and Screen Recording must be granted again for the new identifier. Previous TCC clients are reset so System Settings does not keep two Sayful rows.
  • Onboarding skip links no longer take the default keyboard focus.
v0.9.7.17

Launch fix

Fixed

  • 0.9.7.16 would not open after installing: it crashed before drawing anything, because a resource lookup reached a code path that only resolves on the machine the release was built on. Anyone who could not launch 0.9.7.16 should install this build.
v0.9.7.16

Guided onboarding

Added

  • First-run setup is now a guided walkthrough — Sign in, Microphone, Try it, Permissions, Flip, Ready — with a progress rail and a short demo clip beside every step showing exactly what macOS is about to ask.
  • **Try it**: dictate your first sentence inside onboarding, before the Accessibility and Input Monitoring steps, so you see what the app does before granting anything broad.
  • **Flip**: watch the layout flip happen live. Sayful puts you on your second keyboard language, you type a word, and space corrects it — then your layout goes back. Shown only where it can work, and skippable like every other step.
  • Every step can be skipped, and a step you've already satisfied is one click.
  • Back navigation returns to the step you came from.

Fixed

  • Hotkeys and the flip now work while onboarding is open. Previously nothing was listening until setup finished, so anything the flow invited you to try was silently dead.
  • The setup window no longer floats above everything — it used to cover the sign-in page and the System Settings pane it sends you to — and it can be minimised. Opening either now brings that window to the front.
  • Finishing Input Monitoring reopens setup on the step you left instead of restarting from the beginning.
v0.9.7.15

Work accounts sign in the same way

Changed

  • Signing in with a work account now shows **Sayful** on the Google screen, the same as personal accounts already did, and returns to Sayful's own "Sign in complete" page with the app coming to the front on its own.
v0.9.7.14

Sign-in shows Sayful, and comes back to Sayful

Changed

  • After you pick an account, the browser lands on Sayful's own "Sign in complete" page and the app comes to the front on its own — no "Open Sayful?" prompt, and no tab left sitting on google.com.
v0.9.7.13

Skippable setup and a Permissions tab

Added

  • Onboarding permission steps can be skipped: each step now offers **Skip for now**, and a skipped step stays listed with a way back instead of blocking setup. Granting it later in System Settings marks it done on its own.
  • New **Permissions** tab in the sidebar collects Accessibility, Input Monitoring, Microphone, and Screen Recording in one place, moved out of Settings → Features.
  • Home warns when a missing permission has switched a core feature off — "Hotkeys are off" or "Dictation is off" — with one hop to Permissions, and the sidebar marks the tab until it is resolved.

Fixed

  • The main window can no longer be resized narrower than its layout supports, where headings wrapped one letter per line and the Notes header overlapped its own controls. Home keeps both columns readable at the minimum width.
v0.9.7.12

Reliable sign-in recovery

Fixed

  • Switching between personal, work, and remembered accounts now cancels the active browser attempt immediately, so retrying no longer requires relaunching the app.
  • Abandoned browser sign-in is bounded and stale callbacks can no longer overwrite a newer attempt.
v0.9.7.11

Encrypted dictation history

Added

  • Local dictation transcripts are now protected by AES-256-GCM with their encryption key stored separately in the macOS Keychain.

Changed

  • Existing plaintext history migrates automatically after a verified encrypted round trip, while preserving the same History, Notes, and Insights workflow.
  • Dictations keep their original timestamps and entries older than 30 days are removed on first launch after updating and during normal use.

Security

  • Missing keys, modified ciphertext, and storage failures now fail closed without overwriting recoverable history.
  • The History directory and encrypted file are restricted to the current macOS user with 0700 and 0600 permissions respectively.
v0.9.7.10

Fixes and improvements

Fixed

  • Double-clicking visual free space in a collapsed or expanded custom note now expands when needed, then appends and focuses a new final line without affecting its title, header controls, or existing rows.
v0.9.7.8

Manual and pinned custom notes

Added

  • Notes can now be created inline by typing or captured by voice into the same persisted custom-note model.
  • Custom note cards can be pinned above every selected day, week, and month.
  • ToDo blocks can hide completed action items across every calendar period.
  • Manually created custom notes now open as one inline-editable block: the chevron alone expands it, while its icon, title, free-form lines, Markdown action items, nested actions, and --- separators edit directly in place.
v0.9.7.7

Multiline note items

Changed

  • Notes items now use Shift+Enter for a line break while plain Enter keeps finishing the current item, both for new and existing entries.
v0.9.7.6

Reliable screen text and large requests

Small fixes and improvements.

v0.9.7.5

Monochrome installer, orb polish

Added

  • The dictation island's translate / fix / read-aloud busy state now shows the same animated orb as transcribing, instead of the plain spinner.

Changed

  • The DMG installer window now matches the app's monochrome icon and dictation-island orbs instead of the previous teal accent.

Fixed

  • Cancelling a dictation several times in a row no longer pushes the "Transcript cancelled" toast's lifetime bar outside the pill's left edge.
v0.9.7.4

Animated transcription orb

Added

  • The dictation island's "Transcribing…" indicator now shows an animated dotted orb (ported from the thinking-orbs component) instead of the plain spinner, cycling through five distinct animation styles.
v0.9.7.3

Nested notes and reliable account switching

Added

  • ToDo sections support nested tasks and dividers while preserving valid Markdown through edits, regeneration, and export.
  • Nested tasks have stable identities, so equal labels under different parents can be completed independently.
v0.9.7.2

Reliable transcript polishing

Changed

  • Public polishing also falls back to Qwen 3.6 27B after it won the multilingual preservation and latency benchmark.

Fixed

  • Text-provider failures and timeouts no longer leave long dictations waiting for a minute before silently returning an unformatted transcript.
v0.9.6.6

Complete dictation and STT diagnostics

Small fixes and improvements.

v0.9.6.5

Guided typing lessons and flexible history

Added

  • Progressive letter-by-letter typing lessons for English, Ukrainian, and Russian, with real-word curricula, paginated exercises, mastery thresholds, a full finger-zone keyboard, and new typing achievements.
  • Fast, Quality, and Turbo re-transcription actions in dictation History.

Changed

  • Typing practice scores physical key positions independently of the active macOS layout and only offers languages whose keyboard layouts are installed.
  • History actions use a compact two-row layout, and Dictionary exceptions show the text produced by the remembered physical-key sequence.

Fixed

  • Truncated History transcripts expand smoothly from a click anywhere on their card and expose a clear hover chevron when more text is available.
  • Hover help no longer consumes the first click on History action buttons.
v0.9.6.3

Reliable Bluetooth dictation

Fixed

  • Dictation now continues receiving audio from the selected Mac microphone when a Bluetooth speaker with a different sample rate is connected.
  • The Insights WPM gauge now uses the same percentile scale as its displayed standing.
v0.9.6.2

Focused Notes and typing polish

Changed

  • Team aggregate activity sharing is enabled by default on new installations while preserving an existing user's explicit opt-out.
  • Dictation start and stop cues now use distinct, consistently ordered sounds.

Fixed

  • Typing passages no longer include accidental trailing quotation marks in the English, Ukrainian, or Russian word lists.
  • Typing restart guidance and the statistics toolbar use clearer, functional UI.
v0.9.6.1

Fixes and improvements

Added

  • Notes includes an Achievements section, renames Action items to ToDo, and supports adding an item by double-clicking an empty section.

Changed

  • Notes controls use native macOS hover help, clearer interaction states, and a more compact workspace header.

Fixed

  • Double Shift works again for the last typed word and selected text in Chromium browsers when their Accessibility element is temporarily unavailable.
v0.9.6

Typing practice, feedback inbox, and Notes sorting

Added

  • A Monkeytype-inspired Typing workspace with English, Ukrainian, and Russian practice, 15/30/60-second tests, animated results, and local-only history.
  • Typing Statistics with personal bests, activity heatmap, progress chart, WPM distribution, accuracy, consistency, and streak metrics.

Changed

  • Notes opens with Action items, Decisions, and Notes in that order. Items can be reordered by dragging the dedicated handle while editing and checkboxes remain independent.
  • The Obsidian export button now uses the transparent gradient SVG artwork.
  • Typing results use a stricter cardless hierarchy, and the Performance summary now matches the WPM distribution card in height and visual weight.

Fixed

  • Returning to Practice after viewing Statistics starts a fresh exercise without replaying result animations or confetti.
  • Notes drag-and-drop no longer drags the app window, jumps between container edges, or moves entire groups instead of the adjacent item.
  • Voice Context joins the Notes entrance animation, bullet markers are vertically centered, and the feedback dashboard keeps its Save action visible in narrower windows.
v0.9.5.5

Additive Notes + smoother Insights

Added

  • Notes is now a real editable daily workspace: selected sections are available before AI generation, and handwritten items survive every later update.
  • The Auto capsule can be toggled directly from Notes. Automatic updates append new context without replacing the existing note.

Fixed

  • Additive note updates preserve edited and completed items, avoid repeating existing content, and prevent the same new fact from appearing in multiple sections.
  • Notes tooltips stay inside the window, the Notes section remains visible when empty, custom-note rows keep their compact height, and day navigation no longer shows redundant arrow tooltips.

Changed

  • Insights keeps its staged entrance and animated activity calendar while drawing the heatmap as one Canvas surface, substantially reducing frame drops.
  • Notes day transitions retain their directional fade and scale effect without applying an expensive full-page blur.
v0.9.5.4

Dictation cleanup + insights polish

Fixed

  • More Whisper hallucination variants are now cleaned from transcripts: a bare "DimaTorzok" dropped mid-sentence and subscribe-style outros ("подписаться на канал", "ставьте лайк", "чтобы не пропустить новые видео"). Verified against a saved recording where Whisper replaced ~30 words of real speech with the credit name.

Changed

  • Long-dictation polishing aims for livelier, more readable text: colons before enumerations, dashes for asides, parentheses for clarifications, and splitting run-together clauses — punctuation-only, words untouched.
  • Insights: the WPM gauge shows your Top X% instead of the personal best.
  • The menubar Language switcher hides when only one non-English layout is installed.
v0.9.5.3

Rock-solid flips in Electron apps

Fixed

  • **Flips no longer mangle text in Chromium-based editors** (Claude Desktop, Codex, and other Electron apps). Their editors drop and reorder fast synthetic keystrokes, so erase-and-retype could leave things like "gперевірк". Replacements there now use a single accessibility-verified selection plus one paste — atomic, and it refuses to touch the text unless the selection reads back exactly right. Native apps keep the fast path.
  • **No Russian without a Russian keyboard.** macOS reports the Ukrainian layout as also "typing Russian", which made auto-flip treat Russian as installed on every machine with a Ukrainian keyboard (e.g. "ghbdtn" -> "привет"). Layout detection now uses each keyboard's primary language only, and the ы↔і / э↔є letter repair no longer corrects toward Russian words when the Russian layout isn't installed.
  • Editing gestures (double-Shift flip, single-Shift fix) no longer trust browser/Electron accessibility positions — they use the reliable selection-based flow there, while dictation learning keeps its read-only access.
v0.9.5.2

Dictation reliability + instant start

Fixed

  • **Long dictations no longer vanish or turn into junk.** The hallucination filter now surgically cuts known Whisper stock phrases (subtitle credits, "Продолжение следует…", and echoes of Sayful's own language hint like a stray "Don't translate!") wherever they appear, never touching the surrounding text. A transcript that was nothing but hallucination becomes a retryable failure with the recording preserved, instead of a dead-end "No speech was recognized" banner.

Added

  • **Instant dictation start:** the island reacts and the start sound plays the moment you press the hotkey, while the microphone spins up in the background.
  • Settings → General → Troubleshooting → **Reset app data**: one button wipes every setting, history, learned term, and sign-in so the next launch is a clean install.
  • Launch at login is now enabled by default on first launch (your later choice in Settings sticks).

Changed

  • Team podium: athletes' elbows raised to shoulder level for a proper double-biceps pose; tap an athlete for a victory hop (head included).
v0.9.5.1

Dictation reliability hotfix

Fixed

  • **"No speech was recognized" after long dictations.** Two causes fixed: the hallucination filter could wipe a long dictation that merely mentioned a subtitle-credit phrase (aggressive matching now only applies to short, silence-shaped transcripts), and when Whisper hallucinates a whole long recording into credit loops, Sayful now silently retries the same audio through the Quality model before reporting anything.
  • An empty transcript from a real recording is now a retryable failure: the recording is kept and the island/History offer Retry, instead of deleting the audio and showing a dead-end banner.

Changed

  • Team podium polish: solid pedestals, athletes planted on the steps, elbows spread to shoulder level for a proper double-biceps pose, wider columns so names don't truncate.
v0.9.5

Learning v2 + Features command center

Added

  • **Learning v2 — the personal dictionary actually learns now.** A new fuzzy matcher applies your terms even when Whisper hears them slightly differently (declensions like "айдле" for a learned "айдл", 1-typo mishears, Cyrillic↔Latin spellings), never touches URLs/emails, and keeps sentence punctuation intact. Terms are normalized on save and old junk entries (like "idle.") are cleaned up automatically on first launch.
  • **Fix transcripts from History.** A pencil button on every dictation opens an edit sheet; Sayful diffs your correction and remembers the spelling — works in every app, including browsers and Electron where the automatic watcher couldn't. An instant hover tip explains the feature.
  • **Learning that verifies itself.** Auto-learned pairs go through an AI judge ("STT mishearing or content edit?"); unconfirmed ones wait in a suggestion queue in Dictionary → Learning (Learn / Dismiss cards). Rules you keep undoing get auto-paused, unused ones decay back to suggestions, and every rule shows how many times it fired. A try-a-phrase test field previews what the dictionary would do.
  • **Settings → Features:** every feature's master switch plus the system permission it depends on (Accessibility, Input Monitoring, Microphone, Screen Recording) in one command center, with "Needs …" warning chips that deep-link to the right grant screen. Master toggles are no longer scattered across General / Voice / Hotkeys / LangFlip / Transforms.
  • **Settings → Appearance:** the flip overlay, screen-capture scan animation (newly toggleable), dictation island, notification banners, and sound feedback — all visual effects in one tab, with Preview buttons.
  • The formatting model now knows your personal terms and fixes close phonetic mismatches contextually; spoken self-corrections ("в 7 утра, ой, я имел в виду в 8") are applied, keeping only what you meant.

Changed

  • The Team podium's top three are now illustrated athletes on competition steps — the player's avatar as the head, medal-tinted vector bodies pumping a double-biceps flex — replacing the Giza pyramids.
  • Auto-format merges thoughts that pauses split across sentences, applies consistent typography (em dashes, matched «»/"" quotes, single ellipsis), and collapses accidental word stutter.

Fixed

  • **Empty dictations no longer insert subtitle credits.** Whisper's silence hallucinations ("Subtitles by the Amara.org community", "Продолжение следует…", "Thanks for watching") are filtered out; a silent recording now reports "No speech was recognized".
  • Personal-term learning now works in Chromium browsers and Electron apps by asking them to enable their accessibility tree.
v0.9.4

Team dashboard overhaul

Added

  • **Team activity leaderboard:** rank teammates not just by dictated words but by feature usage — manual layout flips, auto-flips, Shift fixes, translations, and screen-to-text — across Today / Week / Month / All time, via a two-row period × metric filter.
  • **Richer achievements:** new badges for flips, Shift fixes, translations, and a "Full Kit" for using every feature; badge tiles now show a progress ring toward the next threshold, rarity tiers (bronze/silver/gold), and a hover tooltip.
  • **Celebration effects:** opening the notification center with a freshly unlocked achievement rains confetti over the window; clicking the logo rains the brand letters as a little easter egg.
  • A stepped Great-Pyramid podium for the top three.

Changed

  • The auto-flip exception is now added only after three consecutive backspaces (instead of the first), and rejecting a flip rolls the word back to what you typed — with an Undo toast on the dictation island.
v0.9.3

Clipboard restore + Fast by default

Changed

  • Dictation now defaults to **Fast** transcription (Groq/Whisper large-v3) for new users — quicker and cheaper. Existing users keep their chosen mode.

Fixed

  • The clipboard is now restored after auto-pasting a transcript, instead of leaving the dictated text stranded on the shared clipboard. Restore no longer depends on accessibility focus detection (which failed silently in browsers and Electron apps). The transcript stays on the clipboard for a short grace window so it can still be pasted manually if the auto-paste found no focused field, then the previous clipboard contents are put back.
v0.9.2

Faster dictation fallback

Changed

  • Uses a shorter Groq/Whisper language hint that keeps Ukrainian, Russian, and English dictation in-language more reliably without nudging English speech into translation.
  • Applies STT prompts per attempted model, so a fallback transcription can use the prompt that best fits that provider.
v0.9.1

Keyboard-aware dictation

Added

  • Added a Dictation setting, on by default, that hints speech-to-text models with the user's enabled keyboard languages to reduce wrong-language transcripts such as Ukrainian speech being recognized as unrelated Polish text.
  • Added first-run language defaults based on the user's installed macOS keyboard layouts, so the secondary language is only enabled when a second supported non-English layout is actually available.

Changed

  • Language pickers now only offer supported keyboard layouts that are installed on the device, while still keeping a safe fallback if macOS cannot enumerate input sources.
  • Auto-flip, Always Flip rules, and dictionary target choices now respect the enabled layout set instead of considering unavailable languages.

Fixed

  • Fixed a macOS 26 crash during dictation by caching the available keyboard layout snapshot and avoiding TISCreateInputSourceList from background transcription tasks.
v0.9.0

Bluetooth dictation polish

Fixed

  • Kept Bluetooth headphones in high-quality playback mode during dictation when Sayful is set to record from a Mac or other non-headset microphone.
  • Released the recorder's CoreAudio engine after each dictation so headphone playback returns to normal immediately after recording.
  • Stopped sending empty microphone recordings to transcription and now reports a clear "No microphone audio was captured" error when capture produces no usable audio.
v0.8.14

Window focus fixes

Fixed

  • The Sparkle update window is now brought to the front when opening the update flow from Sayful's in-app update button or menu item.
  • Returning from Google sign-in now activates Sayful and raises an existing window, including when the app was minimized before clicking "Open app".
v0.8.13

Team avatars

Added

  • Custom profile pictures are uploaded to Sayful Cloud storage on save, so the avatar chosen in Manage Account can appear for teammates too.
v0.8.12

Fixes and improvements

Fixed

  • Sign-in failures now reset the in-app button state and show an error instead of leaving onboarding or the profile popover stuck on "Signing in...".
v0.8.11

Quality dictation by default

Changed

  • Fresh installs now default dictation transcription to Quality mode, so Sayful uses the cleaner Qwen ASR path unless the user explicitly chooses Fast.
  • The Fast / Quality picker now opens on Quality for users without a saved dictation mode preference.
v0.8.10

Steadier layout flips

Fixed

  • Double Shift with no selection now flips the whole word even in editors, IDEs and terminals — including wrong-layout words that contain punctuation keys (e.g. F,j → Або, phj,bnb → зробити), which previously flipped only the tail after the comma.
  • Manual flips are now deterministic: Double Shift always switches to your primary language and Triple Shift to your secondary, without second-guessing the target from dictionaries.
v0.8.9

Achievements leaderboard

Added

  • Added a fourth "Achievements" tab to the Team dashboard, ranking the team by total unlocked badges (personal habits and team standing, combined) instead of a period-bound activity metric.
v0.8.8

Team leaderboard goes live

Added

  • The Team leaderboard is now live: /v1/leaderboard is deployed, so the Team dashboard shows real teammate rankings instead of the local-preview banner.
  • Added achievement badges for auto-flip usage (First Flip, Flip Fluent, Flip Master, Autopilot) and for "copy text from screenshot" usage (Screen Reader, Copy Paste Pro, OCR Veteran).
  • Added social/rank-based team achievements: Podium Finish, Top of the Board, Biggest Climber, and Most Improved.
v0.8.7

Manual flip stability

Fixed

  • Made no-selection double Shift consistently flip the last word before the cursor, including Cyrillic → English conversions such as дела → ltkf.
  • Added a caret fallback for editors where Accessibility cannot read the text value: Sayful can now select the word immediately before a moved cursor, convert it, and paste it back in place.
  • Reset layout-flip typing context on app switches, pointer clicks, and regular shortcuts so stale buffered text no longer affects later flips.
  • Delayed keyboard-layout switching until after focused rewrites land, avoiding intermittent cases where the word changed but the active layout did not.

Changed

  • Auto-flip exception notifications now open Dictionary → Learning directly, making it easier to review words Sayful learned from Backspace.
  • Escape now cancels an active dictation recording.
v0.8.6

Team dashboard polish

Added

  • Added local caching for the Team leaderboard so the last live board appears immediately while a fresh response loads.
  • Added recurring update checks and a title-bar update indicator when Sparkle finds a newer version.

Changed

  • Team now ranks by dictated words instead of XP, matching the weekly quota language.
  • Team refreshes economically: leaderboard requests run only while the Team tab is open and Sayful is active.

Fixed

  • Polished Team animations, removed the podium shine effect, centered summary metrics, and tightened the Team copy.
v0.8.5

Stable word flips

Fixed

  • Rebuilt no-selection double-shift around Sayful's own word buffer instead of macOS word selection, preventing tail-only rewrites like vj;ет.
  • Kept double-shift reliable for the current word and the word immediately before one typed space, while safely doing nothing after Enter, Tab, or extra spaces.
  • Limited automatic layout flips to ordinary spaces, so Enter and Shift+Enter no longer trigger surprise rewrites while sending or breaking lines.
v0.8.4

Layout boundary hotfix

Small fixes and improvements.

v0.8.3

Faster layout fixes and team momentum

Added

  • Added a Team dashboard polish pass with words-first rankings, previous-period insights, movers, achievement badges, and rank-climb notifications.
  • Added recurring background update checks so Sayful can surface a new version while it is already running.

Fixed

  • Fixed dictation paste cleanup so successful focused inserts restore the clipboard even when the target app touches the pasteboard during paste.
  • Fixed the first wrong-layout terminal word after idle, including common commands like make, run, git, cd, ls, and pwd.
  • Stabilized the dictation island hover animation and click target.
v0.8.2

Fixes and improvements

Fixed

  • Fixed dictation cancellation so Undo can still restore a recording while the Undo island is visible, then cleans it up after the window expires.
v0.8.1

Hotkey fixes

Fixed

  • Dictation hotkeys now keep working when LangFlip is disabled. Push-to-talk and hands-free dictation are controlled only by their toggles in Hotkeys.
  • Double Shift now flips only the last word before the cursor, using spaces, newlines, or the cursor as word boundaries. Punctuation keys that map to Cyrillic letters, such as "," in ",hfnbr", are included in the flip.
v0.8.0

Fixes and improvements

Added

  • Manage your history: each day in the Dictation, Screen Text, and Speech tabs now has a trash button that clears just that day or everything, and you can delete a single entry on hover. Deleting also removes the saved recordings.

Changed

  • The Home dictation list now opens to your 50 most recent entries with a "Show older" control, so the tab stays quick and scannable.

Fixed

  • The Home tab could pin the CPU and freeze — a spinning loader, unresponsive tabs — once the dictation history grew large. Scrolling and hover are now smooth no matter how much history you have.
  • The dictation island now stays above the Dock on the empty desktop too. A fullscreen app on a second monitor could make the island drop flush onto the Dock until you opened a window; it now clears the Dock whenever the Dock is visible.

Improved

  • Dictation recordings are reclaimed automatically: each is deleted once its transcript is saved, and anything older than 30 days is swept at launch, so audio can't pile up on disk.
v0.7.3

One-click updates from the title bar

Added

  • Sayful now checks for updates in the background shortly after launch. When a newer version is available, a green update button appears in the title bar next to the bell — click it to install and relaunch.

Fixed

  • The failed-dictation "Retry" label is now white, so it reads clearly on both light and dark themes.
  • Removed a stray focus ring that stuck to the notifications "Clear" button.
v0.7.2

Fixes and improvements

Added

  • Always-flip rules can now target English, so wrong-layout Cyrillic typing meant for English (for example "срфеПЗЕ" → "ChatGPT") is rewritten on the spot.
v0.7.1

Smoother dictation island

This release focuses on the dictation island — the most-used animation — making its state transitions smooth, with a couple of cleanups that also lower idle CPU.

Fixed

  • Fixed stuttering in the dictation island's transitions (expanding to record, switching to transcribing, and collapsing afterward). A cached Home window was reacting to dictation state on the main thread and starving the animation; it no longer does.
  • The recording controls (cancel · waves · confirm) now collapse into the island's centre on finish instead of sliding off to the bottom-right.

Improved

  • The animated Home backdrop now pauses when its window isn't on screen, so the app no longer spends CPU rendering it in the background.
  • Recorder teardown runs off the main thread and the transcript is inserted immediately, keeping the island's transitions free of hitches.

Removed

  • Removed the mic button from the Home banner. Dictation runs from the global hotkey and the always-present island, so the in-Home trigger was redundant and competed with the island's animation.
v0.7.0

Dictation, Home, and Playback Polish

This release turns the recent Sayful Cloud work into a more complete daily-use experience: faster dictation choices, safer retry flows, clearer Home history, and more polished playback and hotkey controls.

Added

  • Added a simple Dictation Mode switch: Fast for lower latency, Quality for richer transcription.
  • Added retry for failed transcriptions from both the dictation island and Home history, reusing the recorded audio instead of losing the attempt.
  • Added Home activity tabs for dictations, screen text captures, and generated speech files.
  • Added playback controls for generated speech, including pause/resume in the island and Home history.
  • Added animated hotkey chips in the Superpowers card, including inline recording and reset affordances.

Improved

  • Streamlined onboarding so a ready account opens straight into Home, with hands-free dictation and Shift+Space translation enabled by default.
  • Made dictation auto-formatting prefer logical paragraphs for longer monologues while preserving the speaker's wording.
  • Tightened text-polish prompts so Single Shift behaves like typo cleanup first, not a style rewrite.
  • Polished the Dictation hero, Superpowers highlight, Transform demo sheet, and TTS control animations.
  • Kept generated speech files in Home so they can be replayed or deleted later.

Fixed

  • Fixed TTS history rows so the play button turns into pause while the selected file is playing.
  • Fixed playback controls appearing from the edge of the screen instead of the center of the dictation island.
  • Fixed LangFlip word-boundary handling so punctuation keys that are Cyrillic letters on another layout, such as ; for ж, no longer trigger an early auto-flip.
  • Fixed Home hotkey chips getting stuck in recording state after relaunch.
  • Fixed first-run permission/event-tap restart paths so hotkeys work after onboarding without needing a manual relaunch.
v0.6.0

Personal Dictation Dictionary

This release teaches Sayful how you spell product names, people, jargon, and other personal terms after dictation.

Added

  • Added Personal dictation words in Dictionary > Learning, with manual entries and automatically learned spellings.
  • Added a post-dictation correction learner that watches short edits after a transcript is inserted and stores safe recognized phrase -> preferred spelling pairs.
  • Applied personal dictionary replacements before and after dictation auto-formatting, so saved spellings survive the cleanup pass.

Improved

  • Cached Insights usage and heatmap snapshots to reduce repeated history calculations while the tab renders.
  • Made the dictation island lift animation quicker.
v0.2.9

Cloud Speech and AI Providers

This release makes LangFlip's AI features more flexible while keeping every cloud path opt-in. Voice, dictation, screenshot text capture, and AI text fixes can now use configured API providers instead of depending only on local models.

Added

  • Added Cloud STT for dictation through /audio/transcriptions, with curated model choices and provider-side language auto-detection.
  • Added Cloud OCR for screenshot text capture with a dedicated vision-model picker.
  • Added Fn+Option as the default hands-free dictation toggle, with a picker for alternative hands-free shortcuts.
  • Added docs/plan.html as a visual living project manual and make plan to open it.

Improved

  • Kept Cloud STT language-free so transcription models infer the spoken language from audio instead of receiving the current keyboard layout.
  • Clarified Voice settings around local vs cloud dictation, API-key storage, and per-feature cloud usage.

Removed

  • Removed weak or unreliable Cloud STT choices from the curated list, including OpenAI Whisper 1, OpenAI GPT-4o Mini Transcribe, and OpenAI Whisper Large V3.
v0.2.8

Double Shift Hotfix

This hotfix tightens manual double/triple Shift behavior in editors that do not expose normal macOS Accessibility text ranges, including Obsidian and web-based chat inputs.

Fixed

  • Prevented Obsidian-style Cmd+C-without-selection behavior from duplicating and converting the whole current line.
  • Added a keyboard fallback for Codex/Claude-style inputs that do not expose focused text through Accessibility.
  • Made manual double/triple Shift deterministic:
v0.2.7

Stability Release

This release focuses on typing stability after the performance work in 0.2.6, especially the first auto-flip after launch and double-Shift word rewrites.

Added

  • Manual “Always flip” rules in General > Learning, with a target language per word.

Improved

  • Faster startup by loading larger dictionaries in the background while keeping deterministic built-in and manual rules available immediately.
  • Lower per-keystroke overhead by caching repeated lowercase work and frontmost app suppression checks.
  • Faster selected-text actions with exponential pasteboard polling.
  • More reliable synthetic rewrites by keeping conservative event timing where apps are known to drop fast key bursts.

Fixed

  • Stabilized the first auto-flip after app launch so the word rewrite lands before LangFlip switches the active input source.
  • Fixed double-Shift focused-word rewrites that could miss the first character or select too much text after the performance changes.
  • Kept flip feedback smooth by decoupling the visual/audio confirmation from the slower first keyboard-layout switch.
v0.2.6

Patch Release

This patch release tightens the new-user flow and fixes a few high-impact typing and translation edge cases found during daily use.

Improved

  • Shift+Space now translates selected text into the language of the active keyboard layout.
  • Triple Shift defaults to Russian as the secondary language, while Double Shift keeps Ukrainian as the primary default.
  • General settings now show optional Screen Recording and Microphone permissions with short explanations.
  • Onboarding returns to the setup checklist after the macOS Screen Recording permission flow requires a restart.

Fixed

  • Prevented Shift+Space translations from appending translated text after the original selection.
  • Disabled speech-to-text hotkeys by default so voice features stay opt-in.
  • Kept bracket keys inside auto-flip words, fixing cases like [jxe → хочу.
  • Clarified layout-target explanations in README, onboarding, and preferences.
v0.2.5

Release Candidate

Added

  • First-run onboarding checklist after macOS permissions.
  • One-click extended dictionary install from onboarding.
  • Qwen 3.5 local AI setup from onboarding, with Ollama install guidance.
  • Qwen 3.5 2B as the default local AI model, with 4B kept as a heavier quality option for 16 GB+ Macs when the smaller model makes mistakes.
  • Built-in grammar test showing input and output.
  • Safer default grammar-test text that works better with the smaller local model.
  • Built-in copy-text-from-screenshot test with a visible target and paste check.
  • Hotkey summary in onboarding:
  • Single Shift - fix selected text or the last sentence.
  • Double Shift - flip selected text or the last wrong-layout word run.
  • Shift+Space - translate selected text into the current keyboard layout language.
  • Shift+Command+S - copy text from a selected screenshot area.
  • Developer reset commands for testing first-run flows:
  • make reset-onboarding
  • make reset-onboarding-fresh
  • make reset-onboarding-empty
  • make run-onboarding
  • make run-onboarding-empty

Improved

  • Qwen install flow no longer opens Ollama unnecessarily after it is installed.
  • Dictionary install and Qwen download states are clearer.
  • “OCR” wording in user-facing UI is now “copy text from screenshot” or “screenshot text capture.”
  • Onboarding buttons keep stable layout while running.
  • Input Monitoring onboarding avoids optimistic macOS permission prompts and guides the user to add /Applications/LangFlip.app manually when needed.

Fixed

  • Prevented several false-positive auto-flips, including Russian доступы.
  • Stabilized no-selection Single Shift and Double Shift behavior around multiline text and cursor placement.
  • Reduced first local-model latency by warming up text and vision requests sequentially instead of in parallel.
  • Improved no-selection Single Shift fallback for text fields that do not expose their content through Accessibility.

Notes

  • Local AI features still depend on Ollama for Qwen 3.5.
  • Whisper dictation and OmniVoice text-to-speech are available as experimental local voice features.