Changelog
What’s new
Every Mastery HQ release and what it changed. Updates arrive in-app automatically — this is the running record.
- Gemini agents just work — a Gemini CLI agent no longer stops with a "not running in a trusted directory" error the first time you give it a task. Mastery HQ now tells the Gemini CLI it can trust your workspace — the same thing you'd otherwise confirm by hand in a terminal — so once your Gemini key is set, a Gemini window runs your commands straight away.
- Dictation that cleans itself up — everything you dictate now passes through a cleanup layer before it lands: fillers and stutters (um, uh, "the the") are stripped, agent and app names come out spelled right (alex → Alex, "cloud code" → Claude Code), and an optional AI refine toggle has your local agent remove false starts from long dictations ("at 2… actually 3" keeps only the 3). Shorter prompts, fewer tokens, same ask. Dictation also now types into whichever text box has focus — an agent prompt, a note, a card — with the command bar as the default, and the mic button no longer steals your field's focus.
- A living startup screen — the ninja on the startup screen is now a cinematic clip: a moonlit bamboo forest, cropped to portrait and looping seamlessly. Same layout, same fast load (the clip is lighter than the old still image).
- A tidy crew bar: type your roles, pin exact models — the Sprint Board's crew controls are reorganized into two clean rows (mode, pass bar, attempts, and actions up top; the three roles beneath) — no jumbled wrapping, no sideways scrolling. Each role is now typeable: enter an open agent window's name (Alex), a CLI (Claude Code), or any model, with suggestions as you type — typing an agent as Specialist makes that window the board's worker, and its own model comes along as the pin. Every CLI role also gets a dropdown to pin the exact model it runs with (Claude Code as Judge on, say, Fable 5) — the pin rides the run itself, and a matching worker window's model picker updates to show it.
- Agents remember across restarts — every agent window saves its conversation to disk after each exchange, and a blank window (say, after closing Mastery HQ for the day) now offers ↺ Recall last session with how old it is and how many lines. One click brings the conversation back — and on Claude Code and Codex the session link resumes too, so the agent genuinely picks up where you left off, context and all.
- Your HQ, your type — Settings → Style → Typography: pick a font size (Small / Regular / Large / Extra large) that scales every window and tool together, and choose the interface font from twenty-three faces — the monospace natives plus ten sans-serif and ten serif choices, each with safe fallbacks and a live preview. Terminals and the code editor stay monospace on purpose. Both choices persist and apply everywhere.
- A tidier tray, safer files, quieter git — a crowded minimized-windows tray now groups by window type ("Agents · 3", "Whiteboards · 2"); files are only readable/writable by the app after you actually pick or drop them (a hardening you shouldn't notice); and git operations no longer show any credential material in the process list.
- Make your own music — the Music pane's new Studio tab generates complete songs: say "make a song about shipping week" or "make an instrumental about deep focus", confirm the card, and a finished track plays in the pane (saved to your workspace as an mp3). "Write lyrics about …" has your local agent write structured
[Verse]/[Chorus] lyrics for free — edit them and the Studio sings exactly your words. Songs generate with your ElevenLabs account (ELEVENLABS_API_KEY in Settings → Agents).
- Hands-on tutorials with real screenshots — a new Tutorials section walks through the ten flagship features (agents, command bar, canvas, kanban, loops, brand media, council/benchmark, command center, GitHub, music/TV) with real captures from the app — on the web and in the in-app Help, which now renders images.
- Run your mobile app natively — no Android Studio — say "preview my app on android" and Mastery HQ runs your Expo app in a real Android emulator it manages itself, streamed live into the Device Preview pane: click to tap, drag to swipe, type to type. First run downloads the emulator from Google (~2.2 GB, one consent card); after that it's one sentence to a native preview. The instant web tier ("preview my app on a phone") is unchanged.
- Sweep windows off any edge — Ctrl/Cmd + ←/→/↑/↓ now glides every window off that edge of the screen (it was right-only). The opposite arrow brings everything back exactly where it was; pressing the same arrow again re-clears anything that strayed back in, and windows land far enough out that no edges or shadows peek in anymore.
- Preview your mobile app in the phone frame — say "preview my app on a phone" (command bar or voice) and Mastery HQ finds the Expo/React Native app in your project, starts its web dev server, and loads it into the Device Preview's iPhone/Galaxy frame — hot-reloading as your agent keeps editing. "Stop the app preview" shuts it down. (Native
expo run:android builds still need Android Studio and run outside the frame — the Device Preview explains this now too.)
- Screenshots grew up — click a capture in Assets and it opens on the canvas as its own window (drag, resize, zoom, or drop it straight onto an agent). Each capture also gets Copy (a real clipboard image — paste it into an agent window, the canvas, or any app), a working Download, and Send to agent. Captures are saved as PNG files in your workspace's screenshots folder now, not just inside the app.
- The Feedback screenshot button shows your captures first — pick one with a click, or Browse files… which opens in your Pictures\Screenshots folder instead of a random empty location.
- Attach any file to an agent — agent windows take documents now (PDF, markdown, code, anything), via the attach button or drag-and-drop; the agent reads the file from its path. Images and videos work as before.
- Google Docs links open right — a doc link clicked in an agent's reply (or typed in the Browser pane) opens in your real browser signed into the account that owns it, instead of the in-app pane showing "you need permission" on your own document.
- Spotify connects with zero setup — a built-in Client ID means Connect Spotify works out of the box; your own ID in Settings still takes precedence if you've set one.
- New windows open in the open — a freshly opened window now looks for free space in your current view instead of landing on top of (or underneath) what's already there; it only overlaps when the canvas is genuinely full, and always arrives front-of-stack.
- No more terminal flash on dictation — the speech-to-text engine (and every other background process) now runs fully windowless; nothing from Windows pops over the app.
- Codex answers once — the doubled final reply some Codex windows showed (the CLI reprints its message after its token stats) is filtered out.
- Faster where you feel it — sixteen operations that silently froze the whole UI (extracting video frames, importing video themes, capturing the screen, stopping a busy agent or terminal, saving downloads, and more) now run off the main thread; the music visualizer and animated wallpapers stop burning CPU while the window is hidden; and images on the canvas are stored as files instead of bloating the app's saved state — workspaces with screenshots on them save hundreds of times smaller.
- Also: the launch-time Chrome pop-up some v0.1.105 users saw is gone (sign-in pages only open the browser when you navigate); new workspaces are named "Workspace 2/3/…" instead of "Unnamed"; two minimized windows with the same name are numbered in the tray; Kanban's crew bar starts collapsed and its role dropdowns stay open while you pick; the Usage window collapses per agent; icon buttons are labeled for screen readers; and the Hermes device token stays out of the app's web layer until you reveal it.
- Agents recover from model and sign-in problems on their own — if Codex rejects the model a window asked for (common on ChatGPT-account plans, which don't allow every model), the window switches to a model your account supports and re-runs automatically — without losing the conversation — instead of dead-ending. If an agent isn't signed in, Mastery HQ switches to another account you're logged into (when you have one) or shows the exact one-time login command; Gemini's "set an Auth method" prompt is recognized too, with a note that you can paste a
GEMINI_API_KEY in Settings → Agents instead.
- Add your Spotify Client ID any time — Settings → Setup now has a proper Spotify field, with the redirect URI to copy and a check that catches the Client Secret pasted by mistake — so you can connect Spotify without re-running the first-run wizard.
- Screenshots in feedback, and private feedback that actually arrives — the Feedback panel now lets you attach or paste screenshots (up to four). Private feedback is sent to the team's inbox — it used to save only on your device and never reach us — and is never shown on the public roadmap. On roadmap.masteryhq.dev, cards are clickable: open one to read the full submission and see its screenshots.
- Sign-in pages open in your real browser — clicking a link that leads to a sign-in page in the Browser pane (or an "add credits" link that redirects to one) now opens your system browser, where your logins live, instead of showing a blank page. The OpenRouter "out of credits" message is readable now too, with a working link.
- A Whiteboard button on the toolbar — a new Whiteboard launcher sits right under the pointer tool; one click opens a drawing board.
- First run is calmer — the setup wizard and the training game no longer open on top of each other; you'll see setup first, then the trainer.
- Lighter on the battery — an animated video wallpaper pauses while the window is minimized instead of decoding video in the background.
- Hardened under the hood — the main window now runs under a Content-Security-Policy, and the app's own network fetches can't be steered onto private or loopback addresses — defense-in-depth, with no change to how anything works.
- CLI sign-in links work now — clicking a login link in an agent or terminal window (like the Grok CLI's "go to accounts.x.ai to enter your code") opens your real browser, where your sessions and cookies live, instead of the in-app Browser pane that sign-in pages refuse to load in. Ordinary links still open in the Browser pane.
- New windows open in focus — a window opened from the toolbar, a keyboard shortcut, or a voice command now lands on-screen (even if you'd panned the canvas far away), on top, with the cursor already in its input — type immediately, no hunting, no extra click.
- Crew runs are hang-proof — a Kanban Crew worker that goes silent (a closed window, a lost completion signal, a turn that never finishes) no longer leaves its card stuck on "working" or stalls the rest of a board run: the crew notices, marks the card failed with an audit entry, and moves on. Three more robustness fixes ship with it: an unreachable Orchestrator self-check can't abort a board run (the Judge still reviews), assigning or crew-running a card no longer risks resetting the board's name and crew models, and a Judge whose notes contain code braces is parsed correctly instead of scoring good work zero.
- See your store from the Command Center — for license admins: a new Store panel shows live all-time revenue, active licenses, device activations, and revoked counts, with sales per tier. It appears once you paste the store admin key in Settings → License, where a new Store licenses table also lists every sold license with how many of its device slots are in use.
- Flat glass — a new Settings → Style toggle renders windows without the backdrop blur (the translucent tint stays). Turn it on if your PC shows a shaded vertical band across glassy windows — a graphics-driver quirk the blur can trigger.
- Clearer Spotify setup errors — a mistyped Spotify Client ID (or the Client Secret pasted by mistake) is now caught before the browser opens, with a message pointing at Settings → Setup instead of Spotify's bare "client_id: invalid" page.
- Current model menus — the Codex, Gemini, and Grok quick-picks in agent windows now list each provider's current models (GPT-5.6 family, Gemini 3 previews, Grok 4.5/4.3); retired IDs are gone. Custom… still takes anything your account supports.
- Multi-model crews on your Kanban — pick one model per role — an Orchestrator to plan, a Specialist to do the work, and a Judge to grade it — from the top of any board, or let the Model Council auto-assign them. The Orchestrator can break a goal into tasks with acceptance criteria; each task's worker runs until the Judge scores it 95 or better (a security hole or real bug fails it outright, and the Judge's notes feed the next attempt); and every card shows a live token + cost estimate that sharpens as real runs come in. "Run crew" drives the whole board, and crew activity — runs, pass-rate, average attempts and score — shows up in the Command Center.
- Fuller model menus in agent windows — the per-window model picker is now a proper dropdown that matches the app instead of a plain OS-white list, and it lists the current models for each CLI: Claude offers Opus 4.8/4.7, Sonnet 5, Haiku 4.5, and Fable 5; Codex offers the GPT-5 / GPT-5.1 Codex family; and a Custom… entry still takes any model id your account supports.
- Track the licenses you issue — for license admins, the License tab now keeps a ledger of every code you mint — the account, type, expiry, a code fingerprint, and a use status (issued / activated / revoked) you can update — with a one-click CSV copy.
- Settings opens centered — the Settings panel now opens centered under the top bar instead of hugging the left edge.
- "Startup Sound" — the Style toggle is renamed from "Startup music" and its extra description line removed.
- All your work tools under one wrench — Kanban, Backlog, Loop, Benchmark, Model Council, Dashboard, and Assets now live under a single wrench button on the left toolbar; click it and pick from the flyout. The rail is tidier, and Assets (your screenshot captures) moved out of Settings into its own window.
- A model picker in every agent window — every CLI agent (Claude, Codex, Grok, Gemini, Cursor, Aider, Copilot) now has a model field in its header, alongside the existing OpenCode/OpenRouter pickers. Type any model your CLI/account supports — a few common ones are suggested — or leave it blank for the CLI's own default; each run passes it via that CLI's
--model/-m flag.
- Dictation mode — a new button beside the mic starts a hands-light mode: speak a command, press Enter to send, and the mic stays on for the next one. The plain mic is still there for a quick one-off.
- Sweep everything aside to start fresh — Ctrl/Cmd + → glides all your windows off the right edge for a clean canvas; Ctrl/Cmd + ← brings them right back — nothing minimized or closed.
- Settings, reorganized — Brand sits up by Style; Hermes moved into Agents; AI Radar into the bottom of Setup; GitHub + Google combined into one Integrations category; License is last. Settings now also opens from the left, wide enough that nothing is cut off, and animates closed when you click away.
- Close all minimized windows at once — the minimized-windows tray gets an ✕ that clears the whole stack (two-step, so a stray click can't wipe them).
- The left toolbar tidies itself away — after a minute untouched it tucks into the TB orb; a new toggle in Settings → Style → Interface elements turns that on or off.
- Shorter command-bar hints — the rotating example prompts are short and readable now instead of running off the edge.
- Grok Build is an agent now — xAI's Grok Build coding CLI joins the agent picker alongside Claude Code, Codex, Gemini, and the rest. Install it in one click from Settings → Agents (like the other npm-based CLIs), or the app finds it if you already have it — then open a Grok window and hand it tasks like any other agent. It signs in with your xAI key (the same
XAI_API_KEY that powers Grok voice) or its own grok login.
- Agents speak like a person — spoken replies now read web addresses naturally (by name, never letter-by-letter), never vocalize codes or keys, and use a warmer, briefer, professional-casual tone; the written transcript reflects the same voice. (Named-agent windows.)
- Feedback flows straight to the roadmap — sending feedback can now publish it to the public roadmap at roadmap.masteryhq.dev in one step, and customer-submitted feedback lands in a moderated queue you Approve or Decline before it appears on the board.
- Zoom stays where you're looking — zooming the workspace no longer makes windows "run away"; the pane under your cursor stays fixed, and Ctrl/Cmd + mouse-wheel zooms to the cursor.
- Model Council in the toolbar — the Model Council now has its own button in the left rail, next to Benchmark.
- Kanban unsticks itself — a card left stuck on "working" after its agent actually finished (a dropped completion signal) now reconciles against the agent's real activity and moves itself to done.
- Open agent-built pages in the Browser — when an agent builds a local HTML page, its Open chip now renders it correctly in the Browser pane (reading the file off disk and inlining its assets) instead of failing with an "asset.localhost" error or tripping over spaces in the path.
- Screenshot tool: copy + annotate — the screenshot capture tool can now copy straight to your clipboard and draw pen and line annotations before you save or hand it off.
- Two computers per license — a lifetime license now activates on up to two of your computers; a third is refused with a clear message, and deactivating one frees the slot. See license activation.
- Drive Picker "developer key" fix —
drive pick no longer needs a per-user API key pasted into Settings; the app bundles the Picker key, clearing the "developer key is invalid" error some setups hit.
- Sturdier generated images — hardened how a generated image is turned into an on-canvas image, so a provider quirk is less likely to leave a broken-image tile behind.
- Install agent CLIs in one click — Claude Code, Codex, OpenCode, Gemini, and GitHub Copilot now install straight from Settings → Agents with a single Install button and a live progress log. The first install quietly fetches a private Node runtime for you (no admin, no separate Node setup) — so "npm isn't installed" stops being a wall for new users. Cursor and Aider still link to their install pages for now.
- Drive Picker opens in your browser —
drive pick used to get stuck on a Google sign-in screen that wouldn't complete inside the app's window (Google blocks interactive sign-in in embedded windows). It now opens in your real browser, where you're already signed in, and hands the chosen file straight back to Mastery HQ. Your OAuth token no longer passes through the app's web layer at all.
- Deleting feedback removes it from the roadmap — deleting a published feedback item now also pulls its card off the public roadmap at roadmap.masteryhq.dev, instead of leaving it stranded there.
- Tidier feedback list — the per-item row no longer overflows and clips its buttons on a narrow pane; the chips wrap cleanly.
- Cleaner agent windows — removed a faint translucent halo that could appear behind agent windows and jitter as you moved the mouse (a WebView2 glass-compositing artifact on the flippable panes).
- Updates install reliably again — the in-app updater now delivers the NSIS installer, which matches how Mastery HQ installs on your machine, so updates apply cleanly in place instead of silently stalling. (The MSI stays available as a standalone download for fleet/enterprise deployment.)
- Drive Picker cookie wall — the real fix —
drive pick was trapped on Google's "Allow Google access to your necessary cookies" screen. The cause was WebView2's built-in Tracking Prevention (default "Balanced") blocking the third-party cookies the picker needs — not a browser flag, which is why the previous attempt didn't help. The app now sets the WebView2 profile's tracking prevention to off at startup, so the picker opens straight to your files.
- Cleaner panes — removed a phantom translucent sliver that could appear behind windows and jitter when moving them (a 3D-flip rendering artifact); the pane flip is now a smooth 2D turn.
- Refunded licenses lock out — a refund or chargeback now revokes the license: the app checks on launch, on window focus, and periodically, and a revoked code is removed from the machine so it stays locked even offline. Legitimate offline use is unaffected — an unreachable check changes nothing and simply retries when you're back online.
- Tidier bottom-left corner — the collapsed-toolbar orb no longer overlaps the zoom controls; the orb, zoom cluster, and Loops Dock stack cleanly.
drive pick unblocked — Google's file picker used to trap some machines on an "Allow Google access to your necessary cookies" screen whose button did nothing (a Google-side quirk with embedded browsers). The app now opts its webview out of the cookie partitioning that triggered it, so the picker opens straight to your files.
- Email works out of the box — no Gmail setup? "email the transcript to [email protected]" now sends through Mastery HQ's own relay, from
[email protected]. Same confirmation card, same Audit Log entry, capped at 5/day (the relay enforces its limits server-side too). Add your Gmail app password in Settings → Google anytime to send from your own address with the higher 20/day cap.
- Brand videos on installed apps — the Remotion templates behind "make a brand bumper" and brand reels now ship inside the installer. The first render sets them up on your machine (needs Node.js installed; takes a few extra minutes just that once) — Settings → Setup's "Brand video renders" row shows the honest status. Previously these renders only worked on dev builds.
- Benchmark runs count as automation — finishing a Benchmark suite now shows up in the Command Center's automation panel alongside Council runs and loop passes.
drive pick — bring any Drive file into a conversation — the Google file picker opens inside the app; the file you choose becomes readable to Mastery HQ (one file at a time, by your explicit pick — the privacy model stays "the app sees only what you hand it"). Type drive pick in an agent window; one-time setup: an API key from your Cloud Console in Settings → Google.
- Pick your video model — Settings → Brand gains a Default video model choice alongside the image one: Veo 3.1 Lite (fast default), Veo 3.1, Sora 2 Pro (top shelf, priced to match), or Seedance 2.0 Fast (cheap b-roll). Applies to "generate a video of …" and the b-roll leg of brand reels; the budget and confirm card watch whichever you choose.
- "Shipped" now means shipped — the Command Center's ship count and "What shipped" feed used to log every link an agent mentioned (a weather site cited in an answer counted as a "ship"). Now only the agent's own output counts: files it created, dev servers it's running, and sites on deploy platforms (pages.dev, vercel.app, github.io, …). Cited links still get their Open chips — they just aren't trophies. Old reference-"ships" are cleaned out of your metrics automatically.
- Email polish — every send now records Gmail's own acceptance line (code + queue id) in the Audit Log, and emailing an empty conversation refuses honestly instead of sending a header-only mail.
- Generated videos actually play now — video panes for bumpers, clips, and reels used to show a permanently black frame: the app's own file permissions never allowed the webview to read workspace attachments, so every generated video silently failed to load. That's fixed, and on top of it a generated video now starts playing the moment its pane lands (no waiting for a click), and local brand renders no longer flash a Chrome window — they run through Remotion's invisible headless engine, with your installed Chrome as a silent fallback.
- Drive round-trips (Workspace M4) — type
drive <query> in an agent pane to read a saved Doc/Sheet back into the conversation (the recall pattern, pointed at Drive); the Command Center's Log row appends a summary row to a running Command Center metrics log Sheet instead of minting a new file per export; and a Settings → Google toggle auto-archives every clean run's transcript to Docs, silently, with the link left in the pane. Still drive.file-scoped — the app only ever sees files it created.
- Pick your image model — Settings → Brand gains an Image model choice: Nano Banana 2 (the fast Gemini default, upgraded from the classic), ChatGPT Image 2, Nano Banana Pro (highest quality), or classic Nano Banana. Same key, same brand injection, same budget — just a different artist.
- Brand reels — AI b-roll with your brand on top — "make a brand reel of waves crashing saying ship faster" generates a real AI clip, then finishes it locally with your brand-exact title overlay (name, accent underline, tagline over a readable scrim). The paid leg is just the b-roll (budget + confirm card apply); the overlay render is free and deterministic. Agents can request one with
[[reel: subject | tagline]].
- Email from Mastery HQ (Gmail) — set up once in Settings → Google → Email (a Gmail app password, encrypted on-device — no OAuth), then "email the transcript to [email protected]" mails the focused agent's conversation from your own address. Every send — typed, voice, or remote — confirms on a card first (recipient, subject, preview; auto-cancels in 90s unattended), first-time recipients are flagged, and sends cap at 20/day. See Send email from Mastery HQ.
- Generated video clips (Video M2) — "generate a video of the fortress at dawn" produces a real AI-generated clip in your brand's style and drops it on the canvas as a video pane (saved to the workspace's attachments too). Runs through OpenRouter's video API with the same key as images — Veo by default, Sora and friends selectable later — and takes a few minutes. Video money is real money: the daily media budget applies, pricier estimates show the confirm card first, and the toast reports the actual billed cost. Agents can request clips with
[[video: …]].
- Agents can request on-brand media — an agent that wants a visual simply writes
[[image: a hero banner for the launch]] (or [[image logo-mark: …]], or [[bumper: ship faster]]) on its own line in its reply, and Mastery HQ renders it onto the canvas when the run finishes. Same pipeline as your own commands: Brand Kit injection, daily budget, confirmation, and an Audit Log entry naming the requesting agent. Every agent learns the syntax automatically at the start of a conversation.
- A real confirm card for pricey generations — the over-threshold image confirmation is now a proper in-app card (estimate, today's spend, one-click generate/cancel) instead of a browser dialog, and it declines itself after 90 seconds so a remote or agent-triggered run never hangs waiting for a click.
- Help moved to the top bar — the ? now lives in the top chrome between the device-preview and Settings buttons (it's app chrome, not a drawing tool), so it stays reachable even while the left toolbar is tucked away as the TB orb.
- Brand bumper videos — "make a brand bumper saying ship faster" renders a brand-exact 5-second title video locally (your literal colors, fonts, and name — deterministic, free, no generation API) and drops it on the canvas. Settings → Setup shows a "Brand video renders" readiness row.
- Image template presets — "generate a hero image for X", "an og card about Y", "a social square for Z", "a logo mark of W", "a feature frame of V" — each preset brings its own composition and aspect ratio (wide hero, square logo, …), with your brand injected as always. Add your own presets as JSON files in the app's
media-templates/ folder.
- Brand images on demand — define your brand once in Settings → Brand (colors, fonts, imagery style, tone — with a live preview of what models receive), then "generate an image of …" drops an on-brand image straight onto the canvas. One
OPENROUTER_API_KEY reaches 30+ image models; every toast shows the actual billed cost, spending honors a daily cap, and pricey runs confirm first.
- The toolbar tucks itself away — shrink the left toolbar with the chevron at its top (or just leave it alone) and it becomes a small glowing TB orb docked bottom-left; hover the orb to bring the full bar back. It never auto-hides while a drawing tool is selected.
- Google Drive everywhere — the Command Center exports its range straight to a Google Sheet, the Benchmark saves its report as a Doc and its leaderboard as a Sheet, and the Sprint Board saves a one-click board snapshot Doc. Transcript saves now leave a "Saved to Google Docs: ⟨link⟩" line in the conversation, and Settings → Setup shows an Accounts group with your GitHub/Google connection state.
- Claude agents answer near-instantly after the first message — each Claude window now keeps one live CLI process between turns, so only your first send pays the engine’s start-up cost; every later message begins streaming immediately. Stop still works mid-turn, and the conversation picks up right where it left off on your next send.
- Save to Google Docs — connect your Google account once (Settings → Google), then a Docs button in any agent window saves the transcript into your Drive as a real Google Doc — markdown headings and links convert properly, files land in a Mastery HQ / ⟨workspace⟩ folder, and the Doc opens in your browser. The app uses Google’s narrowest Drive permission: it can only ever see files it created. See Save to Google Docs.
- The voice test tells the truth now — Settings → Voice’s test button used to ping an optional self-hosted server and report a scary ✕ on perfectly healthy installs. Test voice engine now runs a real on-device transcription through the same path dictation uses.
- Stop is always reachable — on narrow agent windows the actions row used to overflow and hide the Stop button mid-run; the row now wraps so Stop is always clickable.
- Claude replies stream in live — a Claude Code agent used to show nothing until its whole turn finished (long tasks looked hung for minutes). Now the reply appears as it's being written, tool activity shows as it happens (
⚙ Bash — npm test), and the model name appears about a second after you send. Same real token accounting and conversation continuity as before.
- Snappier everywhere — main-thread cleanup — a class of actions used to freeze the whole app while they worked: Grok voice replies and speech synthesis, Browser-pane page loads, GitHub operations (connect, repo lists, syncs, pushes — a first clone could freeze the app for minutes), the Setup tab's agent scan, offline voice transcription, and the Usage pane's refresh (which re-read every agent log — hundreds of MB — every 15 seconds). All of that now runs in the background; the app stays responsive throughout.
- Spoken replies are brief and never read web addresses — the voice no longer recites URLs (links speak as their title, bare addresses are skipped) and long agent replies are trimmed to a natural sentence instead of being read wall-to-wall. The transcript always keeps the full text; ask for detail if you want it spoken.
- Faster pre-run repo sync — agents assigned to a GitHub repo no longer fetch before every message; the sync runs at most once every 5 minutes per agent + repo.
- Smaller, faster app — the shipped binary dropped from ~62 MB to ~15 MB with optimized release builds.
- Rate-limit account failover — add a second Claude Code or Codex account (Settings → Agents → Accounts) and a run that hits its usage limit switches to the next available account and re-runs on the spot. The limited account rests until its window resets (parsed from the CLI's own notice when possible), then rejoins; every switch is toasted, noted in the transcript, and written to the Audit Log. Works everywhere runs happen: agent windows, Hermes plans, loops, and judges.
- One voice at a time — and it prefers Grok — spoken output no longer overlaps (the system voice used to talk over a playing Grok/OpenAI voice), and if you use Grok anywhere (key set, Grok brain, or Grok voice sessions), Grok is now your speaking voice everywhere — agent output, command acks, and voice sessions all sound like the same assistant.
- Grok voice failures are loud now — if the Grok (xAI) voice can't speak, the app tells you exactly why in a toast (bad key, API error, …) instead of silently dropping to the robotic system voice.
- GitHub connection upgraded to a GitHub App (M6) — new connections use a fine-grained GitHub App: the token only reaches repositories where you installed the app, and short-lived tokens refresh silently in the background. The Settings tab now explains an empty repo list (app not installed yet) and links you to the install page. Existing connections keep working; bring-your-own Client ID still accepts either app type.
- TV Guide works out of the box — the guide no longer needs a URL: it auto-loads built-in programme data covering the major free streaming services (Pluto TV, Samsung TV Plus, Plex, Roku, PBS), which is most of what's reliably watchable in the catalog. Paste your own XMLTV URL to use a provider guide instead; saving it empty returns to the built-in one.
- Hermes commands reach your agents — a remote command that isn't a workspace phrase (like "tell Bo to run the tests") now routes to the named agent — or the focused one — exactly like typing it in the command bar, instead of coming back "unrecognized". Saying just an agent's name ("Alex") brings that agent to the front.
- Open a specific agent by voice — "new codex agent", "open claude", "launch opencode", "new openrouter agent", "new cursor agent" (plus Gemini, Aider, and Copilot) open exactly that agent type; "new agent" still opens your default.
- No more duplicate agent names — two agents can never share a name again, in any casing: every way an agent is created or renamed now auto-numbers a collision ("bo" next to an open "Bo" becomes "bo 2"). Names are how profiles, voice routing, and repo assignment find an agent, so they stay unambiguous.
- New engine-start sound — the launch cue's engine is now a real engine recording (the sword swish stays).
- GitHub, connected — link your GitHub account in Settings → GitHub (device sign-in, no password in the app; token encrypted on-device). Browse every repo you can access, create new ones, and — the point of it all — put your agents to work on them. See Connect GitHub.
- A repo per agent — every agent window gets a ⎇ Assign repo chip: pick a repository and that agent works inside its own private checkout (a git worktree on its own
mastery/<name> branch), so parallel agents never collide. Works by voice too: "assign the repo masteryhq-landing to Alex", "put Bo on infra-ops", "create a private repo called billing-service" — and from Hermes.
- Repos, kept maintained — choose what happens when an assigned agent finishes a run: nothing (review yourself), auto commit + push its branch, or auto open a pull request for your review. Agents sync to your latest default branch before each run, can never touch the default branch directly, never force-push, and every push/PR lands in the Audit Log.
- Training game: public leaderboard — the finish screen can now submit your score to masteryhq.dev/leaderboard. Confirm with one email tap (no account); only your best score counts.
- Hermes behind Cloudflare Access — a Hermes connection can now reach a relay that's gated by a Cloudflare Access service token. Settings → Hermes gains Access Client ID and Access Client Secret fields; Mastery HQ sends them on the WebSocket handshake so the connection passes the edge gate (your device token still authenticates to the relay underneath). Leave them blank for a plain Tailscale or
ws:// relay.
- Real code editor — the Code pane is now a working CodeMirror editor: open a file from disk, edit it with syntax highlighting (JS/TS, Python, Rust, JSON, Markdown, HTML, CSS), and save with the button or Ctrl+S. Open it with "open code editor" (command bar or voice).
- Dashboard: by-project + automation — the Command Center leaderboard now has a Project view (alongside Agent/Model), and a new Automation card tracks refine-until-good loop passes (and how many cleared the bar) plus Model Council runs.
- Attach buttons show their icons again — the two controls next to the
$ in an agent's input bar (attach image 📎, attach video 🎬) were rendering as solid colored squares because a style meant for the Send button was bleeding onto them and hiding the icons. They now render as clear icon buttons, so they read as "attach", not as stuck image thumbnails.
- Attachment removal, actually fixed — pressing Backspace or Delete now removes the most recent attachment whenever an agent window is in front (unless you're mid-typing), no matter how the image/video was added — you no longer have to hunt for the × or click the chip first. Adding an attachment also brings its window forward so the shortcut targets it.
- Working-border progress — while an agent window is running, a brighter lit arc now sweeps clockwise around its border as a subtle indeterminate progress indicator, and clears the moment the run finishes.
- Remove agent attachments by keyboard — click an attached image or video chip (it gets an accent ring) and press Delete or Backspace to remove just that one; the × button still works too. The earlier keyboard removal only fired when the prompt input happened to be focused and empty, so right after adding an image "Backspace to undo" did nothing — now adding focuses the input, and any chip is directly selectable.
- Command Center dashboard — a new analytics pane (left-rail button, "open command center" / "show my stats" by voice, or the palette) that answers where your agents' time, output, and money went: hero tiles for ships, active agent-time, spend (est.), and success rate; a work-area time breakdown; a "what shipped" feed you can click to open; a spend-by-model breakdown with cost-per-win; an agent/model leaderboard; and a reliability chart of clean/rate-limited/failed runs plus handoffs. Pick any time range and drill into an agent or model. Read-only; your data starts collecting now and fills in as agents run.
- Feedback, leveled up — mark a feedback note private (it never leaves your machine), attach a redacted diagnostics snapshot (app version, OS, recent console/network — secrets masked) to a bug report, and give each note a status (open/planned/shipped/declined) with shipped/declined struck through.
- Publish to a public roadmap — connect your roadmap admin key and push non-private feedback to a public voting page where users upvote by email; published notes show their live vote count back in the app. (Powered by the new
roadmap.masteryhq.dev service.)
- Delete agent attachments — remove an attached image or video with its × button (now a bigger, clearer control that turns red on hover) or by pressing Backspace with an empty prompt. (The keyboard/× removal shipped to
main after v0.1.82 but hadn't reached a release yet — this is the first build that includes it.)
- Honest agent run status — a rate-limited or failed run now shows a flashing caution instead of a false green check, and the status badge sits in the window's title row between the agent's name and its token count. The check only appears after a clean finish.
- Open what an agent makes — when an agent produces a website, image, or video (a URL, a dev-server address, or a file path), an Open chip appears under its message and opens it in the right preview pane.
- OpenRouter model picker — each OpenRouter window has a model dropdown in its header; the pick persists with the window and rides every run.
- Save as recipe, relocated — the Save-as-recipe control moved out of the zoom cluster into the command bar, right after the layout-density selector.
- Benchmark in the toolbar — a Benchmark button now sits right after Loop in the left rail; opening the suite (by button, typing, or voice) takes over the screen full-screen and tucks the other windows into the Pane Compass so it has your full attention.
- Charts on demand — "chart how OAuth works" (or graph/diagram/draw-me forms) has a local agent draw a labeled SVG diagram of any topic; it lands on the canvas as a normal image pane you can resize or hand to an agent.
- OpenCode model picker — each OpenCode window has a model dropdown in its header (roster from
opencode models); the pick persists with the window and rides every run as opencode run -m.
- Masked secret fields — every API-key/token/password field in Settings (Voice keys, OBS password, Hermes device token) now hides behind variable-length asterisks with an eye button to reveal; the decoy length doesn't betray the real key length.
- Update announcements — when a new version is detected you now get a toast (once per session) pointing at the green Update pill, and a failed update check says so on the splash instead of looking like "up to date".
- Toolbar highlight & order — design tools (select, pen, eraser, shapes, text, image, screenshot) now sit at the top and only the active one highlights; window launchers (agents, terminal, browser, kanban, backlog, loop, music, TV, celebrate, help) never stay lit, and nothing is highlighted at launch. The Pane Compass still lights while the minimap is on.
- Gemini & Grok keys in Settings — the Agents tab now shows the set/not-set status for
GEMINI_API_KEY and XAI_API_KEY alongside the others (both were already scanned).
- Agent memory & sessions — agent windows resume real CLI sessions across restarts, keep working notes, compact long conversations into handoffs, share a per-workspace project memory, and answer
recall <query> from everything they've written down.
- Attachments — send images to agents via 📎, paste, drag-and-drop onto an agent window, or "send this image to Alex"; attach videos 🎬 with automatic still-frame extraction (ffmpeg) or native video pass-through where the agent supports it.
- Streaming Mode, complete — one switch that redacts secrets on screen, swaps to a streaming layout, controls OBS and Streamlabs, serves a browser-source overlay, and answers voice verbs like "scene to code" or "go live".
- Spotify native player — full-track playback (Premium), search, playlists, queue and volume from the Music pane.
- Help Center — this documentation: 85 bundled docs, searchable in-app, with per-pane "?" buttons and Learn-more links in Settings.
- Browser favorites — star sites and open them by name; "go to X" resolves favorites, known sites, then search.
- Agent Roster pane — every agent's persistent profile: category track record, editable skills that steer Hermes routing, per-agent backlog, and task history with outcomes.
- Benchmark media artifacts — new Music (Web Audio) and Motion (canvas/CSS) suites: models compose and animate in code, rendered live in the sandboxed preview with capability chips.
- TV Guide (EPG) — point the TV pane at any XMLTV guide URL (.xml/.gz) for a NOW card, highlighted running programme, and the channel's upcoming schedule.
- Pane openers by voice or typing — "open tv", "open backlog", "open loop", and "open the agent roster" now open the panes (they used to reach the focused agent as a prompt).
- Real file exports everywhere — benchmark reports, audit log, usage CSV, setup JSON, workspace and agent-transcript exports all write to Downloads and toast the path (several were silent no-ops in the desktop shell).
- Cleaner codex transcripts — codex no longer echoes its instruction preamble back into the chat.
- Performance passes across canvas panning, transcripts, and persistence.
- Loops, complete — the Loops Dock, natural-language
loop: creation, a Loop this button on agent windows, Watcher and Backlog-drainer loop kinds, loop cascades (chaining), and resume.
- Setup Wizard, complete — first-run wizard, install-CLI helpers, and setup export/import.
- Backlog pane with idea capture and the Roast council (GO / RESHAPE / KILL verdicts before a board is spun up).
- Loop review lenses (including the Karpathy and Roast judges) and Setup Wizard Phase 1 (capability manifest + Setup-health tab).
- First release delivered fully hands-free through in-app auto-update — the updater prompt downloaded, installed, and relaunched on its own.
- TV background audio continuity, channel persistence, and the collapsible minimized-windows tray.
- Auto-update fixed by pointing the updater at the public releases repo — v0.1.75 is the bridge release; installs from here forward self-update.
- Custom window frame: the native title bar is gone and the app bleeds to the edges.
- TV pane: browse and play live channels (iptv-org) with global search, favorites, and recents.
- Model Council (Arena, Tournament, Debate with a blind judge) and the Benchmark suite.