Release stream

Changelog

Every desktop release, from the same stream the app’s own updater reads. If the app offers it, it is here.

v0.15.0All releases on GitHub
  1. SnapBuddy 0.15.0

    v0.15.0Latest
    • docs: the migration guide and the remaining-steps list (#4)
    • Geometry previews, resize handles, and the window detour reverted (#3)
    • Annotation editor defects, two security criticals, and a padding pass (#2)
    • docs: hand off the 2026-08-21/22 session
    • docs(desktop): the app can open a browser, and five comments said it cannot
    • test(web): the reset block never tore down its own per-IP throttle bucket
    • fix(record): the webcam bubble was squashed into its own circle
    • fix(desktop): four from the batch review, including a setting that did nothing
    • docs: assess C6 and C10 rather than half-build either
    • feat(desktop): A2 width - the settings hub can finally reach its own layout
    • test(desktop): regenerate the Linux editor baseline for the eyedropper
    • feat(editor): C4, a screen eyedropper that removes itself where it cannot work
    • feat(desktop): C8 bubble size, and C9 is not what the register said it was
    • feat(desktop): C12, the composer remembers which capture mode you work in
    • test(desktop): regenerate the Linux editor baseline for the toggle pair
    • fix(editor): four more from the review, and two checks that proved vacuous
    • fix(editor): 43% of a zoomed picture was unreachable, and the readout lied
    • fix(editor): the fourth host, the two whitelists, and checks for both
    • test(desktop): regenerate the Linux editor baseline for the zoom cluster
    • feat(editor): C1, a zoom cluster that changes nothing about the coordinates
    • test(desktop): regenerate the Linux editor baseline for the Bold/Italic buttons
    • feat(editor): C2, Bold and Italic for text marks
    • feat(editor): C3, the prompt box counts what you have written
    • docs: staging deferred to pre-release by owner ruling
    • ci: pass R2 config so the share viewer can render in CI
    • fix(web): the reset form must not answer differently for a real address
    • docs: section G said nothing had been done; a second Supabase project exists now
    • ci: Node 22, because supabase-js cannot construct a client on Node 20
    • ci: allow CI to be run by hand from the Actions tab
    • docs: record why 0017 exists and why revoking from anon alone would not have worked
    • feat(db): 0017 takes the RLS helpers off the anonymous REST surface
    • ci: pass SUPABASE_SERVICE_ROLE_KEY so the auth tier can actually run
    • test: gate the notice's processor count and the desktop's storage claims
    • test: fail the build if an unfinished marker renders on the privacy notice
    • fix(desktop): the plan is never re-checked, and Settings said it was
    • fix(web): the privacy notice says where capture files actually rest
    • docs: put D7 back in front of D8 in the conflicts list
    • docs: the six v2 design conflicts are confirmed, not just applied
    • docs(design): correct the status vocabulary in the v2 mock (D2)
    • ci: run the desktop harness even when the web suite is red
    • fix(desktop): detect the heavy face by measurement, not document.fonts.check()
    • fix(desktop): gate the heavy-face assertion on the platform having the face
    • test(desktop): regenerate the Linux visual baselines for the v2 board
    • fix(web): the landing smoke test asserts the brand where the brand is
  2. SnapBuddy 0.14.0

    v0.14.0
    • fix(ci): make pnpm lint green ÔÇö ignore the design deliverable, fix 3 pre-existing errors
    • docs: record the staging environment plan in the gap register
    • docs: DX1 shipped ÔÇö the extension's editor is three regions now
    • feat(extension): port the three-region annotation editor (owner reversal)
    • docs: record what the dashboard took from the design and what does not transfer
    • feat(web): filter chips and a grid/list switch on the dashboard
    • docs: record the extension's three deliberate non-ports and its one addition
    • feat(extension): the v2 composer, and a shortcuts signpost that makes rule 5 honest here
    • feat(extension): the v2 foundation ÔÇö radius scale, type floor, icon sprite
    • fix(desktop): three breakages and a dozen deviations found by an independent audit
    • fix(desktop): three contrast failures in the v2 composites, two of them in Light
    • feat(desktop): the main window is undecorated and draws its own controls
    • fix(desktop): the annotation editor at the window's own 720x520 minimum
    • chore: untrack a packaged build that git add -A swept in
    • docs: the wiring map and the gap register for the v2 overhaul
    • feat: three-region annotation editor, v2 walkthrough builder and player
    • feat(desktop): library toolbar, list view, Settings hub and detail
    • feat(desktop): the v2 board chrome, composer and capture mode control
    • refactor(desktop): lift 39 inline drawings into a 33-symbol icon sprite
    • feat(theme): four measured tokens and a radius scale for the v2 overhaul
    • feat(web): /story takes a nav slot and its own OG card
    • chore(extension): 1.22.0
    • docs: rewrite the store shot list against the UI that actually ships
    • fix: the store submission was blocked by more than screenshots, and two of the blocks were false claims
    • feat(web): brand story at /story ÔÇö the mascot is named Snap
    • fix: a card became three files and eleven places still promised two
    • feat: the MCP tool set is complete ÔÇö console errors, failed requests and a frame
    • docs: the notice says what an MCP server changes, and the build checks both claims
    • fix: a joined-to-code check was green for six commits while it was broken
    • docs: this session's work was dated 2026-08-18 and it happened on 2026-08-21
    • docs: record the Stage 5 slice, which the previous commit shipped without
    • feat: apps/mcp ÔÇö a coding agent can read the captures on this machine
    • feat: both surfaces write a machine-readable sidecar (Stage 5, piece one)
    • docs: measure Stage 5 against real data before designing it
    • fix: the repro steps ran backwards, in five of the owner's nine real recordings
    • docs: de-duplicate the next-session prompt, which contradicted itself in two places
    • docs: the next-session prompt for a tree where the doc.js extraction is finished
    • feat: one document assembler, and the extension's card finally describes its marks
    • test: the stale-copy guard becomes the invariant it was an instance of
    • refactor: the document assembler becomes one file in two places (doc.js step 3)
    • refactor: the document block renders from its arguments alone (doc.js step 2)
    • docs: rewrite the next-session prompt for the state five commits leave behind
    • fix: the region deep link was routed in only one of the two doors
    • fix: the trash left one write reachable, and the landing page still said it did not exist
    • refactor: envLines() survives APP_ENV not existing, which is step 1 of the doc.js move
    • feat: the extension gets a trash, and the notice's promise broadens back
    • fix: the extension harness had been red for a day, on six checks nobody ran
    • docs: rewrite the next-session prompt for the state Stage 4 leaves behind
    • docs: disclose that Chrome records the captured page's console against us
    • feat: Region hands the job to the desktop app, and offers the download if it is not there
    • fix: the three remaining MEDIUM findings, and close the notice's live false claim
    • feat: snap a region from the extension
    • fix: an error's message was printed twice, once as text and once as its stack header
    • fix: console.error(new Error(x)) was throwing away its stack
    • docs: measure the doc.js extraction instead of starting it
    • fix: a leaked password, frame times that were all 0:00, and a log that buried the bug
    • fix: the board no longer needs reloading, cards show what they carry, and reload is a standing note
    • fix: the capture commit made the privacy notice false, and the check was half a rule
    • docs: the smoke test for dev capture, ordered by risk
    • feat: the extension keeps its annotation marks, and gets a real Environment block
    • fix: the capture switch is genuinely per-site, and refuses a broad grant
    • fix: four privacy defects an adversarial review found in today's capture code
    • feat: event-driven keyframes, in the extension
    • fix: connect the dev log to the card, which the last commit did not
    • feat: the dev log reaches the bundle, as text
    • fix: the extension's Nocturne default was erasing itself on first run
    • feat: dev capture ships, and the store listing is rewritten with it
    • feat: guard the page-reach claim, and rule where console comes from
    • fix: the capture switch is split across two contexts, because MV3 forces it
    • feat: the QA wedge's safety layer, before the capture that needs it
    • fix: the listing rule the same-commit ruling claimed to have
    • fix: the extension's last window.confirm becomes the product's own dialog
    • docs: hand off v0.13.0, and correct the two claims that had rotted
  3. SnapBuddy 0.13.0

    v0.13.0
    • feat(brand): avatar and email-signature exports
    • test: regenerate the Linux visual baselines on CI
    • chore(extension): 1.20.0, and CLAUDE.md catches up on tags
    • feat: local tags with a chip filter bar, font pickers, and text watermarking
    • docs: the privacy notice discloses the desktop sign-in
    • fix: the desktop now says four things leave it, and a check makes that true
    • feat: the tags foundation ÔÇö schema, RLS, and one place that normalises
    • feat: sign-in has a way in, and theme selection is gated without paywalling the look
    • feat: the desktop can hold a real session, and credentials leave the JSON file
    • fix: real confirm dialogs, multi-select, and arrow labels that clear their own shaft
    • docs: watermarking was never built, and three rulings to build it
    • fix: the icon was mush at 16px, because the generator ignored the size ladder
    • docs: the working roadmap, and Stage 2 planned in detail
    • chore(extension): 1.19.0
  4. SnapBuddy 0.12.0

    v0.12.0
    • fix: the text tool sizes itself, and the delay actually gets out of the way
    • docs: bring CLAUDE.md up to what this actually is, and plan two batches
    • fix: make Nocturne the default, not an option nobody found
    • feat: give the extension the brand mark, and hold the web tab icon
  5. SnapBuddy 0.11.0

    v0.11.0
    • chore: format the repo, and floor the check the reflow broke
    • feat: bring the app onto the Nocturne look, and give it a face
    • docs: the handoff for the next session, after v0.10.0
  6. SnapBuddy 0.10.0

    v0.10.0

    A recording becomes a walkthrough in one click, and the editor learns to change the picture.

    Walkthroughs

    • Create walkthrough, on a recorded card, turns every click in that take into a step. Each step carries a full-size picture cut from the recording at the moment of the click, and a hotspot where the click landed. The steps arrive in the order the clicks happened. The time each click happened at goes with them, as Settings says, but a step does not keep it: there is no time on a step and no clock a walkthrough is played against, so what you get is an ordered list of pictures rather than a timeline.
    • The builder address is copied to your clipboard and stays on the card behind a Copy link button. Nothing in this app can open a browser, so the address is text you paste rather than a link you press.
    • The button is offered on recordings that carry an interaction track, and only until one has been made. After that the card shows the link instead.
    • Up to 25 steps in a single press. A take with more clicks than that says how many of how many it used.
    • It goes through the Sharing switch already in Settings, not a new one. Your API key needs the walkthroughs:write permission, which is new, so a key issued before this release is refused until your workspace reissues it.
    • A recording carrying redact, blur or pixelate marks is refused, and the refusal says why. Those three are drawn over a recording rather than into it, so the step pictures would publish every pixel they cover, at full size. Burn in writes a copy with them made permanent.

    What leaves your machine

    • The board and Settings now say three things leave this computer, not two: recordings, when Sharing is on; the screenshots and click positions in a walkthrough, through that same switch; and the update check. The walkthrough frames are the new third, and they are pictures of whatever was on screen at those moments rather than the recording.
    • The Sharing block in Settings spells the screenshot half out in a paragraph of its own, and names the key permission it needs.

    The annotation editor

    • Five new tools, eighteen in all. Crop, Rotate, Background and Resize form a new Frame group at the end of the bar, so nothing already there changed place or tab position. Spotlight joins Mark.
    • Crop: drag a rectangle on the picture. The readout gives the resulting size in pixels before you commit to it.
    • Rotate: quarter turns left and right, plus a straighten slider from -15 to +15 degrees that leaves the frame the size it was.
    • Background: a padded, rounded, shadowed backdrop in the swatch colour already selected, from 2 to 30 percent of the shorter side.
    • Resize: 10 to 300 percent, with the resulting pixel size shown before you apply it.
    • Spotlight dims everything outside a region. It sits in Mark beside Highlight, and deliberately not in Hide: it removes no pixels and is not a redaction.
    • Every mark moves with the picture. A mark left wholly outside the new frame is dropped and a rectangle straddling the edge is clipped, so a redaction can never come out covering less than it covered. One undo puts the frame and the marks back together.
    • Changing the frame of a saved card stops that card's earlier marks being described in its saved .md, and a note says how many. The picture, redactions included, is unchanged.

    Recordings

    • Crop, on the trim bar, crops the recording itself. Drag on the video, and the result plays back as a candidate before you decide: keep it as a new card, replace the original, or discard it. The original stays on disk until you choose. Marks move with the crop, and the bar says how many fell outside the new frame.
    • A cropped recording is saved without its interaction track, because the clicks were recorded against the frame that has just changed. Its saved .md falls back to the blank repro template, and a walkthrough cannot be made from it.
    • The board's Record button is a toggle. While a take is running it reads Stop and stops it, which is what the tray icon and the hotkey already did.
    • Annotate here puts the player back afterwards, at the moment you marked, so the timing controls for the mark you just drew are where you left them.
    • Upload to cloud sends the card's own answer about system audio. That answer is read by a member of your workspace on the capture's own page, before they turn the speech in a recording into text. It is not shown to someone opening a share link. Both answers travel: a take made with system audio says so, and a screen-only one says so too. A take recorded from now on carries that answer, and a trim or a crop of it carries it too.
    • A recording the app cannot answer for is not offered the button at all. The card says why in place of it, rather than failing after a press. That covers a take rescued after an interruption and any card recorded before this release: neither carries the answer, and there is no third value to send. Show file still hands you the recording to send yourself, and recording it again gives you one this app can share.

    The trash

    • A deleted card is readable and nothing else. It keeps its picture, its note, its badges, its timestamp and its countdown, and offers Restore and Delete forever. Copy prompt, Save files, Folder, Edit, Copy image, Show file, Copy link, Upload to cloud and Create walkthrough are gone from it.
    • Its status badge still shows the verdict the card was deleted with, as text rather than a button.
    • Opening a deleted recording no longer arms Trim, Crop, GIF, Annotate here or Burn in, and closing it can no longer bring it back as a new card. Annotate this is gone from a deleted screenshot.
    • Deleting a batch forever always reports what happened, including when one of them could not go.

    Fit and finish

    • A capture taken while the editor is open no longer discards unsaved marks. The Save, Discard or Cancel dialog appears as it does everywhere else, and the new capture waits in the composer.
    • A capture taken while a recording is open closes the player first, so Trim and its neighbours no longer act on that recording from underneath a fresh screenshot.
    • The prompt box starts empty when you edit a saved card, rather than borrowing whatever was typed into the composer.
    • Marks on a recording stay where they belong when a crop changes only its height.

    Known limits

    • The GIF button exports the first 30 seconds from the start of the recording. It does not follow the trim handles.
    • Once a recording or a walkthrough has been sent, this app cannot delete the server's copy.
  7. SnapBuddy 0.9.0

    v0.9.0

    The full redesign, on every surface.

    Appearance

    • Light theme and dark theme, with a system option that follows Windows. Dark stays the default; nothing changes until you choose.
    • Six accent colours: blue, indigo, teal, slate, violet, magenta. Pick them in Settings under Appearance. Every colour pair was measured against WCAG 2.2 AA in both themes.
    • Inter is the app's typeface, bundled with the app. Numbers use tabular figures everywhere, so timers and durations stop jittering.
    • Real icons replace the old emoji glyphs across the board, the recorder, the settings and the editor. Status selects use plain words; the colour cue lives on the badges.

    The annotation editor

    • The thirteen tools regroup into Mark, Hide and Sequence, with Move standing alone. The Hide band (redact, blur, pixelate) is visually set apart: those tools change what leaves your machine, and now they look like it.
    • Keyboard order follows the groups, and the unsaved-work dialog returns focus correctly.

    Recording

    • The pill shows what it is recording (screen, window or region) and says PAUSED in words, not colour alone.
    • Discard now needs a hold, so a slip of the mouse cannot destroy a take. Stop stays a single click.
    • The consent warning beside System audio wraps properly and remains exactly as blunt as before.

    Fit and finish

    • Every window proves itself at its real size, including the 460x560 recorder and the 720x520 board minimum.
    • Shortcut chords like Ctrl+S no longer trigger in-app captures over the OS shortcut.
    • Small "i" markers explain the few controls whose labels cannot carry everything, without replacing any warning.
    • Motion is subtle, consistent, and switches off entirely under Windows' reduced-motion setting.
  8. SnapBuddy 0.8.0

    v0.8.0

    The release that makes the privacy notice true. v0.7.0 was tagged eleven hours before the trash was written, so every installed copy has been deleting permanently while the published notice promised ninety days of recovery. This closes that.

    Deleting is now recoverable

    • Trash. A deleted capture moves to the trash and stays recoverable for 90 days instead of vanishing. Restore puts it back where it was, with its share link intact.
    • Delete shown clears everything currently filtered on the board in one action, rather than one card at a time.

    Crashes no longer cost you the take

    • A recording rescued after a crash now reaches the board even when it gets there before the board does — previously that race left the file orphaned.
    • A crash no longer leaves behind a file you can neither see nor delete.

    Bug reporting

    • Repro steps write themselves. The interaction track is turned into numbered steps, so a bug report arrives with what was actually clicked instead of "it broke".
    • Sharing controls in Settings — what leaves your machine is now something you set, not something you discover.

    Fixes you will notice

    • Saving a PNG no longer produces shot.png.png when you type the extension yourself.
    • A trim now moves everything that describes the footage — annotations and markers stay on the frames they were drawn on, instead of drifting by the length of the cut.
    • The share link waits for its card, so copying it immediately after a recording no longer hands you a link to nothing.
    • A double-click on the board stays one gesture instead of firing twice.
    • The annotation editor is a real dialog: announced to screen readers, focus trapped inside it, and focus returned to where you were when it closes.

    Cloud (early)

    Recordings can upload to Cloudflare Stream and screenshots to R2, producing a share link that unfurls properly in Slack, Teams and Discord. This is new and still being proven — a shared recording does not yet play in Chrome, which is the next thing being fixed. Screenshots are fine.

    Windows only. macOS and Linux have never been built.

  9. SnapBuddy 0.7.0

    v0.7.0

    The annotate editor is rearranged, cards can be named and saved in the format you choose, and the saved .md now describes what you marked up.

    The editor looks different

    The tools moved below the picture, where your hand already is after drawing. Colours stay on top, next to the new file name and format controls. Undo, redo, clear and the save buttons sit under the tools.

    • The tool row is a grid now, so the labels line up and it reflows sensibly when the window is narrow.
    • Close is an X in the top-right corner instead of a button below the fold.
    • The picture is capped a little shorter, because with controls above and below it, "Save annotation" used to fall off the bottom of any window under about 1100px tall.

    Name your files, and pick the format

    There is a name box and a format picker at the top of the editor. Both stick to the card, so Save files, Save as and auto-save all write the same name and the same format. Leave the name blank and you get the generated one as before.

    PNG, JPEG or WebP.

    Ctrl/Cmd+C copies what is on screen, mid-edit

    You no longer have to save first, or reach for the button. Draw the thing you want to show someone and press Ctrl+C. Right-click on the picture still works too. Typing in the prompt box or the hex field still copies that text, as you would expect.

    The saved .md is worth pasting into a ticket now

    It used to be worse than what "Copy prompt" put on your clipboard — no repro scaffold, no annotations. Both assemblers are one thing now, so the file gets everything the clipboard does, plus:

    • What you marked up, in words: - **arrow** (red) at 62%,40% -> 71%,46% - "this 404s". Positions are percentages, so they still mean something at any resolution. Video marks carry their time window.
    • Screenshot annotations are kept as data. They used to be flattened into the picture and thrown away.
    • YAML front matter at the top, so a script or an agent can parse the card instead of reading around it.
    • The image link now names the file that was actually written, which it did not once you could rename a card or save it as a JPEG.

    Fixes

    • Saving no longer overwrites an earlier card. There was no existence check at all. Harmless while every name was a timestamp; the moment you can type "bug" twice it destroyed the first card's picture and its notes. Now you get bug (2).
    • Non-Latin file names work. Every Cyrillic, Greek, Japanese or Chinese name used to collapse to the literal word capture — so with the bug above, every save landed on the same two files. грешка на дугмету is now грешка на дугмету.
    • The Recordings folder setting actually works. Pointing it at another drive left every new recording unplayable in the lightbox, while trim, GIF and burn-in all succeeded — so it read as a broken file rather than a blocked path.
    • Naming a card no longer writes to a different card. Annotating a screenshot, then a recording, seeded the name box from the screenshot and saved back to it.
    • "Copy prompt" reports the right card. On a recording it also names the duration again instead of calling it a note.
    • A recording's redactions are no longer given away. On a video, a redact is drawn over the player rather than burned in — the pixels stay in the file — and the .md was printing the exact coordinates next to the filename. It now says the redaction is cosmetic and points at "Burn in".
    • Ctrl+C no longer overwrites your clipboard from the board. The editor's shortcuts kept firing after it closed.
    • "System audio" now says what it does — it records everyone else on a call, and their meeting app will not show a recording indicator.
    • Share links are no longer written into the log file, which is the file you attach to a support ticket.
    • Generated text is plain ASCII, so the .md stops rendering as # QA card — OPEN in older Windows tools. Your own notes are left exactly as you typed them.

    Under the hood

    The 60-check browser harness now runs under a real controlled browser and finished in 4.5 seconds instead of appearing to hang, and there are screenshot baselines for the six states that have actually broken before. It went from 60 checks to 73, plus 8 on the extension and 6 pictures.

  10. SnapBuddy 0.6.7

    v0.6.7

    SnapBuddy 0.6.7 — the first build shaped by real hands-on testing.

    Everything here came out of actually using 0.6.6 rather than testing it. Updates itself from 0.6.0 or later.

    Trimming now keeps what you trimmed

    Trim has never once worked. You could set the handles, press Trim, watch the trimmed copy play back correctly — and then nothing you pressed did anything, because the app had already thrown away the result a fraction of a second earlier. Loading the preview quietly reset the very state the buttons needed. "Replace original" was just as dead as everything else.

    A trim now becomes its own card, marked with a red ✂ Trimmed badge, and the recording it was cut from is left alone. Closing the preview keeps it rather than discarding it — there is an explicit Discard trim if that is what you meant. Replace original is still there for overwriting the source, but it is no longer the default button, because it is the only one that cannot be undone.

    Any timed annotations move with the cut instead of being dropped or left pointing at the wrong moment.

    Exact trim times, and handles that tell the truth

    You can type the start and end directly — 4.5, 1:02.5, 62.5 all work. Handy when you know the moment you want and dragging to it is fiddly.

    The handles themselves were honest all along but looked like they could not reach the ends: the value really was 0 while the handle sat slightly inside the track, and the bar never filled at the end. On a trim that matters — you cannot tell whether you are about to clip a frame. They now reach both edges.

    Move works on every annotation

    Arrow-with-text could not be moved by grabbing its label, only by the arrow itself. Every annotation can now be dragged by any part of it.

    The camera

    Not mirrored any more by default. The preview used to be flipped while the recorded video never was, so you framed yourself against something different from what came out. There is a Camera section in Settings if you prefer the mirrored view — it only changes what you see; the recording is never mirrored either way.

    The bubble is also a proper circle now, and you can drag it where you want it. It was a filled square that ignored being dragged.

    A folder setting for recordings

    Recordings, GIFs, trims and burn-ins have always gone to Videos\SnapBuddy with no way to change it — separate from the card folder, which caused some confusion about where a GIF had gone. There is now a Recordings folder setting. Leave it empty to keep the current location. Changing it does not strand anything you have already recorded.

    Smaller things

    • Messages like "GIF saved" appeared behind the preview window and were unreadable.
    • Saved paths no longer start with \\?\.

    Known issues

    • The webcam bubble has now been seen working, but background blur and replacement are not built.
    • Recording more than one monitor at once is still not supported: one monitor, one window, or a region of one monitor.
    • Cloud upload remains groundwork only — off by default, no settings screen, storage not connected.

    If something misbehaves, %APPDATA%\com.snapbuddy.desktop\logs holds the current and previous run.

  11. SnapBuddy 0.6.6

    v0.6.6

    SnapBuddy 0.6.6 — two things you asked for, and one deliberate change of habit.

    Updates itself from 0.6.0 or later.

    Saving a card now asks you where

    This is the change you will notice first. Until now Save files wrote straight into the folder in Settings and told you afterwards. It now opens a normal Save As dialog, so a file never lands somewhere you did not pick. The notes travel with the picture: the .md sidecar is written beside the image, under the name you chose.

    If you liked the old behaviour, it is still there — Settings → Save straight to the folder above, without asking where. It starts off after this update, including on an upgrade, because files appearing unasked is the thing being fixed. Auto-save-on-every-card is unaffected and still writes to the folder; it is its own opt-in and prompting on every card would defeat the point of it.

    Delayed capture

    A delay control (none / 3s / 5s / 10s) sits next to the capture buttons. Set it, click Screen, Region or Window, and you get that long to open a menu, hover a tooltip, or get the window into the state you actually want to photograph. It applies to all three capture buttons — setting a shot up is not something one of them does differently.

    It does not apply to the tray menu or the global hotkeys, on purpose. Those exist to grab something instantly, and a hotkey that quietly does nothing for five seconds reads as a broken hotkey, not as a feature. Clicking a second time while the countdown is running is refused rather than queued.

    Known issues

    Unchanged from 0.6.5, and worth repeating:

    • The webcam bubble has still never been tested against a real camera.
    • Recording more than one monitor at once is still not supported: one monitor, one window, or a region of one monitor.
    • Trim, GIF export and annotation burn-in have had very little hands-on use.
    • Cloud upload is still groundwork only — off by default, no settings screen, and the storage backend is not connected. This build behaves like 0.6.5 unless you configured it by hand.

    If something misbehaves, %APPDATA%\com.snapbuddy.desktop\logs holds the current and previous run.

  12. SnapBuddy 0.6.5

    v0.6.5

    SnapBuddy 0.6.5 — a plumbing release.

    Nothing here changes what the app looks like. Updates itself from 0.6.0 or later.

    Updates will now replace the bundled ffmpeg

    The installer skipped files that already existed, which meant an update could leave the OLD ffmpeg in place underneath new code. It has never actually bitten, because the bundled ffmpeg version has not changed since it was introduced — but the first time it did, recordings would have started failing for a reason nobody would have guessed at. The installer now clears it first, and the app writes which ffmpeg it found into its log at every launch, so a mismatch is one line instead of a mystery.

    Groundwork for cloud uploads

    The app can now register a finished recording with a SnapBuddy web account and get a share link back. It is off by default, has no settings screen yet, and cannot upload the video itself — the storage backend is not connected. Nothing is sent anywhere unless you configure it by hand, and this build behaves exactly like 0.6.4 until you do.

    Known issues

    • The webcam bubble is still untested against a real camera.
    • Recording more than one monitor at once is still not supported: one monitor, one window, or a region of one monitor.
    • Trim, GIF export and burn-in have had little hands-on use. If something misbehaves, %APPDATA%\com.snapbuddy.desktop\logs holds the current and previous run.
  13. SnapBuddy 0.6.4

    v0.6.4

    SnapBuddy 0.6.4 — fixes the freeze.

    One fix, and it is the important one. Updates itself from 0.6.0 or later.

    The app no longer locks up after a capture

    Taking a region capture — and sometimes a window capture — could leave SnapBuddy unresponsive. Once it happened, nothing else worked either: the buttons did nothing, the hotkeys did nothing, and Windows eventually offered to close it.

    The cause was that opening the region overlay ran on the same thread that keeps the window responsive, and it then waited for that thread to do something else first. It was waiting for itself. Those operations now run off that thread, which is where the rest of the app already put them.

    If you hit this before: nothing was lost. Recordings are written as you go, and any recording interrupted by killing the app is rebuilt the next time SnapBuddy starts.

    If it ever happens again

    SnapBuddy keeps a log at %APPDATA%\com.snapbuddy.desktop\logs — the current run and the previous one. It is written as things happen, so it survives a freeze and the restart afterwards. That folder is what to send; it is what identified this bug.

    Everything else is unchanged from 0.6.3.

  14. SnapBuddy 0.6.3

    v0.6.3

    SnapBuddy 0.6.3 — blur and pixelate now export too.

    A small release. Updates itself from 0.6.0 or later; installs of 0.5.0 or earlier still need a manual reinstall.

    Burn in is complete

    ⬓ Burn in already wrote a shareable copy with your boxes, arrows, text and step numbers baked into the picture. It skipped blur and pixelate, and told you so. Now it does those too.

    They work differently from the rest, and better: a blur is recomputed on every frame rather than stamped once, so it tracks whatever moves underneath it. If you blur a credential on screen and the page scrolls, the blur follows the content instead of sitting in the wrong place.

    Everything else is unchanged from 0.6.2.

    Known issues

    • The webcam bubble is still untested against a real camera — there is no camera on the machine this is built on.
    • Recording more than one monitor at once is still not supported: one monitor, one window, or a region of one monitor.
    • Trim, GIF export and burn-in remain lightly used. If something misbehaves, %APPDATA%\com.snapbuddy.desktop\logs holds the current and previous run.
  15. SnapBuddy 0.6.2

    v0.6.2

    SnapBuddy 0.6.2 — annotate a recording, and choose when each mark appears.

    Updates itself from 0.6.0 or 0.6.1. Installs of 0.5.0 or earlier still need a manual reinstall — they predate the signing key rotation and cannot verify newer builds.

    Timed annotations on recordings

    Open a recording, pause where you want to make a point, and press ✏ Annotate here. You draw on the frame you are looking at, using the same tools as a screenshot — box, arrow, text, highlight, step number, redact.

    Each mark appears at that moment and stays for three seconds. Every annotation gets a row under the player showing its window, with in, out and always to retime it against the playhead, and × to remove it.

    Nothing is written into the video. The marks live with the card, so you can retime, move or delete them at any point — including long after the recording was made.

    Burn a copy for sharing

    ⬓ Burn in writes a separate …annotated.mp4 with the marks baked into the picture, for sending to someone who does not have SnapBuddy. Your original recording is untouched and stays editable.

    Blur and pixelate are not burned in yet — they read the pixels underneath, which needs different handling. The export tells you if it left any out rather than dropping them quietly.

    A log file, for when something goes wrong

    SnapBuddy now keeps a rolling log next to its settings, in %APPDATA%\com.snapbuddy.desktop\logs. Two files: the current run and the previous one, so a problem survives the restart that follows it. If the app ever stops responding, that folder is what to send.

    Fixes

    • The release tool reported a 38 MB installer as "0 MB". Cosmetic, but it sent people looking for a corrupt upload.

    Known issues

    • The webcam bubble is still untested against a real camera — there is no camera on the machine this is built on. It reports a missing or blocked camera rather than showing a black circle.
    • Recording more than one monitor at once is still not supported: one monitor, one window, or a region of one monitor.
    • Trim, GIF export and burn-in are new enough that they have had little hands-on use. If one misbehaves, the log folder above will have something useful in it.
  16. SnapBuddy 0.6.1

    v0.6.1

    SnapBuddy 0.6.1 — editing, shortcuts, and a fix that was hiding in plain sight.

    If you are on 0.6.0 this updates itself. Installs of 0.5.0 or earlier still need a manual reinstall — they predate the signing key rotation and cannot verify newer builds.

    Fixed: the annotation toolbar was missing its colours

    The colour swatches rendered as grey squares and the custom-colour picker stretched into a wide bar across the toolbar. Every inline style in the app was being silently discarded by the content security policy — the styles were correct, they just never reached the page. Recordings and screenshots were unaffected, but the editor looked broken, and it was.

    Trim the ends off a recording

    Open a recording and drag the two handles to set an in and out point. Preview plays just the selection. Trimming writes a new file and plays it back for you — the original is not touched until you press Replace original, and closing the window keeps the original.

    Export a recording as a GIF

    One button in the player. Takes the first 30 seconds, uses a per-clip colour palette so flat UI colours stay clean rather than turning to dithered mud.

    Rebindable shortcuts

    Settings now has a Shortcuts section covering all six global hotkeys — capture screen, region and window, start/stop recording, pause/resume, and copy last. Click a field and press the combination. If a key is already claimed by another application, SnapBuddy tells you which key it fell back to instead of leaving one that silently does nothing.

    Recording defaults

    Settings now remembers whether the countdown, system audio and microphone start switched on. Frame rate stays at 30 fps for now, so there is deliberately no control for it.

    Smaller things

    • Ctrl+Z / Ctrl+Y (and Ctrl+Shift+Z) undo and redo in the annotation editor.
    • Space pauses and resumes from the recording pill.
    • The custom-colour picker is now the eighth swatch in the row, instead of a separate control.
    • The webcam bubble no longer stalls for a second and a half when a recording stops.

    Known issues

    • The webcam bubble has not been tested against a real camera — there is no camera on the machine this was built on. It reports a missing or blocked camera in its own window rather than showing a black circle.
    • Recording more than one monitor at once is not supported yet; you can record one monitor, one window, or a region of one monitor.
  17. SnapBuddy 0.6.0

    v0.6.0

    SnapBuddy 0.6.0 — the recorder is here.

    This release must be installed manually. The update signing key was rotated after 0.5.0, so existing installs cannot verify this build and will not offer it. Uninstall 0.5.0 first, then run the installer below. Updates from 0.6.0 onward work normally.

    The installer is now ~49 MB (was 3.7 MB) because it ships an ffmpeg sidecar.

    Screen recording

    • Record a monitor, a single window, or a drag-selected region.
    • Pause and resume; the paused span is excluded from the recorded duration.
    • System audio (WASAPI loopback) and microphone as independent toggles, mixed to one track.
    • Webcam bubble: a draggable always-on-top preview, recorded as a separate track and composited into the final MP4 at whatever position you left it. Toggle it on or off mid-recording.
    • Crash-safe: an interrupted recording is rebuilt into a playable file on the next launch.
    • Hardware H.264 with automatic fallback (NVENC → QuickSync → AMF → Media Foundation).
    • Recordings land on the board as cards with a thumbnail, duration, and an in-app player.

    Capture and QA

    • Cursor and click telemetry is written alongside every recording as a .events.jsonl sidecar.
    • Every card carries an environment block — OS, app version, displays, locale, timezone.
    • Copy-for-AI bundles the note, status, and environment into one paste.

    Controls

    • Rebindable global hotkeys for capture, region, window, record, pause, and copy-last.
    • Pre-record picker, floating recording pill, and a tray menu.

    Fixes

    • Fixed a crash on every second recording in a session after any take that used the microphone.
    • Fixed recordings coming out silent when system audio was selected.
    • Fixed region recording, which never started and could strand a full-screen overlay.
    • Escape on the recording pill no longer discards the take.
    • Deleting a card now actually deletes the file, and cannot be tricked into deleting anything outside the recordings folder.
  18. SnapBuddy 0.5.0

    v0.5.0

    First self-updating build. From here SnapBuddy updates itself — no more manual reinstalls.

    Updates

    • Check for updates… in the tray right-click menu and in Settings.
    • A quiet check runs a few seconds after launch and always asks before installing anything. A failed check stays silent.
    • Updates are verified against an embedded signing key, install without a UAC prompt, and don't trigger SmartScreen. Only this first manual install does.

    Annotate fixes

    • Blur, pixelate and redact no longer erase annotations drawn before them — effects now always sit behind your boxes, arrows and text.
    • The selected colour is visible at last: the active swatch is ringed and a chip beside the picker shows the current colour. Typed shorthand hex like #abc now works.
    • Closing the editor with unsaved annotations asks Save / Discard / Cancel instead of silently discarding, and Escape is handled.
    • A stray click on the editor backdrop no longer wipes your work — a drag that ends past the canvas edge used to do exactly that.