<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Halopen Changelog</title>
    <link>https://halopen.com/changelog/</link>
    <atom:link href="https://halopen.com/changelog/rss.xml" rel="self" type="application/rss+xml" />
    <description>What&apos;s new in Halopen. Native macOS dictation. Hold to talk, anywhere a cursor goes.</description>
    <language>en</language>
    <lastBuildDate>Tue, 26 May 2026 12:00:00 GMT</lastBuildDate>
    <generator>Halopen (Astro)</generator>
    <item>
      <title>v1.8.14 — No more silent dictation losses when your sign-in expires</title>
      <link>https://halopen.com/changelog/#v1.8.14</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.14</guid>
      <pubDate>Tue, 26 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>If your Mac slept for a few hours or stayed idle past your sign-in’s lifetime, Halopen would happily start recording, capture your full take, then silently drop the words at transcribe time. The next take would often fail the same way, and the only signal — a small &quot;sign in to use Halopen&quot; tooltip — was suppressed if you were already pressing the hotkey again, so you could lose three or four takes in a row before seeing why.</p>
<p>Three changes close the gap. Halopen now checks your sign-in is fresh BEFORE it starts recording — if it’s not, you see a &quot;Refreshing sign-in&quot; message instead of speaking into a void. When the sign-in does lapse during a take, the audio is preserved to the menu’s &quot;Retry failed audio&quot; row so you can replay it after signing back in (it used to be discarded). And the recurring license check now also refreshes your sign-in, so a Mac waking from sleep is much less likely to land in the stale state in the first place.</p>]]></description>
    </item>
    <item>
      <title>v1.8.13 — Anonymous diagnostics — off if you’d rather</title>
      <link>https://halopen.com/changelog/#v1.8.13</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.13</guid>
      <pubDate>Tue, 26 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Halopen now reports anonymous, privacy-scrubbed crashes and funnel-step events so we can see what’s broken and fix it faster. No transcripts, no audio, no PII — emails, JWTs, and Bearer tokens are stripped before any payload leaves the Mac. The full toggle lives at Settings → Privacy → &quot;Send anonymous diagnostics.&quot;</p>]]></description>
    </item>
    <item>
      <title>v1.8.12 — Transcribe survives the network blip</title>
      <link>https://halopen.com/changelog/#v1.8.12</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.12</guid>
      <pubDate>Wed, 20 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Transcribe runs on its own dedicated network session — no shared connection pool with cleanup, license, or auth traffic. Request timeout lifted from 15 to 60 seconds, and a transient drop (connection lost, timeout, brief DNS failure) now auto-retries once.</p>
<p>And when the network does still fail, your audio is saved. A new “Retry failed audio” row in the menu offers “Retry transcribe &amp; copy” on every preserved take — one click re-runs the transcribe and drops the result on your clipboard. Audio is kept for 7 days or 20 takes, whichever comes first, and copies rather than typing because the original window’s focus is long gone.</p>
<p>The menu stops lying about update checks. A benign “you’re up to date” signal from the auto-updater used to read as a failure, so every successful daily check left the menu reading “couldn’t check for updates” for 24 hours. Fixed at the source.</p>]]></description>
    </item>
    <item>
      <title>v1.8.10 — Long dictations stop waiting on slow cleanup</title>
      <link>https://halopen.com/changelog/#v1.8.10</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.10</guid>
      <pubDate>Mon, 18 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>When Polish or Editorial is on, the cleanup now races against a three-second cap. If it hasn’t returned by then, Halopen abandons it and pastes your verbatim text — your words land at the cursor a beat sooner, and the cleanup result (if it eventually comes back) doesn’t matter because you’ve already moved on. Short dictations are unaffected.</p>]]></description>
    </item>
    <item>
      <title>v1.8.9 — No more “Cleanup looked off” pop-up</title>
      <link>https://halopen.com/changelog/#v1.8.9</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.9</guid>
      <pubDate>Mon, 18 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>When Polish or Editorial fell back to verbatim, Halopen used to surface a small notification explaining why. It read as a malfunction even when nothing was wrong — the fallback got your words to the cursor, which is the only place they needed to be. The notification is gone. The Audit Log still shows you both versions if you ever want to compare.</p>
<p>Fewer false-positive fallbacks behind the scenes. The safety guard that protects you from a runaway cleanup was firing on legitimate Polish edits — the kind that drop “actually,” “literally,” “really,” and the other words Polish is built to clean. The guard’s stopword list now recognizes those as filler, so Polish and Editorial apply to your text more often instead of silently dropping back.</p>]]></description>
    </item>
    <item>
      <title>v1.8.8 — The transcription model stops answering you</title>
      <link>https://halopen.com/changelog/#v1.8.8</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.8</guid>
      <pubDate>Sun, 17 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>If you had clipboard + selected-text biasing on, Halopen was framing those hints to the transcription model with phrasing the model occasionally read as a chat turn — generating an answer to your audio instead of transcribing it. The biasing hints now use the same vocabulary-hint shape as the personal-dictionary signal, which has never tripped this failure. No new settings.</p>
<p>The Audit Log now keeps the text of your dictations so you can copy them back if something goes wrong. Open the log from the menu, click a row, copy the raw transcript or the cleaned version. Stays on this Mac, follows your existing retention setting.</p>
<p>On-your-Mac transcriptions appear in the audit log too, marked “(local)” so you can confirm at a glance that nothing left the device.</p>]]></description>
    </item>
    <item>
      <title>v1.8.7 — Start and stop tones play through your main output</title>
      <link>https://halopen.com/changelog/#v1.8.7</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.7</guid>
      <pubDate>Fri, 15 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>The hold-to-talk cue used to play through the macOS system-sounds channel — a separate volume and routing from the slider you turn up for music, which another app or a macOS update can silence without you touching anything. The cue now plays through your main audio output. If you can hear music, you’ll hear Halopen.</p>
<p>Backing out of Google or Apple sign-in no longer freezes the sign-in screen. If a web sign-in doesn’t complete, the buttons re-enable on their own so you can just try again.</p>]]></description>
    </item>
    <item>
      <title>v1.8.6 — The last thing you say is less likely to get dropped</title>
      <link>https://halopen.com/changelog/#v1.8.6</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.6</guid>
      <pubDate>Fri, 15 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Occasionally — rarely, but enough to erode trust — a final sentence wouldn’t make it into the transcript. The audio was always captured correctly; the transcription model was treating the hard end of the recording as a cut-off and trimming the last few words. Halopen now appends a brief moment of silence after your last word so the model has room to finalize the trailing words.</p>
<p>A dictation that can’t land is no longer silently lost. If Halopen transcribes your speech but can’t deliver it — focus moved between when you spoke and when the text was ready, or the app refused the text — the transcript is held instead of discarded. A “Recover lost dictation” item appears in the Halopen menu: insert it at your cursor, copy it, or discard it. You choose how long to keep recovered dictations in Settings → Privacy, from “last one only” up to 24 hours. Stored only on your Mac.</p>]]></description>
    </item>
    <item>
      <title>v1.8.4 — A glance-up timer while you hold the key</title>
      <link>https://halopen.com/changelog/#v1.8.4</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.4</guid>
      <pubDate>Fri, 15 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Hold the key for a long thought and the menu-bar icon now shows an elapsed timer beside it — 0:08, 1:24, 3:05 — that clears the moment you release. The waveform pill near your cursor was always there, but it sits at the bottom of the screen, not where you’re looking. The timer is a calm confirmation that the recording is running. No flashing, no color, no new window.</p>
<p>The Audit Log now records how long each dictation actually was. Every transcription row shows audio length alongside the timestamp and result — a small honesty fix to a surface built for you to verify what Halopen does.</p>]]></description>
    </item>
    <item>
      <title>v1.8.3 — The menu tells the truth about your effective mode</title>
      <link>https://halopen.com/changelog/#v1.8.3</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.3</guid>
      <pubDate>Thu, 14 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Before 1.8.3, the Cleanup row showed your global pick (Cleanup: Editorial) even when the per-app override system was quietly routing your dictation to Verbatim instead. The menu now reads Cleanup: Editorial → Verbatim (Terminal) when your global pick and the effective mode for the current app differ — you see the override, you know why, you can decide whether to remove it.</p>
<p>The behavior itself is unchanged from 1.8.2: code editors, terminals, and chat apps still seed to Verbatim because Editorial doesn’t fit code or chat, and On-your-Mac transcription still forces Verbatim because cleanup needs a cloud round-trip. 1.8.3 just makes the routing visible at every glance.</p>]]></description>
    </item>
    <item>
      <title>v1.8.2 — The menu bar becomes the daily control surface</title>
      <link>https://halopen.com/changelog/#v1.8.2</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.2</guid>
      <pubDate>Thu, 14 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Cleanup mode and Transcription mode now switch from the menu bar — one click to open, one click to flip. The current value shows inline (Cleanup: Verbatim, Transcription: Cloud) with the active cloud model named in the submenu. In On-your-Mac mode, a calm footer reads “On-your-Mac mode forces Verbatim” so the menu never lies about what’s running.</p>
<p>The four toggles you flip session-to-session — personal-dictionary biasing, clipboard + selected-text biasing, review-before-inject, and live preview — now live in the menu as native checkmark rows. Each honors its existing dependency (review is disabled when Cleanup is Verbatim; live preview is disabled in On-your-Mac mode).</p>
<p>A new deep link too: Open snippets… ⌃⌘S, parity with the existing vocabulary shortcut so the two user-authored stores are one keystroke apart. Settings still holds the full surface area; the menu bar is the fast lane.</p>]]></description>
    </item>
    <item>
      <title>v1.8.1 — Security hardening on the cleanup pipeline</title>
      <link>https://halopen.com/changelog/#v1.8.1</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.1</guid>
      <pubDate>Wed, 13 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>The Polish and Editorial endpoints now require a signed-in user and verify your subscription server-side before any model call. Caught in a security audit within an hour of the 1.8.0 ship; closed at the server immediately. No customer-visible change for paying users.</p>
<p>A preparation step ships in the Mac client for a follow-up server-side tightening on the transcription endpoint — closing the remaining path where the public anon key alone could ride a transcription call. No flow change today; today’s binary just sends the credential the future server will require.</p>]]></description>
    </item>
    <item>
      <title>v1.8.0 — Polish and Editorial — cleanup that respects the speaker</title>
      <link>https://halopen.com/changelog/#v1.8.0</link>
      <guid isPermaLink="false">halopen-changelog-v1.8.0</guid>
      <pubDate>Wed, 13 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Settings → Transcription gains a new card list under the Cloud / On-your-Mac picker: Verbatim (the default — exactly what you said), Polish (filler words and false starts removed, punctuation added, meaning preserved), and Editorial (a fuller rewrite for emails and longer-form writing). Verbatim stays the default for every user; Polish and Editorial only run when you explicitly opt in. Polish runs on Claude Haiku 4.5, Editorial on Claude Sonnet 4.6, and both preserve every language present and refuse to insert content you didn’t say.</p>
<p>Per-app cleanup modes — Mail might run Polish while Cursor and Xcode stay Verbatim. Code editors, terminals, and chat apps are pre-seeded to Verbatim so dictating code or Slack messages always lands exactly as you said it.</p>
<p>A “review before inject” modal, off by default. Turn it on and every Polish or Editorial cleanup opens a side-by-side modal with edits highlighted — Accept, Edit, or Reject. The safety net for the brand promise.</p>
<p>On-your-Mac mode forces Verbatim by design. Sending the cleaned text to the cloud after promising to keep the audio on-device would honor the letter of the privacy choice but break the spirit. One privacy posture, one decision. A catastrophic-change detector also guards against the rare cleanup that drifts from polish to rewrite — when it fires, your verbatim text lands instead.</p>]]></description>
    </item>
    <item>
      <title>v1.7.0 — Snippets and Insights</title>
      <link>https://halopen.com/changelog/#v1.7.0</link>
      <guid isPermaLink="false">halopen-changelog-v1.7.0</guid>
      <pubDate>Wed, 13 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Snippets — voice shortcuts that expand at the cursor. Author a trigger like sig and an expansion like your email signature in Settings → Snippets, dictate the trigger anywhere, and the full expansion lands in place of the trigger word. Pure text replacement — no model cleanup, no rewriting. Up to 200 snippets, local-only, deterministic word-boundary matching.</p>
<p>Insights — how much voice typing actually does for you. A new tab in Settings reads from data Halopen already records and surfaces a five-card dashboard: hours saved this month and all-time (against a named 50 wpm baseline), word count, session count, current dictation streak, and your top five dictionary terms. No remote analytics; everything runs against your local audit log.</p>]]></description>
    </item>
    <item>
      <title>v1.6.1 — The follow-up press, fully fixed</title>
      <link>https://halopen.com/changelog/#v1.6.1</link>
      <guid isPermaLink="false">halopen-changelog-v1.6.1</guid>
      <pubDate>Wed, 13 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>The v1.5.3 release closed one half of the “fast follow-up fn press loses the previous dictation” bug at the clipboard layer; 1.6.1 closes the second half at the network layer. The transcribe-and-inject pipeline now runs in a detached background task the moment your audio is sealed, so a follow-up press starts a fresh dictation without interrupting the previous one. Both takes land in the order you spoke them.</p>
<p>Order is preserved across simultaneous takes. If you press, release, press again, and the second transcribe happens to return before the first, Halopen parks the second injection until the first lands.</p>
<p>The Audit Log’s “in-flight” signal is now honest. It used to read yes 96.7% of the time, while only about 1.7% of presses actually caught a take mid-flight — a bookkeeping bug. The signal now reflects reality, so the log line earns its place as a debugging surface again.</p>]]></description>
    </item>
    <item>
      <title>v1.6.0 — Reading the context around your cursor</title>
      <link>https://halopen.com/changelog/#v1.6.0</link>
      <guid isPermaLink="false">halopen-changelog-v1.6.0</guid>
      <pubDate>Wed, 13 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Halopen now reads up to 200 characters of text immediately before your cursor — the sentence you’ve been writing, the variable name you just typed, the recipient line in the email — and uses it as a bias signal. Proper nouns, technical terms, and code identifiers that used to land slightly wrong now land closer to right.</p>
<p>The app you’re dictating into shapes the register. Mail expects prose; Terminal, iTerm2, and Warp expect shell commands and file paths; VS Code and Cursor expect code identifiers; Slack expects a brief chat message in casual register. The anchor apps each carry a curated label and a matching hint.</p>
<p>Passwords and credentials in your cursor’s neighborhood never get sent. The same secret filter that has always guarded clipboard content now runs on cursor-adjacent text too — Stripe, GitHub, Slack, JWT, PEM, and AWS credential shapes, plus keywords like password=, api_key, token=. The filter errs toward rejecting.</p>
<p>Cursor-adjacent reads are gated on the same Accessibility permission Halopen already uses for text injection — no new permission ask — and only run when context biasing is on in Settings → Privacy.</p>]]></description>
    </item>
    <item>
      <title>v1.5.3 — Reliability and transparency pass</title>
      <link>https://halopen.com/changelog/#v1.5.3</link>
      <guid isPermaLink="false">halopen-changelog-v1.5.3</guid>
      <pubDate>Wed, 13 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Long dictation, fast follow-up press — text now lands cleanly. The pasteboard-restore window used to collapse when the new press cancelled the previous dictation, so the target app sometimes read a half-replaced clipboard before consuming the paste. The drain now runs independently of cancellation.</p>
<p>The Audit Log gained Export… and a click-row detail sheet. Save the current filtered list as JSON, or click any row to see the full endpoint URL, status code, duration, audio seconds, and outcome — with a Copy as cURL action that assembles a reproducible request template (your anon key is never serialized).</p>
<p>The Vocabulary tab shows your dictionary’s prompt contribution: Dictionary tokens: ~X of 244 tells you how close your saved terms come to the transcription engine’s 244-token prompt ceiling.</p>
<p>New telemetry lands in the local audit log for the rare tail-end-sentence-drop case, so the next release has the data to fix it at root.</p>]]></description>
    </item>
    <item>
      <title>v1.5.2 — The vocabulary-list-as-transcription bug, fixed</title>
      <link>https://halopen.com/changelog/#v1.5.2</link>
      <guid isPermaLink="false">halopen-changelog-v1.5.2</guid>
      <pubDate>Tue, 12 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>A small number of users would occasionally see their saved words list typed into the active text field instead of what they actually said. This was the cloud transcription engine echoing the proper-noun bias hints back when the audio contained no detectable speech. Halopen now defends against it at four layers — a pre-flight silence check that skips the network round-trip entirely on silent holds, a sentence-form wrap so the decoder doesn’t read the hints as a list to continue, and a post-hoc echo guard on both the client and the server.</p>
<p>Version and update status are now visible in the menu-bar dropdown. A new line under the model identifier reads 1.5.2 · up to date, and shifts in real time to checking for updates…, downloading 1.5.3…, then 1.5.3 ready · restart Halopen — that last state is clickable for a one-tap install.</p>
<p>Updates now install themselves. Halopen polls in the background every 24 hours (it already did), and from this version forward it also downloads the new build silently and stages it for install on your next clean quit. No dialogs, no prompts.</p>]]></description>
    </item>
    <item>
      <title>v1.5.1 — Menu-bar discipline, model honesty, faster cloud</title>
      <link>https://halopen.com/changelog/#v1.5.1</link>
      <guid isPermaLink="false">halopen-changelog-v1.5.1</guid>
      <pubDate>Tue, 12 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>The menu bar drops to eight rows. Paste last transcript with ⌃⌘V. Open the audit log with ⌃⌘L, vocabulary with ⌃⌘B. The four quality toggles that used to live in the dropdown moved into Settings → Transcription where they belong; permission-OK rows are hidden until something breaks.</p>
<p>Settings → Model is the page where you build conviction about what’s actually running on your Mac. It names Whisper Large v3 explicitly, attributes it to OpenAI, credits WhisperKit for the integration, and shows the three-stage compute breakdown — encoder and decoder on the Apple Neural Engine, mel-spectrogram on CPU and GPU.</p>
<p>Cloud dictation got faster for Pro users. Halopen used to make three network calls per dictation; the pre-flight gate and the usage tick weren’t doing anything for paid accounts. They’re gone. One call per dictation. The audit log gets quieter and your dictations land a beat sooner.</p>
<p>The audit log gained the status-dot treatment — green for success, yellow for rate-limited, red for server errors, orange for network failures. Smaller refinements throughout: Account tab shows your email, plan, and renewal date inline; Vocabulary opens with an explanation of what the terms actually do; the paywall footer correctly names the Stripe billing portal.</p>]]></description>
    </item>
    <item>
      <title>v1.5.0 — Halopen runs on your Mac, by choice</title>
      <link>https://halopen.com/changelog/#v1.5.0</link>
      <guid isPermaLink="false">halopen-changelog-v1.5.0</guid>
      <pubDate>Mon, 11 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>The largest update Halopen has shipped. Halopen can now transcribe your voice entirely on your Mac. Audio never leaves the device, and the brand promise is verifiable in a local audit log you can read yourself.</p>
<p>On-device transcription runs Whisper Large v3 via WhisperKit on Apple’s Neural Engine. Apple Silicon only (M1, M2, M3, M4). Opt-in from Settings → Transcription → On your Mac. Cloud mode is still the default and still recommended for everyday dictation — it uses gpt-4o-transcribe for the highest accuracy on proper nouns, multilingual code-switching, and unusual acoustic conditions. You choose per-dictation.</p>
<p>The audit log records every cloud call Halopen makes — endpoint, status, duration, audio seconds. Metadata only; no audio, no transcripts. In On-your-Mac mode, the log stays silent during transcription.</p>
<p>Personal Vocabulary lands too: add proper nouns, brand names, and technical terms in Settings → Vocabulary, and Halopen pre-feeds them to the cloud transcription engine so they land on the first pass. Plus a redesigned mode picker, a new Dock icon (the menu bar keeps the pen-and-halo glyph from 1.4.4), and a published transparency policy at halopen.com/transparency.</p>]]></description>
    </item>
    <item>
      <title>v1.4.5 — Sharper transcription, cleaner endings</title>
      <link>https://halopen.com/changelog/#v1.4.5</link>
      <guid isPermaLink="false">halopen-changelog-v1.4.5</guid>
      <pubDate>Thu, 07 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>The last word of your sentence stays with you. When you tag on a quick phrase right before releasing the function key, those final 100–300 milliseconds of audio used to occasionally get clipped before reaching the transcriber. Halopen now holds the recording open just long enough for the trailing audio to make it home.</p>
<p>Transcription now lives inside Halopen — the cloud path moved off a shared backend onto its own dedicated infrastructure. Same model, same accuracy, same speed; reliability is now fully independent.</p>]]></description>
    </item>
    <item>
      <title>v1.4.4 — A new menu-bar mark</title>
      <link>https://halopen.com/changelog/#v1.4.4</link>
      <guid isPermaLink="false">halopen-changelog-v1.4.4</guid>
      <pubDate>Mon, 04 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>A new menu-bar icon: the halo and the pen, drawn as one mark. The wordmark, finally visible at every size.</p>
<p>The arc’s aperture shifts as Halopen listens — wider at rest, tighter while recording, wider while waiting on the cloud, fully closed when text lands at your cursor.</p>]]></description>
    </item>
    <item>
      <title>v1.4.3 — Robustness pass + macOS 14 fix</title>
      <link>https://halopen.com/changelog/#v1.4.3</link>
      <guid isPermaLink="false">halopen-changelog-v1.4.3</guid>
      <pubDate>Mon, 04 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>A perfectionism pass on the audio engine, the hotkey watchdog, and the sign-in window.</p>
<p>macOS 14 Sonoma now works again: a modern AVAudio API call had been calling the macOS 15 path with no fallback.</p>
<p>Friendlier errors when the disk fills up, when a USB mic unplugs mid-take, and when the function key gets stuck. Halopen now tells you what to do.</p>
<p>Sign-in no longer leaks the previous user’s typed email after sign-out.</p>
<p>Free-tier word counting is fair to languages that don’t separate words with spaces (Mandarin, Japanese, Korean).</p>]]></description>
    </item>
    <item>
      <title>v1.4.2 — Press kit, polished installer, growth pass</title>
      <link>https://halopen.com/changelog/#v1.4.2</link>
      <guid isPermaLink="false">halopen-changelog-v1.4.2</guid>
      <pubDate>Sun, 03 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>A full press kit at /press/ — fact sheet, story angles, brand assets.</p>
<p>A polished DMG installer with a clear drag-to-Applications layout.</p>
<p>A welcome wizard that walks first-time users through every permission.</p>]]></description>
    </item>
    <item>
      <title>v1.4.1 — Discovering the Secure Keyboard hint</title>
      <link>https://halopen.com/changelog/#v1.4.1</link>
      <guid isPermaLink="false">halopen-changelog-v1.4.1</guid>
      <pubDate>Sun, 03 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>When Halopen detects a Secure Keyboard Entry block in Terminal or iTerm2, it now surfaces the fix the first time you run into it — instead of silently failing.</p>]]></description>
    </item>
    <item>
      <title>v1.4.0 — Clearer permissions feedback</title>
      <link>https://halopen.com/changelog/#v1.4.0</link>
      <guid isPermaLink="false">halopen-changelog-v1.4.0</guid>
      <pubDate>Sat, 02 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Recheck Permissions in the menu now confirms exactly what it just read — “OK,” or “Still missing X.”</p>
<p>When dictation lands in a Secure-Input app, the menu shows the specific app and the fix.</p>]]></description>
    </item>
    <item>
      <title>v1.3.9 — Multi-channel audio, fixed</title>
      <link>https://halopen.com/changelog/#v1.3.9</link>
      <guid isPermaLink="false">halopen-changelog-v1.3.9</guid>
      <pubDate>Sat, 02 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>USB interfaces, aggregate devices, and virtual audio routes are now down-mixed to mono before transcription. Stops the rare “no speech detected” loop on rich audio setups.</p>]]></description>
    </item>
    <item>
      <title>v1.3.8 — Sign-in safety net</title>
      <link>https://halopen.com/changelog/#v1.3.8</link>
      <guid isPermaLink="false">halopen-changelog-v1.3.8</guid>
      <pubDate>Sat, 02 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>The sign-in window now catches OAuth callbacks more reliably across slow networks and reinstalls.</p>]]></description>
    </item>
    <item>
      <title>v1.3.7 — Cost defenses + Audit Log</title>
      <link>https://halopen.com/changelog/#v1.3.7</link>
      <guid isPermaLink="false">halopen-changelog-v1.3.7</guid>
      <pubDate>Sat, 02 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Per-tier hold timers (10 min Pro, 3 min Free) prevent runaway sessions.</p>
<p>A new Audit Log window in the menu shows the last 500 cloud calls — local, auditable, transparent.</p>]]></description>
    </item>
    <item>
      <title>v1.3.6 — A new app icon</title>
      <link>https://halopen.com/changelog/#v1.3.6</link>
      <guid isPermaLink="false">halopen-changelog-v1.3.6</guid>
      <pubDate>Fri, 01 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>A new app icon — the pen and the waveform, on cream paper. The picture of the manifesto.</p>]]></description>
    </item>
    <item>
      <title>v1.3.5 — Welcome window + locale-aware language hint</title>
      <link>https://halopen.com/changelog/#v1.3.5</link>
      <guid isPermaLink="false">halopen-changelog-v1.3.5</guid>
      <pubDate>Fri, 01 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>A first-run welcome window with a menu-bar locator and a three-step “how it works.”</p>
<p>Halopen now reads your Mac’s preferred language and passes it as a transcription hint.</p>]]></description>
    </item>
    <item>
      <title>v1.3.3 — Auto-update via Sparkle</title>
      <link>https://halopen.com/changelog/#v1.3.3</link>
      <guid isPermaLink="false">halopen-changelog-v1.3.3</guid>
      <pubDate>Fri, 01 May 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Halopen now updates itself in the background — every release signed with EdDSA, every appcast load verified.</p>]]></description>
    </item>
    <item>
      <title>v1.3.2 — OAuth fallback restored</title>
      <link>https://halopen.com/changelog/#v1.3.2</link>
      <guid isPermaLink="false">halopen-changelog-v1.3.2</guid>
      <pubDate>Thu, 30 Apr 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>Sign-in now works regardless of how macOS routes the callback — the safety net catches every case.</p>]]></description>
    </item>
    <item>
      <title>v1.3.0 — Affiliate program, learn library</title>
      <link>https://halopen.com/changelog/#v1.3.0</link>
      <guid isPermaLink="false">halopen-changelog-v1.3.0</guid>
      <pubDate>Wed, 29 Apr 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>A public affiliate program at /affiliate-program/ — apply, get a link, earn 30% on every paid customer.</p>
<p>The first /learn/ flagship goes live: voice typing for Claude Code on Mac.</p>]]></description>
    </item>
    <item>
      <title>v1.2 — Halopen for Mac arrives</title>
      <link>https://halopen.com/changelog/#v1.2</link>
      <guid isPermaLink="false">halopen-changelog-v1.2</guid>
      <pubDate>Wed, 29 Apr 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<p>First public release of Halopen for Mac — hold to talk, anywhere a cursor goes.</p>
<p>Free forever — 2,000 words a month. No card to start.</p>]]></description>
    </item>
  </channel>
</rss>