Android learns to update itself — manual check + ask-before-restart, no more waiting on the Play Store
Up to today, finding out a new Meander was available meant noticing the Play Store badge or hearing about it from somewhere else. From this commit on, Settings carries a "Check for update" footer card — tap it, Meander asks the server directly, and if there's a newer build it offers to install it (and asks before restarting). v2.4.x ships the same day.
History page goes dense — grouped by day, swipe to copy or delete
From this commit on, the History page stops being a flat scroll of transcripts and behaves like a real log: items group under date headers, each row is denser, and a left swipe reveals copy + delete actions without needing to long-press.
Desktop's tray menu grows into a real cockpit — mic, output language, transcribe-file, paste-last-transcript
Up to today, the system-tray icon mostly just opened the app. This commit makes it a real control surface: i18n quick toggles, mic + output-language submenus, a "Transcribe File…" entry that hands a file straight to STT with capsule feedback, a standalone update popup, plus a new Ctrl+Alt+V to paste your last transcript anywhere (with optional preserve-clipboard, so it borrows the clipboard for the paste then puts your original content back).
Meander's language count finally tells the truth — 14 → 100
For weeks the homepage said "14 languages" — true on day one, long since outdated. The STT engine has quietly grown to 100; this commit lets the number on the page match the number it can actually do.
Notes graduate — the spine underneath grows to survive deletes, renames, and a year of drift
On May 10 the notes you spoke into your phone first started talking to the Meander on the web. Beautiful in the moment, but that moment was the easy case — both devices online, both on the latest build, nothing yet deleted. The two weeks after were the hard cases: someone deletes a note on the phone while the desktop is offline, who wins? A folder gets renamed twice from two devices, which name lives? An image attached on one device, can the others actually find it? This week Meander grew the bones to answer all of them — every note now carries a client-generated identity that survives the same note being created twice from two places, deletes leave tombstones the laggards can replay, folders gain their own identities so a rename doesn't fork, attachments get a real upload pipeline the share proxy can resolve, and notes themselves grow a third state — archived — so the line between "I'm done with this" and "delete this forever" stops being a binary. The notebook didn't change. The spine underneath did. From this week on, what survives between your devices isn't only today's conversation — it's the entire history of every note you've ever owned.
Meander's Android face gets a metallic glow-up — one visual language across every screen
Up to today, every screen had drifted a little — Home looked different from Notes, History looked different from Settings, light and dark mode each had their own opinions. On this one day Meander put them all under one roof. A metallic canvas tints the dark theme; pure white anchors the light theme; cards get a frosted-glass treatment; folder rows, bottom sheets, dialogs all picked up the same surface token; every major screen — Home, Notes, History, Settings, Translator, Face-to-Face, Upgrade, Chat — got marched through and updated. Nothing functionally changed. But Meander stopped looking like it grew screen by screen and started looking like it was designed.
Desktop grows two living panels — a Notebook on one side, a Projects file tree on the other
Until this week the desktop was one chat surface plus an agent — useful, but not somewhere you actually *worked*. From this push on, the layout is three columns: Notes, the workspace, and a new Projects panel that opens onto your real file system. The Projects panel takes inspiration from VS Code — a multi-root tree of folders you actually use (Documents seeded by default), every file visible, every Markdown styled like a note. Drag a file into the agent and it lands as an @-mention. The Notebook side, which had been English-only since it shipped, got translated into Traditional Chinese the same week, plus a plain-language Welcome note for first-time openers. Two panels, one workspace — for the first time, the desktop has the shape of a real working environment instead of just a chat client with extras.
Android grows a first-use tour — a guided walkthrough of everything Meander can do
For five months Meander on Android was a "figure it out as you go" kind of app — install it, get dropped onto the keyboard, hope you knew about the dictation button. This week Meander gives the first-time visitor a real tour instead. A spotlight engine lights up the right corner of the screen and explains what it does; the language wizard walks you through picking your everyday languages first, then everything else gets seeded from those; every major surface — keyboard, translator, face-to-face, dictionary, agent chat — got its own short guided sequence, two to five scenes apiece, stepping you through what's there and what it's for. A Help centre sits at the end so you can replay any of them later. None of the buttons changed. What changed is that you no longer have to find them on your own.
The Meander keyboard gains a sign-in button — One Tap right where the mic used to be
Until this commit, getting signed out while typing meant going to find the app, opening it, signing back in, returning to whatever you were writing. From here on, the keyboard swaps the mic for a Sign-in button when it sees a 401 — tap it, One Tap fires, and you're back where you were without leaving the text field.
Sign-in becomes one tap — the day the onboarding finally gets the chop it had coming
Signing into Meander on a fresh Android phone used to take six or seven taps — install, open, pick Google, wait for the WebView, dismiss a chooser, agree, wait again. Too many, for what it was actually doing. Beer decided to be ruthless about it. This commit kills the WebView entirely. The Android client asks Google for a verified ID token directly in-process, hands it to everydays.tools, and gets a device-bound bearer token back — one tap, done. The browser flow stays for the cases that need it (multi-account switching, Email OTP, password reset), and that one got the same chop the same day: if you're already signed into the dashboard somewhere, the device page detects your session and shows a single "Continue as <you>" button instead of starting you over. Two doors, same story — one tap, paired, back to whatever you opened your phone for.
Booky goes paid too — Meander's no longer the only one with plans
Up to today, Meander was the only product in the family with a subscribe button. From this commit on, Booky has one of its own.
The Play Store link follows your language home
Up to this commit, hitting "Download for Android" always landed you on the English Play Store listing — even if you came in on the Chinese homepage. From here on, the link carries your locale through so the Play Store page opens already speaking your language.
Desktop WebView signs in through a one-shot OTP — no cookies needed
Until this commit, signing into Meander Desktop's WebView relied on a browser cookie surviving the round trip — which on some setups it didn't. From here, the dashboard mints a single-use OTP, the desktop client redeems it once for a long-lived session, and the cookie is no longer in the loop.
Story tab lands on desktop — your characters get a voice of their own
From this commit on, the characters you raise on desktop can share thoughts of their own in the Meander community — they're not only someone you talk to in private anymore.
Desktop chat finally reveals each reply as it's typed
Streaming had landed on desktop on April 21, but the chat bubble still appeared in one chunk when the stream finished. This commit reveals each reply character by character — Android had this since SSE arrived there on April 20; desktop spent three weeks catching up.
Cross-device chat sync — every conversation catches up everywhere
April 18 covered the case where Meander reached out to your phone — it could ring. This commit covers the other direction: type at your desktop, and your phone catches up silently in the background, so when you pick it up later the same conversation continues mid-sentence.
What travels between your devices isn't just the notebook — it's the conversation about the notebook
Four days after notes first appeared on Android, they were still local — your phone's notebook, lived on your phone. This commit opens the door. From here on, every note gets synced bidirectionally against everydays.tools — but the sync goes deeper than the notes themselves. The Meander that helped you organise those notes on your phone is the same Meander on the web, with the same memory of what it just did. Talk to Meander on your phone about reorganising a long note, open everydays.tools five minutes later, and the Meander there already knows what was changed and what was about to change next. From this day forward, what travels between your devices isn't just the notebook — it's the conversation about the notebook, mid-sentence.
Meander starts taking notes for you — no typing required
From this commit on, Meander stops being something you type into and starts being something that takes notes for you. Talk to Meander — out loud, the way you've been doing since day one — and a note appears with what you said, already organised. Paste a long article you just read into chat, ask Meander to pull out the parts that mattered to you, the note writes itself. Quote a paragraph you want to remember; Meander files it under a heading you didn't have to invent. The four note actions Meander could take — create, update, move, link — landed in the same push as the notes screen itself. Meander's first month was about getting your voice into text; from this month on, the text starts doing things for you. Not one keystroke required.
The day Meander stops being a chat client and starts being a place you raise characters
On April 19 the registry-driven agent architecture had landed — the architectural unlock that said adding a new character should be config, not code. Three weeks later, on this single day, the desktop harvested everything that work made possible. In one push the sidebar grew a session tree, the drawer learned to rename and archive your characters, the persona modal opened up the personality fields you'd previously had to write into config files, and a five-step wizard appeared for creating a character from scratch: name, soul, voice, appearance, first message. The same day brought avatar generation with crop-and-upload, a skills toggle drawer, per-profile colour chips, a public profile link, and a per-user SQLite cache so the sidebar could repaint without a network round trip. Forty-five commits, one day. From the user's side, this was the day Meander stopped being a chat client and started being a place you raise characters.
Android Meander IME grows a multi-mode chassis — no longer voice-only
On April 5 Meander shipped to Android as a voice-only IME. This commit grows it into a real multi-mode keyboard: voice, emoji, English, and Bopomofo modes (with libchewing's dictionary and phrase prediction), an autocomplete framework underneath, plus a dedicated keyboard section in Settings.
You can finally see what you've been doing — usage lands on the Android home screen
Up to today, all the work Meander did for you happened invisibly — words transcribed, messages dictated, kilometres travelled — and you had no way of seeing any of it. From this commit on, the Android home idle space becomes a small mirror: how many words you've spoken, how far your voice has gone. The body Meander spent two months building gets a face that looks back at you.
The system starts measuring itself — how far did your voice just travel?
Once routing turned dynamic — different server every recording — a question quietly opened up: how far did your voice actually travel to come back as text? This commit answers it. Every transcription now carries back the route it took, the latency it hit, and the great-circle distance between you and the server that answered. Some recordings stop at Beer's house, a few thousand kilometres away. Others bounce halfway across the planet. Every voice trip is a different number — and from this commit on, Meander keeps a running tally of every kilometre your voice has travelled to become text.
Smart routing — every recording finds its own fastest path
Until this commit, every recording took the same fixed path. From here on, the moment you hit record, Meander pings every available transcription server, picks the one responding fastest right now, and routes your audio there. The choice is per-recording — sit down five minutes later and you might be hitting a completely different machine, in a completely different country. If you're lucky, that server is the box that lives in Beer's house. If the line to Beer's house is busy, your voice politely takes the next-fastest detour.
Meander starts learning you — on every device you carry it onto
Up to this commit, what Meander had learned about you only lived on the device it learned it on. After this, the dictionary travels with you. Some of what it knows, you taught it directly — a name, a piece of jargon, a sentence you kept rewriting. Some of it it picked up quietly on its own, watching which words you accept and which you keep correcting. Either way, the next time you reach for another device, the lesson's already there. Teach Meander a word on your phone in the morning, the desktop knows it by the afternoon. The longer it spends with you, the more it gets you — and now that's true on every screen you carry it onto.
STT hears your jargon — vocab hints bias the model directly
Until now, custom vocabulary cleaned up transcripts after the fact. From this commit on, the words you care about bias the model before it transcribes — fewer mistakes to fix, fewer re-records.
SSE streaming on desktop — agents reply token by token
SSE streaming on Android — same agent, same day, both pockets
Phase 1 of streaming chat on Android shipped the day before desktop. For the first time, both clients receive the same agent reply token-by-token — thinking, text deltas, images, all live.
Per-session ChatViewModel — one agent thread no longer blocks another
Registry-driven agents — the architectural unlock
Up to this commit, every agent in Meander had its own special-cased branches in code — hardcoded names, dedicated UI sections, conditional logic at every layer. This commit deletes all of it. From here on, adding a new agent means a registry entry, not a code change. Almost everything that came after — onboarding wizards, agent profile pages, the public agent feed, multi-session chat — was waiting on this one commit to land. The same instinct — collapsing per-agent special cases into config — was happening on Mate's side around the same window: persona routing through a registry on 2026-04-02, and tools collapsing into skills config four days after this commit. Different scope, same pattern.
Moltfi splits off from Mate — sibling product, its own name
Up to this commit, the trader-AI persona that lived on Mate's body was an unnamed in-app feature inside Meander. From here on, code recognises it as Moltfi — its own product, its own brand, sharing the same body as Mate. Old database keys migrate on startup so nobody loses chat history through the rename.
FCM push — agent replies fall into your pocket in real time
First time an agent reply could land on your phone without the app being open. Up until now, you had to keep Meander on screen — close it, the answer arrived into a void. After this commit, Android wakes up and shows you. The same commit also unifies session IDs across desktop and mobile, so the same conversation finally means the same thing on both sides. Realtime, multi-session, multi-device — landed in one push.
Google Play billing wired up on Android (v1.4.13)
First time Android users could pay — same plans, same credits, billed through Play instead of Stripe.
Account usage panel — see your everydays.tools quota from inside Meander
Sticky widget across virtual desktops on Linux — finally behaves like Windows
STT hallucination filter — short clips no longer return "thanks for watching"
A pattern detector catches the YouTube-outro hallucinations the STT model sometimes produces on near-silent audio.
Translate-anywhere — highlight any text, hit Meander, get it back translated
Highlight any text in any Android app, hit Meander, get a translation back. Before this commit, Meander was a keyboard — useful only when you were typing. After this commit, it's a system tool — usable on text you didn't write. The leap from input method to OS-level utility happened in one short commit, the day after the Android client was born.
Home server takes the primary slot — Cloudflare drops to backup
The architecture flips. The Cloudflare Worker that landed yesterday becomes the backup; a Node.js server on Beer's own home machine takes over as the primary path. The swap is about latency — edge functions cold-start, the home server stays warm. Cloudflare keeps its slot for when home is unreachable.
First commit — Meander Android voice keyboard
Day zero for Android. Meander stops being a desktop-only product. Within hours of the first commit, the IME, mode selector, retranslate bar, and Worker fallback chain are all in. Two of three platforms now have voice input — and the same week, the third tier (Cloudflare Worker) also lands.
First commit — the Cloudflare Worker edge tier is born
From here on, Meander's transcription and chat traffic don't go straight to a single provider — they pass through a Worker that adds auth, vocab biasing, and a fallback chain that drops down through four LLM sizes when the top model rate-limits. Same day, the STT path also gets a turbo fallback. One commit, several nines worth of resilience.
Desktop pivots to the Worker — STT and LLM both route through the edge
Direct provider calls give way to the new proxy tier. Auth, vocab overrides, and rate-limit fallback now live in one place instead of being scattered across the desktop client.
Meander joins the everydays.tools family
The first cross-product handshake. Up to this commit, Meander was its own island — desktop login, desktop billing, desktop-only chat. From here on, the chat layer speaks the same bearer-token language as the rest of the Everydays family. Same key opens Meander, Booky, Moltfi. Same wallet pays for all three. The bridge between the apps got walked across, both directions, on this day.
Auto-updater + GitHub Actions release pipeline — Meander can ship to itself
The day the desktop app gained the ability to update users in place. From here every commit could become a real release without manual installer hand-offs.
i18n lands — English default, Traditional Chinese alongside
Quotas finally bite — recording blocked when words or credits are exhausted
First day usage limits were enforced end-to-end on the client, not just shown in the UI as a number that quietly went negative.
Linux support lands — Beer's familiar environment
Beer had finally decided it was time to move to Linux for serious development. Moltfi was mature enough by this point to replace the Windows trading platforms he'd long depended on, so the path was clear. The moment he made the switch, though, the gap was obvious: Linux had no proper voice-input tool to lean on. Which is why Meander itself had to support Linux — there was no fallback. Compile-time gates keep the Windows path completely untouched while a parallel Linux track unlocks paste through wtype/xdotool/ydotool, X11 + Wayland clipboard, and native widget transparency.
Login gate + 5-step onboarding — anonymous use ends
Same day the desktop client starts reporting word usage back to everydays.tools after every recording. The first time the app cared who you were.
Google login via everydays.tools — desktop trusts the hub for identity
Old chat module retired — codebase shrinks for once
After three weeks of building the new chat module alongside the old one, the old one finally goes. That day the codebase shrinks instead of growing.
Meander's first conversation with Mate — Ctrl+Shift+A
Mate had been alive for three days. Meander was the reason Mate existed in the first place — the chat sidebar Beer had been planning needed somewhere on the other end. This commit splits Meander's voice input into two paths: Ctrl+Win still pastes dictated text into whatever app you're in, but Ctrl+Shift+A talks to Mate instead. Same microphone, same transcription, but the destination forks. The seed of the whole agent direction in Meander — and the moment the body Mate carries first had a face that could speak to it.
SQLite replaces JSON config — the app gets a real database
First commit — voice transcription on Windows
Day zero. Two months earlier, Beer was a woodworker in Australia who hadn't written code in over ten years. The first commit had no agents, no Linux, no Android, no edge tier — just an idea: I want to talk to my computer. Everything else in this timeline grew from this single push.