Repository navigation
v0.8.0
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 initno longer pinsimagein the new.firebrick.yml, so new
sandboxes follow the release'sfirebrick-baseimage. Existing specs keep
theirimage; remove it or point it at the new version to pick up updates.
(#174)
Features
fbkandfbkdrun 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-msvczip archive withfbk.exeand
fbkd.exe, so Windows users no longer build from source. The binaries run
without the Visual C++ Redistributable. (#215) clipboard: truein.firebrick.ymlshares the host clipboard with the
sandbox, both ways: programs can paste text and PNG images withwl-pasteor
xclip, and copy withwl-copyorxclip -i. It's off by default and needs
your approval likemountsandnetwork. (#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 networkandfbk portwarn when a sandbox runs
an olderfirebrick-baseimage, and point tofbk upgrade. (#174)fbk network presets showandfbk network presets applyadd grouped allow
rules for coding agents and toolchains, such asclaude,copilot,github,
node,pythonandrust, to an enforced network. (#173)fbk startshows the progress ofmise installinstead 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, andexitends the session. (#167) fbk lsno longer shows a paused sandbox as running on a busy host, andfbk networkandfbk upgradeno longer recreate a paused sandbox. A sandbox
whose runtime doesn't answer is listed asUnknown. (#209)- Escape sequences from guest output and from
.firebrick.ymldiagnostics are
removed whole, so they can't change the host terminal or clipboard, andfbkd
rejects invalid image references in the spec. (#182, #208) fbkdrejects sandbox names that aren't a single path component before it
uses them in host paths. (#207)fbkrefuses a.firebrick.ymlthat is a symlink or not a regular file
instead of reading or writing through it. (#205)fbkdwrites~/.ssh/configatomically, so an interrupted write can't leave
it truncated. (#204)- On macOS,
fbkdkeeps its network log sockets in a private directory. (#183) - The bundled
rustlsis 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