Skip to content

Releases: caezium/burrow

Burrow 0.14.0

Choose a tag to compare

@github-actions github-actions released this 10 Aug 19:04
dfd5919

Burrow 0.14.0

The Touch ID helper now offers itself, and the reviewed clean says what it
removed instead of finishing silently.

Added

  • Burrow offers the privileged helper. The helper that lets admin
    operations authenticate with Touch ID shipped in 0.13.0 behind a single
    button in Settings ▸ Advanced, and nothing pointed anyone at it —
    upgraders learned about it from the release notes, fresh installs not at all.
    It is now offered the way Full Disk Access is: one banner over the window,
    informing rather than blocking. At most one notice shows at a time, and
    dismissing the helper notice is permanent, because the helper is a
    convenience rather than something Burrow needs to work.

Fixed

  • The reviewed clean reports what it removed. It deleted exactly what was
    ticked and then looked like it had done nothing. That path doesn't run the
    engine's cleaner — it deletes each reviewed path with find, which succeeds
    silently, so the result screen had no output to show: no items, no freed
    total, no done banner. It now reports the paths it was authorized to remove,
    grouped by category with their sizes summed, which is a statement of fact
    rather than optimism — the run only succeeds after confirming every planned
    path is gone.

Nothing changed about what the reviewed clean deletes, or about the checks it
passes before deleting: this release makes it visible, not different.

Burrow 0.13.0

Choose a tag to compare

@github-actions github-actions released this 10 Aug 17:41
ef4f873

Burrow 0.13.0

Headings that rendered as empty boxes now render as text, and Burrow's MCP
server speaks the 2026-07-28 spec — without dropping any older client.

This release is mostly repair. The visible half fixes three things that were
easy to hit; the larger half is security and reliability work on the paths that
delete files and run as root, which you should never notice.

Added

  • The scan tells you when it's done. A cache scan can run for minutes and
    used to end by just sitting there with a number. It now posts a completion
    notification saying what it found, honouring Settings ▸ Notify when long
    operations finish
    .
  • Two more agent tools. burrow_anomalies and burrow_agent_audit join the
    MCP surface.

Changed

  • MCP now speaks the 2026-07-28 revision, including its task and
    cancellation semantics. Older clients are unaffected: 2025-11-25 through
    2024-11-05 are still served, and a client that skips initialize entirely
    still works.

Fixed

  • Headings rendered as empty boxes. Geist and Geist Mono shipped as single
    variable fonts with only Regular registered, so every bold and semibold
    heading asked macOS to derive a weight at render time — and sometimes it
    produced no glyphs at all. Burrow now ships real static faces for every weight
    it uses.
  • One bad exit no longer disables the menu bar until macOS updates.
  • The window can be made smaller again — its minimum height is derived from
    the sidebar rather than hardcoded.
  • "Stop after current" now responds. The stop was always queued, but nothing
    on screen said so until the in-flight update finished.
  • The clean review no longer promises what closing an app can't deliver. An
    entry the scan refused was counted in "Close X to clean another N" even though
    no app was holding it — with no app named at all when it was the only locked
    entry.
  • A cancelled app update no longer blocks later update checks for the rest of
    the session.
  • Root operations can't interleave their output. stdout and stderr shared one
    line buffer, which could splice half a line from one stream onto the other.
  • Update archives are size-capped before they're kept or expanded.
  • Diagnostics reject more credential shapes before anything is uploaded.

Burrow 0.12.0

Choose a tag to compare

@github-actions github-actions released this 08 Aug 08:34
adf9f89

Burrow 0.12.0

Burrow's admin operations can now authenticate with Touch ID.

Until now every elevated action went through macOS's classic authorization
dialog, which is password-only by construction — it never offers Touch ID, and
it can't be cancelled safely. This release adds an optional signed helper that
replaces that path.

Added

  • Touch ID for admin operations. Install the helper in Settings ▸
    Advanced ▸ Privileged helper
    and Clean, Optimize, the admin scan previews,
    Flush DNS, Renew DHCP, and the Login Items list all authenticate through the
    system's normal prompt — which offers Touch ID where the hardware has it, and
    falls back to your password everywhere else.
  • The Login Items list is now complete. Reading it needs root, so
    previously macOS raised its own unexplained "sfltool wants to make changes"
    prompt and still returned only a partial list. Through the helper it's one
    prompt you recognise, and the full list.

What the helper can and cannot do

It is strictly opt-in, takes its own one-time macOS approval, and grants no
standing access — you authenticate for each operation you start.

It accepts seven fixed operations and builds every command line itself. There
is no field in its API for a path, a shell string, or an executable, so it
cannot be asked to run anything else. It runs the engine sealed inside the
signed app plus four Apple tools by absolute path, each as a separate process
with no shell involved. Only Burrow can talk to it: callers are pinned to the
app's bundle identifier and signing team by the system.

One honest caveat: the credential from your authentication stays valid for ten
seconds, because it has to survive the hop from the app to the helper. A second
operation begun inside that window won't prompt again. Full detail in
SECURITY.md.

Not installing it changes nothing — every operation keeps working exactly as it
does today, through the existing password prompt. You can remove the helper at
any time from Settings, or from System Settings ▸ General ▸ Login Items &
Extensions.

Changed

  • Flush DNS no longer runs a root shell. It previously elevated
    /bin/sh -c "dscacheutil -flushcache; killall -HUP mDNSResponder", handing a
    command string to a shell running as root. It's now two separate processes
    with fixed arguments.
  • Removed the "Touch ID for sudo" setting. It configured pam_tid for
    terminal sudo and never affected Burrow's own admin prompts, which is what
    people expected it to do. Those prompts are what the privileged helper now
    covers. Nothing already configured on your Mac is changed by removing it; to
    undo it yourself, run mo touchid disable.

Fixed

  • A failed elevated run could report "Done — caches cleared" when nothing had
    actually run. Failures now say so.

Burrow 0.11.2

Choose a tag to compare

@github-actions github-actions released this 04 Aug 17:34
c08de97

Burrow 0.11.2

A system-metrics, updater, and launch-reliability patch. This release corrects
CPU sampling, stops expected Sparkle conditions from looking like product
defects, gives AppKit a settled launch turn before creating the menu-bar item,
and makes sampled app hangs reliably reach the issue tracker.

Affected macOS 27 beta users: please install 0.11.2 and report the result
in #319. The exact Beta 4
compatibility guard remains in place, and the issue stays open until a
notarized build is verified on a Mac that reproduced the freeze.

Fixed

  • CPU usage now reflects a representative sampling interval. The bundled
    engine keeps a tick baseline across refreshes, samples before the other
    collectors fan out, and derives total usage from summed tick deltas. This
    removes the roughly doubled readings and coarse per-core fractions reported in
    #335. A cold one-shot status
    command can take about 600 ms longer; ongoing GUI sampling reuses its existing
    refresh interval and adds no wait. (#340)
  • Updater failures now mean what they say. Running from a disk image or a
    translocated location, ordinary network failures, and user cancellation remain
    measurable in PostHog without opening Sentry issues. Sparkle keeps ownership of
    its native move-to-Applications and scheduled-retry UI. Configuration,
    signature, installation, and unknown failures still create exactly one
    scrubbed Sentry diagnostic per cycle. (#339)
  • The normal menu-bar path no longer races the first AppKit launch turn.
    Burrow waits one second before creating its status item, then retains the
    existing 30-second stability window. The safeguard for macOS 27 Beta 4 build
    26A5388g remains exact-build-only; a later macOS build returns to the normal
    guarded path automatically. (#339)

Improved

  • App-hang evidence can no longer disappear at the Sentry bridge. Sampled
    hangs are collected into bounded weekly GitHub digests instead of being
    silently skipped. Cursor pagination reaches older unseen groups, full digests
    roll into numbered parts, and deferred groups remain eligible for the next
    run. (#339)
  • Launch and updater health now have explicit lifecycle outcomes. Fixed-name
    scheduled, stabilizing, and stable milestones include bounded app release,
    macOS build, launch phase, and status-item state, so future failures can be
    separated without collecting free text or user data.

Privacy

  • Telemetry remains optional, unlinked, and non-tracking. One Settings
    switch disables both PostHog analytics and Sentry diagnostics. Updater
    diagnostics contain fixed categories and bounded error domains/codes—never
    descriptions, URLs, response bodies, network names, paths, screen content, or
    files. The privacy manifest remains unchanged and accurate.

Security

  • Publishing still fails closed, including the external Homebrew tap. Before
    any release build begins, CI requires every signing, notarization, Sparkle,
    and tap credential, then proves the tap token with a reversible Git
    write. The tap credential is isolated from the engine checkout so a successful
    notarized release cannot fail at the final cask push because the wrong token
    was left in Git configuration.

Burrow 0.11.1

Choose a tag to compare

@github-actions github-actions released this 02 Aug 19:38
d482544

Burrow 0.11.1

A guarded-startup and diagnostics patch for the system-wide input freeze
reported on macOS 27 Beta 4. This release reduces the risky launch surface on
the affected build and records enough redacted state to isolate any remaining
failure without collecting screen contents or user files.

Affected macOS 27 beta users: please install 0.11.1 and report the result
in #319. The issue remains open
until the notarized release is verified on a Mac that reproduced the freeze.

Fixed

  • The affected macOS 27 beta gets a safer launch path. On Beta 4 build
    26A5388g, Burrow starts with a Dock icon instead of creating its menu-bar
    status item. The fallback is deliberately limited to that exact build and is
    retried after either Burrow or macOS changes. Manual update checks remain
    available even when automatic Sparkle startup is paused.
  • Interrupted launches recover one component at a time. A durable launch
    journal gives the status item and Sparkle separate 30-second stability
    windows. If launch is interrupted, the next run suppresses only the component
    whose window was active, shows a recovery alert, and offers a one-click
    redacted diagnostic report. (#321)

Improved

  • Sentry can now explain hangs that never become crashes. Release-health
    sessions, hang tracking, low-memory context, fixed-name sampled performance
    spans, and coarse launch/updater state cover the failure modes that a normal
    crash report misses. Outbound data is scrubbed fail closed, with no
    screenshots, view hierarchies, user paths, URLs, request bodies, or automatic
    UI, file, database, and network tracing.
  • PostHog analytics no longer bring an AppKit-facing SDK into startup. Burrow
    still sends the same opt-out semantic product, screen, and operation events to
    PostHog, but a small background HTTPS transport replaces posthog-ios. It has
    a bounded serialized retry queue and no session replay, autocapture, remote
    feature flags, AppKit timer, or main-thread disk I/O. Existing 0.11.0 anonymous
    identities are migrated once so release-to-release funnels remain accurate.
  • The first signed Sparkle successor passed a real update. An installed
    Developer ID-signed 0.11.0 copy found, downloaded, installed, and relaunched
    0.11.1 through Sparkle's native UI without Terminal or Homebrew. The updated
    app then passed strict signing, stapler, and Gatekeeper checks, completing
    #281.

Privacy

  • Telemetry remains optional, unlinked, and non-tracking. One Settings
    switch disables both PostHog analytics and Sentry diagnostics. The privacy
    manifest continues to declare Product Interaction, Other Usage, Crash,
    Performance, and Other Diagnostic data; this release adds no signing-specific
    telemetry and records no screen content.

Security

  • The release chain remains fail closed. The tag cannot publish unless the
    app is Developer ID signed, notarized, stapled, accepted by Gatekeeper, and
    both the update archive and appcast pass Sparkle signature verification.

Burrow 0.11.0

Choose a tag to compare

@github-actions github-actions released this 01 Aug 11:17
b79c077

Burrow 0.11.0

Burrow's first Developer ID signed and Apple-notarized release. Gatekeeper can
verify the app before first launch, and official tags now fail closed instead
of publishing an unsigned or un-notarized build.

Upgrading from 0.10.5 or earlier changes Burrow from an ad-hoc identity to a
stable Developer ID identity. macOS may ask you to grant Full Disk Access one
final time; subsequent signed updates keep the same identity.

Improved

  • Official downloads are trusted by Gatekeeper. The app and every bundled
    executable carry a Developer ID signature, hardened runtime, secure
    timestamp, and a stapled Apple notarization ticket. Direct-download users no
    longer need to strip quarantine or use the right-click Open workaround.
  • Full Disk Access has a stable identity. Developer ID gives macOS one
    consistent code identity across releases, so privacy grants can survive
    normal updates after the one-time transition from an older ad-hoc build.
  • Privacy disclosures match the app. The bundled privacy manifest declares
    Product Interaction, Other Usage, Crash, Performance, and Other Diagnostic
    data as unlinked and non-tracking. Analytics and crash reporting remain
    opt-out, and signing adds no telemetry.
  • Updates stay inside the trusted release chain. Burrow now uses Sparkle's
    native UI. Automatic checks remain on by default, but downloads and installs
    always wait for approval. Both Burrow-0.11.0.zip and appcast.xml carry
    Ed25519 signatures that are verified before publication and again on-device.
    This release proves that foundation; the first live 0.11-to-successor update
    remains tracked in #281.
  • The bundled engine no longer rewrites the app. It updates only with a
    signed Burrow release, preserving the Developer ID resource seal. Source
    builds using an external engine still expose its manual updater.

Security

  • A tag cannot publish a partially trusted build. The release stops before
    publication unless signing, notarization, ticket stapling, strict code-sign
    verification, Gatekeeper assessment, the Sparkle keypair match, and both
    update signatures all succeed. A new release remains a draft until both
    assets upload; a mismatched rerun fails signature validation closed.
  • Homebrew preserves Apple's security checks. Only after the notarized
    artifact passes every gate does the workflow remove Burrow's legacy
    quarantine bypass and unsigned warning from the live cask; it also marks the
    cask auto_updates true because Sparkle owns future in-app updates.
    (#312)

Burrow 0.10.5

Choose a tag to compare

@github-actions github-actions released this 25 Jul 10:36
c4939ff

Thanks for 1k stars btw! Bigger updates coming soon!

Burrow 0.10.5

Burrow's MCP tools, tuned against real agent transcripts. We audited how AI
agents actually used the tools in the wild — what they called, where they
stalled, and when they gave up and fell back to raw du/df — and fixed what
tripped them up (#302).

Improved

  • One burrow_analyze call now maps disk hotspots. The engine reports one
    directory level per run, which forced agents into a call per directory (a
    real session made 15 in a row). analyze gains depth (descend into the
    largest subdirectories), limit, and min_size, emits compact JSON instead
    of 35–60 KB pretty-printed blobs, and always reports what it pruned
    (entries_omitted / omitted_bytes, partial: true when the descent hits
    its time budget). (#303)
  • The slow tools now say they're slow. analyze, clean, purge, and
    installer descriptions warn that big scans take minutes, so agents scope to
    a specific folder instead of hanging past their client's patience and falling
    back to shell commands. The agent docs and the burrow-system-tools skill
    now lead with the low-disk emergency playbook — the pattern that actually
    fires in practice. (#303)

Fixed

  • Killed runs no longer fail silently. A burrow_clean that hit its time
    limit rendered as {"exit_code": 9, "output": ""} — nothing an agent could
    act on. Timed-out actions (and analyze) now return timed_out: true plus a
    hint. (#303)
  • burrow_cleanup_history explains itself. When engine history is
    unavailable, the error now points at burrow_info to check whether Burrow is
    recording at all. (#303)

Burrow 0.10.2

Choose a tag to compare

@github-actions github-actions released this 25 Jul 07:42
d6fc39a

Thanks for 1k stars btw! Bigger updates coming soon!

Burrow 0.10.2

A fix release. Three crashes are gone — the menu-bar popover, the streaming
task report, and a nil-font HUD metric — and the in-app updater no longer
silently reopens the same build when Homebrew won't upgrade in place.

Fixes

  • No more menu-bar popover or streaming-report crashes. Two EXC_BAD_ACCESS
    faults inside SwiftUI's view graph — one in the menu-bar popover header
    button, one in the live task report/ticker as a job streamed — are fixed by
    keeping those view subtrees structurally stable across snapshot and scroll
    updates instead of restructuring them mid-update.
    (#299)
  • The menu-bar metric no longer crashes on a nil font.
    NSFont.monospacedSystemFont is declared non-null but can transiently return
    nil under memory pressure; that null reached CoreText and crashed at draw
    time (Sentry BURROW-8Y). The metric widgets now fall back to the plain system
    font — cosmetic at worst, never a crash.
    (#290)
  • In-app update actually updates. When the cask "cannot be upgraded as-is,"
    Homebrew prints a warning but exits 0 — so the one-click updater reported
    success and reopened the same build. It now detects the refusal by message
    and runs the brew reinstall --force Homebrew recommends.
    (#287)

Burrow 0.10.1

Choose a tag to compare

@github-actions github-actions released this 13 Jul 19:07
8558e0d

Burrow 0.10.1

Three new panes, and Duplicates finally works on a clean Mac. This release
carries everything since 0.10.0 — the Leftovers, Similar Photos, and Network
panes, plus a batch of menu-bar HUD and sidecar fixes.

New panes

  • Leftovers. Surface the files an app leaves behind after you delete it —
    caches, preferences, application support, launch agents — and clear the
    orphans. (#273)
  • Similar Photos. Cluster visually-similar images — near-duplicate
    screenshots, burst shots, re-exports — by perceptual hash. Read-only: review
    the sets, reveal anything in Finder.
    (#273)
  • Network. Per-app bandwidth, so you can see what's talking to the internet.
    (#273)

Fixes

  • Duplicates works out of the box. The fclones sidecar it relies on is now
    bundled inside the app, so there's no more "fclones not found" on a clean Mac.
    (#278)
  • Similar Photos is honest about HEIC. A folder of iPhone photos — HEIC,
    which the scanner can't decode yet — now says "N HEIC couldn't be read"
    instead of a bare, misleading empty result.
    (#283)
  • Menu-bar HUD polish. The popover no longer drifts sideways and clips its
    content, and the tool strip wraps into a grid instead of overflowing.
    (#275,
    #277)
  • No more ~2-second hang when opening the window or switching panes — tool
    panes now mount lazily. (#274)
  • Homebrew-installed helpers resolve. A Finder-launched app now finds tools
    on /opt/homebrew/bin on its PATH, matching what you see in a terminal.
    (#279)

Burrow 0.10.0

The conductor release. Burrow now ships its own command layer — the bundled
burrow CLI conducts the bundled engine with one stable JSON contract — plus a
brand-new Duplicates pane, and fixes for the sudo dialog, uninstall UX, and
Tune-Up display bugs you reported.

New: Duplicates

  • Find what you've stashed twice. A new sidebar pane scans any folder for
    byte-identical copies. Review them checklist-style — every group preselects
    all but one copy, and always keeps at least one — then Move to Trash
    (recoverable) or Reclaim via APFS clones, which frees the space without
    deleting a single file. (#260,
    #264,
    #266)

The conductor

  • Burrow bundles burrow. A universal (Apple Silicon + Intel) conductor
    CLI ships inside the app and drives the bundled engine — disk analysis,
    status, history, clean, and optimize all route through it. Burrow now works
    fully out of the box with no Homebrew engine install, agents and the GUI
    share one command surface, and every path falls back to the direct engine so
    nothing regresses. (#251,
    #261,
    #265)
  • Windows groundwork rides along: the Windows app bundles burrow.exe and
    parses the same envelope contract.
    (#252)

Fixes

  • The admin password dialog appears again. Uninstalling a root-owned app
    (Zoom et al.) from the GUI failed with "Admin access denied" because the
    engine permission-tested /dev/tty instead of opening it — GUI runs now get
    the proper macOS password prompt.
    (#253)
  • Failed uninstalls are actionable. The Software pane keeps your list and
    selection and shows the engine's actual error, instead of silently rescanning
    and pinging only the HUD.
    (#254)
  • Tune-Up sizes render clean — no more raw [0;31m color codes around the
    reclaimable amount. (#257)
  • Analyze can't freeze on cache-heavy folders — per-child scans are
    timeout-bounded and show partial results instead of stalling; the menu-bar
    popover no longer rubber-bands into empty space.
    (#256)

For agents

  • 7 new read-only MCP tools through the bundled conductor — duplicates,
    orphaned files, per-app network usage, cleaning-rule previews, trash
    sentinel, app-slim check, similar photos — 21 read-only tools total.
    (#258)

Windows preview

  • Downloadable at last: this release ships BurrowWin-0.10.0-win-x64.zip
    the unpackaged Windows app with the burrow.exe conductor and the engine
    bundled (unzip and run BurrowWin.exe; Windows 10/11, .NET 8 runtime).
  • The conductor, on Windows too: agent-triggered clean/optimize route
    through burrow.exe with the same envelope contract the macOS app speaks.
    (#252)
  • burrow.exe grew real Windows powers this cycle: Recycle-Bin safe
    delete (never hard-deletes), guarded Bulk Crap Uninstaller uninstalls,
    czkawka-backed duplicate + similar-photo discovery, provider-aware
    OneDrive/Cloud Files eviction, and per-app network attribution via the
    native IP Helper API.

Also

  • Per-metric menu-bar text sizing with stable widths, and flipped net in/out
    ordering. (#245)
  • The HUD popover re-pins itself when the menu bar auto-hides after opening.
    (#223)
  • Self-update runs brew update before upgrading, so it actually sees new
    versions. (#243)

Burrow 0.9.2

A stability and battery release — several fixes to Cleanup, Analyze, and the
menu bar, plus a round of performance work that makes Burrow noticeably lighter
when it's sitting idle in the background.

Fixes

  • Purge works again. Cleanup → Project build artifacts was refusing every
    removal ("Couldn't confirm the selection safely") because the engine renders
    its list with items pre-selected — Burrow now toggles the difference so your
    selection actually applies. (#231)
  • Analyze no longer floods the machine with engine processes. Superseded
    scans are cancelled and concurrency is capped, so opening or refreshing the
    Analyze tab won't peg your CPU with a pile of analyze-go processes.
    (#232)
  • Camera/mic in-use indicator is honest. It no longer false-lights from
    virtual audio/video devices (loopback, Camo, Teams, …) — e.g. playing audio
    through a virtual device — and clears reliably when capture ends.
    (#234)
  • Menu-bar popover stays put instead of flying to a screen edge, and sizes
    to its own display on multi-monitor setups.
    (#223)
  • Fewer spurious "App Hang" reports.

Performance & battery

  • The metrics engine stops hammering the sensors when nothing is on screen.
    It used to read the SMC temperature/fan and GPU counters ~once a second for the
    whole time the app was running; those reads are now cached, and idle stream
    frames are skipped when no window is open — a real battery win.
    (#235, #237)
  • Bounded Analyze memory (walk/icon caches now evict).
    (#236)
  • System probes (Doctor, disk SMART, Time Machine) are timeout-guarded so a
    stuck system tool can't hang the pane; Doctor results are cached across reopens.
    (#239)
  • Network-usage views share one sample instead of each running a 1-second scan.
    (#238)
  • Smaller idle-timer and date-formatter cleanups.
    (#240)

Under the hood

  • Dead-code prune; the Homebrew cask no longer depends on a system mole
    (the engine has been bundled since 0.9.0).

Burrow 0.9.1

A quick fix for Intel Macs. In 0.9.0 the newly-bundled engine binaries were
built Apple-Silicon-only, so on Intel (x86_64) Macs Burrow could hang at
initialization (#221). The engine
(status-go / analyze-go) is now a universal binary (arm64 + x86_64) and
runs natively on both architectures. No other changes from 0.9.0.


Burrow 0.9.0

Burrow's biggest release. It now bundles its own engine — no separate mo
install — and adds an Activity-Monitor-class process inspector with a CPU
watchdog, a Get Online connectivity companion, a security-aware Doctor,
and smarter Clean, Software, Analyze, and Optimize across the board. Still
local-first, still free.

Engine

  • Burrow bundles its own engine now. The app ships an MIT-licensed
    burrow-engine (a fork of Mole mo at its last MIT release) inside
    Burrow.app and runs it directly — so a fresh install needs no separate
    brew install mole
    . Burrow prefers the bundled engine, then an installed
    burrow-engine, then a legacy system mo for existing setups. (#218)

Process inspector (Status)

  • Per-process inspector — click any process for a structured panel: identity
    (path, code signature, Mach-O architecture), live CPU/memory, runtime, and the
    process's open network connections.
  • Process tree — the parent/child hierarchy around any process.
  • CPU watchdog — set per-process CPU thresholds and get notified when
    something runs hot, with an ed...
Read more

Burrow 0.10.0

Choose a tag to compare

@github-actions github-actions released this 12 Jul 07:29
a8074d2

Burrow 0.10.0

The conductor release. Burrow now ships its own command layer — the bundled
burrow CLI conducts the bundled engine with one stable JSON contract — plus a
brand-new Duplicates pane, and fixes for the sudo dialog, uninstall UX, and
Tune-Up display bugs you reported.

New: Duplicates

  • Find what you've stashed twice. A new sidebar pane scans any folder for
    byte-identical copies. Review them checklist-style — every group preselects
    all but one copy, and always keeps at least one — then Move to Trash
    (recoverable) or Reclaim via APFS clones, which frees the space without
    deleting a single file. (#260,
    #264,
    #266)

The conductor

  • Burrow bundles burrow. A universal (Apple Silicon + Intel) conductor
    CLI ships inside the app and drives the bundled engine — disk analysis,
    status, history, clean, and optimize all route through it. Burrow now works
    fully out of the box with no Homebrew engine install, agents and the GUI
    share one command surface, and every path falls back to the direct engine so
    nothing regresses. (#251,
    #261,
    #265)
  • Windows groundwork rides along: the Windows app bundles burrow.exe and
    parses the same envelope contract.
    (#252)

Fixes

  • The admin password dialog appears again. Uninstalling a root-owned app
    (Zoom et al.) from the GUI failed with "Admin access denied" because the
    engine permission-tested /dev/tty instead of opening it — GUI runs now get
    the proper macOS password prompt.
    (#253)
  • Failed uninstalls are actionable. The Software pane keeps your list and
    selection and shows the engine's actual error, instead of silently rescanning
    and pinging only the HUD.
    (#254)
  • Tune-Up sizes render clean — no more raw [0;31m color codes around the
    reclaimable amount. (#257)
  • Analyze can't freeze on cache-heavy folders — per-child scans are
    timeout-bounded and show partial results instead of stalling; the menu-bar
    popover no longer rubber-bands into empty space.
    (#256)

For agents

  • 7 new read-only MCP tools through the bundled conductor — duplicates,
    orphaned files, per-app network usage, cleaning-rule previews, trash
    sentinel, app-slim check, similar photos — 21 read-only tools total.
    (#258)

Windows preview

  • Downloadable at last: this release ships BurrowWin-0.10.0-win-x64.zip
    the unpackaged Windows app with the burrow.exe conductor and the engine
    bundled (unzip and run BurrowWin.exe; Windows 10/11, .NET 8 runtime).
  • The conductor, on Windows too: agent-triggered clean/optimize route
    through burrow.exe with the same envelope contract the macOS app speaks.
    (#252)
  • burrow.exe grew real Windows powers this cycle: Recycle-Bin safe
    delete (never hard-deletes), guarded Bulk Crap Uninstaller uninstalls,
    czkawka-backed duplicate + similar-photo discovery, provider-aware
    OneDrive/Cloud Files eviction, and per-app network attribution via the
    native IP Helper API.

Also

  • Per-metric menu-bar text sizing with stable widths, and flipped net in/out
    ordering. (#245)
  • The HUD popover re-pins itself when the menu bar auto-hides after opening.
    (#223)
  • Self-update runs brew update before upgrading, so it actually sees new
    versions. (#243)