Skip to content

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 18:28
· 44 commits to main since this release
314797c

This release runs fbk and fbkd natively on Windows, shares the host
clipboard with a sandbox when you opt in, and adds fbk upgrade and network
presets to keep sandboxes current and enforced networks easy to set up. It also
closes several paths where a workspace or guest output could reach the host.

Windows support is experimental for now. It builds on microsandbox's
preview support for the Windows Hypervisor Platform, and the Windows
integration tests don't run in CI, so expect rough edges. You can still run
the Linux release in WSL 2.

Breaking changes

  • fbk init no longer pins image in the new .firebrick.yml, so new
    sandboxes follow the release's firebrick-base image. Existing specs keep
    their image; remove it or point it at the new version to pick up updates.
    (#174)

Features

  • fbk and fbkd run natively on Windows 11 x64 through the Windows Hypervisor
    Platform (experimental, see above). The daemon keeps its data in
    %LOCALAPPDATA%\firebrick, and the generated SSH config works with Windows'
    OpenSSH. (#211)
  • The release has an x86_64-pc-windows-msvc zip archive with fbk.exe and
    fbkd.exe, so Windows users no longer build from source. The binaries run
    without the Visual C++ Redistributable. (#215)
  • clipboard: true in .firebrick.yml shares the host clipboard with the
    sandbox, both ways: programs can paste text and PNG images with wl-paste or
    xclip, and copy with wl-copy or xclip -i. It's off by default and needs
    your approval like mounts and network. (#193, #195)
  • fbk upgrade [NAME] recreates a sandbox from the latest version of its image
    and keeps its name, workspace, mounts, ports, network rules and secrets.
    Docker data in the sandbox isn't carried over. (#172)
  • fbk start, fbk run, fbk network and fbk port warn when a sandbox runs
    an older firebrick-base image, and point to fbk upgrade. (#174)
  • fbk network presets show and fbk network presets apply add grouped allow
    rules for coding agents and toolchains, such as claude, copilot, github,
    node, python and rust, to an enforced network. (#173)
  • fbk start shows the progress of mise install instead of staying silent
    while the tools install. (#171)

Fixes

  • Ctrl+C in a sandbox terminal now stops forked processes, such as the JVM of
    mvn quarkus:dev, and exit ends the session. (#167)
  • fbk ls no longer shows a paused sandbox as running on a busy host, and fbk network and fbk upgrade no longer recreate a paused sandbox. A sandbox
    whose runtime doesn't answer is listed as Unknown. (#209)
  • Escape sequences from guest output and from .firebrick.yml diagnostics are
    removed whole, so they can't change the host terminal or clipboard, and fbkd
    rejects invalid image references in the spec. (#182, #208)
  • fbkd rejects sandbox names that aren't a single path component before it
    uses them in host paths. (#207)
  • fbk refuses a .firebrick.yml that is a symlink or not a regular file
    instead of reading or writing through it. (#205)
  • fbkd writes ~/.ssh/config atomically, so an interrupted write can't leave
    it truncated. (#204)
  • On macOS, fbkd keeps its network log sockets in a private directory. (#183)
  • The bundled rustls is updated to fix RUSTSEC-2026-0346 to 0349. (#210)

What's Changed

  • Give guest terminals to the agent group so Ctrl+C stops forked processes by @wmeints in #167
  • docs(website): add a system requirements section to the installation page by @wmeints in #168
  • docs(website): explain how to install a coding agent in a sandbox by @wmeints in #169
  • docs(website): explain how to reach hosts on the local network by @wmeints in #170
  • Show mise install progress when fbk starts a sandbox by @wmeints in #171
  • feat(cli): add grouped network presets with fbk network presets show/apply by @wmeints in #173
  • Add fbk upgrade to recreate a sandbox from the latest or spec image by @wmeints in #172
  • Warn when a sandbox runs an older firebrick-base image by @wmeints in #174
  • fix(test): make the mise progress vm-test independent of stdout/stderr order by @wmeints in #179
  • fix(test): make the vm-tests pass on macOS despite the /var and /tmp symlinks by @wmeints in #178
  • Update Cargo.lock dependencies by @wmeints in #180
  • Give fbkd a private network log socket directory on macOS by @wmeints in #183
  • ci: pin actions to commit SHAs and lock mise tool checksums by @wmeints in #185
  • fix(utils): remove whole terminal escape sequences in strip_control by @wmeints in #182
  • Log in to the agent from the sandbox in the quickstart by @wmeints in #186
  • ci(release): gate publishing behind a release environment by @wmeints in #187
  • ci(audit): check the Cargo dependencies for RustSec advisories daily by @wmeints in #191
  • build(mise): replace the cargo aliases with mise tasks by @wmeints in #194
  • Add an opt-in clipboard setting that pastes from the host by @wmeints in #193
  • Copy from the sandbox to the host clipboard by @wmeints in #195
  • docs(security): add a threat model for the security reviewer by @wmeints in #201
  • Add a security policy and a docs page for reporting vulnerabilities by @wmeints in #203
  • fix(daemon): write ~/.ssh/config atomically by @wmeints in #204
  • fix(cli): refuse a symlinked .firebrick.yml instead of writing through it by @wmeints in #205
  • Validate the sandbox name before fbkd uses it in host paths by @wmeints in #207
  • chore(image): pin the apt signing keys and the Ubuntu base image by digest by @wmeints in #206
  • Bump rustls to 0.23.46 to fix RUSTSEC-2026-0346 to 0349 by @wmeints in #210
  • feat: run fbk and fbkd natively on Windows by @wmeints in #211
  • Don't report a paused sandbox as running when microsandbox's pause probe times out by @wmeints in #209
  • fix(spec): strip escape sequences from spec diagnostics and validate image references by @wmeints in #208
  • Package the Windows binaries in the release by @wmeints in #215
  • chore: release v0.8.0 by @wmeints in #216

Full Changelog: v0.7.0...v0.8.0