Repository navigation
v0.4.0
This release gives you control over what a sandbox can reach and see: network
allow/deny rules, extra mounts, port forwards and per-sandbox secrets, all
configurable from .firebrick.yml or the new fbk subcommands. Sandboxes also
come up ready to work, with Docker and the project's mise tools installed.
Breaking changes
fbkdkeeps its microsandbox runtime, images, database and sandboxes in
$XDG_STATE_HOME/firebrick/msb(~/.local/state/firebrick/msb) instead of
~/.microsandbox, so a separately installedmsbcan no longer break it.
Sandboxes created by earlier versions stay in~/.microsandboxand no longer
show up infbk ls; recreate them after upgrading. Images are pulled again on
first start. A non-emptyMSB_HOMEstill takes precedence. (#101)
Features
fbk initwrites a default.firebrick.ymlfor the current directory. (#89)- Restrict a sandbox's outgoing traffic with a
networksection in
.firebrick.yml: withenforce: true, only hosts, domains, IPs and CIDR
ranges inalloware reachable, anddenyrules win. Blocked HTTP and HTTPS
requests get a page that names the host. (#92) fbk network allow,fbk network denyandfbk network policy enable|disablechange the rules of an existing sandbox and update
.firebrick.yml. (#97)fbk network disableremoves a sandbox's network device entirely;fbk network enablerestores it. (#103)- Mount extra host directories into the sandbox with a
mountssection in
.firebrick.yml, optionally read-only. Host paths may start with~or
~user. (#95) - Forward host ports to servers in the sandbox with a
portssection in
.firebrick.yml, or live withfbk port forward <host>:<guest>andfbk port rm. (#96, #99) - Secrets can be scoped to one sandbox with
fbk secret set --scope sandbox; a
sandbox-scoped secret overrides the global one with the same name in that
sandbox only. (#100) xdg-openand$BROWSERinside the sandbox open http and https URLs in the
host browser, for example for device login flows. Local addresses are refused,
and enforced network rules apply. (#104)fbkshows a progress bar while it pulls the sandbox image. (#102)- The
firebrick-baseimage includes Docker, and every sandbox gets a dedicated
disk for/var/lib/docker, sized withvolumes.dockerin.firebrick.yml.
(#83, #84) fbkdtrusts the workspace's mise config and runsmise installwhen a
sandbox starts, so the project's tools are ready. Setmise: falsein
.firebrick.ymlto turn it off. (#85)
Fixes
fbk startandfbk runrefuse to reuse a sandbox that mounts a different
working directory, instead of silently giving the agent access to another
project's files when two directories hash to the same name. (#87)
What's Changed
- feat(daemon): give every sandbox a dedicated ext4 disk for /var/lib/docker by @wmeints in #83
- feat(images): install Docker from Docker's apt repository in firebrick-base by @wmeints in #84
- Install the workspace's mise tools when a sandbox starts by @wmeints in #85
- test(daemon): show the daemon's logs in the vm-tests output by @wmeints in #86
- feat(cli): refuse to reuse a sandbox that mounts another directory by @wmeints in #87
- feat(cli): add fbk init to write a default .firebrick.yml by @wmeints in #89
- Enforce network allow/deny rules from .firebrick.yml by @wmeints in #92
- Forward host ports to the sandbox from .firebrick.yml by @wmeints in #96
- feat(spec): mount extra host directories into the sandbox from .firebrick.yml by @wmeints in #95
- Add fbk network commands to change an existing sandbox's egress rules by @wmeints in #97
- Add herdr skill for controlling Herdr panes and agents by @wmeints in #98
- Add fbk port forward and fbk port rm that apply live and update .firebrick.yml by @wmeints in #99
- Add a per-sandbox scope for secrets by @wmeints in #100
- feat(daemon): keep the microsandbox home in firebrick's XDG state directory by @wmeints in #101
- Show image pull progress when fbk creates a sandbox by @wmeints in #102
- Add fbk network enable/disable to turn a sandbox's network off by @wmeints in #103
- test(daemon): let vm-tests runs share the microsandbox home safely by @wmeints in #106
- feat(daemon): open http/https URLs from the sandbox in the host browser by @wmeints in #104
- feat(agents): add a test-reviewer agent for test quality and test gaming by @wmeints in #108
- Install protoc through mise by @wmeints in #110
- feat(agents): add an implementation-reviewer agent and a review-branch workflow by @wmeints in #111
- Add gh and Claude Code to the mise toolset and pin all tool versions by @wmeints in #112
- docs: add the website design mockups by @wmeints in #113
- Add a create-release skill that releases through a version bump PR by @wmeints in #114
- Set up the Astro website with its checks and reviewers by @wmeints in #115
- chore: release v0.4.0 by @wmeints in #116
Full Changelog: v0.3.0...v0.4.0