Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.53.0 (2026-07-24)

Features

  • composer-resolver: alias version-like vcs branches to x-dev (#551) (21469b6)
  • composer-resolver: warn when a declared repository is unsupported (#553) (807df5b)
  • login: default bougie login (no URL) to Bougie Cloud (#550) (dda7621)
  • login: discover the registry endpoint via a DNS SRV record (#549) (5349f5c)
  • php: render php install output like uv's python install (#552) (c953309)
  • tunnel: extract the wire protocol into a shared bougie-tunnel-protocol crate (#545) (102c402)

0.52.0 (2026-07-21)

Features

  • add bougie doctor — team-aware setup checkup (#529) (3ecfb20)
  • ci: add bougie ci init — generate parity CI from the project (#541) (21462be)
  • composer-resolver: install packages from a git source (#538) (fe3dc0d)
  • composer-resolver: resolve versions from a git (vcs) repository (#540) (c24272d)
  • composer-resolver: typed, actionable errors for git (vcs) failures (#543) (fef1934)
  • login: add bougie login --ci — zero-secret CI login via OIDC JWT (#539) (d906d0e)
  • make: fold team-shared recipe tasks from the manifest (#536) (6c19493)
  • services: relax dev MariaDB/MySQL durability by default (#531) (ccee3bf), closes #482
  • share: make Magento base_url request-relative via an injected module (#542) (bce87b1)

Bug Fixes

  • server: arm filesystem watches for projects registered while running (#534) (6bd6ec4)
  • sync: stop seeding a global composer shim on PATH (#544) (f605cc5)

0.51.0 (2026-07-18)

Features

  • composer-resolver: install native tar dists (#523) (f5dfc7c), closes #420
  • db: snapshot-awareness guards — db status staleness + reseed confirm (#526) (3858d37)
  • server: set opcache.revalidate_freq=0 in the dev pool (#524) (73467fa)
  • services: grant mariadb tenants a scratch-database namespace (#530) (2b7abc6), closes #480
  • share: add bougie-tunnel outbound relay client (#519) (884cf7a)
  • share: add the bougie share command (#525) (3911ff5)

Bug Fixes

  • composer: dump-autoloader inherits the installed tree's dev mode (#528) (7329b4e), closes #499
  • patches: defer patches sourced from a vendor package (#527) (48fdce7), closes #421

0.50.0 (2026-07-18)

Features

  • db: add --profile to db pull/refresh — pick a data-profile snapshot (#517) (afab667)
  • db: add bougie db get --source <name> from the team manifest (#509) (dd5d19e)
  • db: add bougie db get — on-demand prod row-graph into the local DB (#508) (3dc4c72)
  • recipe: seed the DB from the team snapshot instead of setup:install (#506) (54cf613)
  • telemetry: record a successful self-update as an update event (#513) (a420843)
  • tool: let bgx/tool run select which bin to run (#514) (0dc61e4)

Bug Fixes

  • daemon: inherit bougied's PATH for rabbitmqctl probes on non-FHS hosts (#511) (f5691fa)
  • patches: accept cweagans array-of-strings patch format (#520) (8dfcc0a), closes #422

0.49.0 (2026-07-11)

Features

  • db: add bougie db pull to fetch prod-shaped snapshots from the registry (#500) (8a1d969)
  • db: default bougie db pull target from the team manifest snapshot (#502) (4c2b11c)
  • db: make bougie db seed one-shot + add bougie db refresh (#504) (37a3569)
  • services: multi-instance services + real multi-version mysql (integrate onto main) (#492) (33948ec)
  • service: surface all catalog versions in service catalog (#498) (fc24f27)
  • sync: source the repo overlay from the git-remote-keyed team manifest (#495) (80bc69d)
  • telemetry: record clap parse failures as the usage outcome (#494) (52e25e5)

Bug Fixes

  • services: stop restore from spawning the server twice on upgrade (#503) (15f6683)

0.48.0 (2026-07-10)

Features

  • composer: install composer-plugin package files (hooks stay skipped) (#491) (6b0f6b9)
  • diagnose: failure ring with repeat-collapsing replaces the single slot (#490) (a42e49f)

Bug Fixes

  • composer: accept the PHP empty-array form in PSR namespace maps (#489) (59d9269)

0.47.0 (2026-07-09)

Features

  • errors: categorize command failures — chain-walk + typed no-project/config/service (#485) (0f79c15)

0.46.1 (2026-07-07)

Bug Fixes

  • composer: validate finds require-dev deps hoisted into prod lock section (#474) (6983608)

0.46.0 (2026-07-07)

Features

  • diagnose: service-aware reports reviewed in $EDITOR, markdown wire v2 (#472) (68323cc)

0.45.0 (2026-07-06)

Features

  • run: lift CLI memory_limit to -1 for project PHP runs (#471) (c813ab0)

Bug Fixes

  • composer-resolver: apply patches before the magento2-base deploy (#468) (7f3bdec)
  • patches: declared patch files are skipped by the patches/ scan (#470) (5e91f4f)

0.44.0 (2026-07-06)

Features

  • server: warn when DNS blocks *.bougie.run loopback answers (#464) (5de12e2)
  • service: credentials subcommand for tenant connection info (#462) (b3aca75)
  • tool: prefetch + Sigstore-verify native binaries via composer extra (#467) (5a04bfb)

Bug Fixes

  • server: self-escalate hosts apply instead of hinting sudo bougie (#466) (b6ef2ac)
  • tool: forward leading tool args past clap in tool-exec (#465) (a92fca7)

0.43.2 (2026-07-05)

Bug Fixes

  • starter: make --starter laravel work end-to-end (#460) (e1442e7)

0.43.1 (2026-07-05)

Bug Fixes

  • daemon: namespace service cgroups by home so concurrent daemons don't reap each other's services (#457) (a3d18c3), closes #456
  • recipe: skip rabbitmq + amqp wiring when the Amqp module is absent (#459) (dc6ac52)
  • services: capture bougied stderr to state/bougied.log (#455) (2bef601)

0.43.0 (2026-07-04)

Features

  • cli: rename 'bougie services' to 'bougie service' (#453) (0d7e5d6)

0.42.0 (2026-07-04)

Features

  • script: uv-style single-file PHP scripts with inline dependencies (#429) (b8ea30a)
  • tool: project-aware bgx runs, derived extensions, CLI memory-limit lift (#446) (a8fd293)

0.41.0 (2026-07-04)

Features

  • telemetry: close the plan's schema gaps; retire TELEMETRY_PLAN.md (#449) (bb0ead3)
  • telemetry: docker images default BOUGIE_TELEMETRY=off (overridable) + Windows flush smoke (#450) (6e2665b)
  • telemetry: opt-in anonymous telemetry, crash reports, and bougie diagnose (#447) (8d094f1)
  • telemetry: wire the perf fields — download_bytes, cache_hit_pct, autoload_ms (#451) (acf2d23)

0.40.0 (2026-07-03)

Features

  • services: protocol-aware health checks, at startup and continuously (#415) (23e26fd)

0.39.0 (2026-07-03)

Features

  • services: tenant-wired client tools (mysqldump, redis-cli, rabbitmqctl, …) (#444) (9a7f260)

Bug Fixes

  • server: tolerate slow opcache.preload at pool spawn (#437) (61cc936)

0.38.1 (2026-07-02)

Bug Fixes

  • four tier-1 correctness/safety bugs (extraction, autoloader, cache key, license) (#432) (9a7c619)
  • server: surface php-fpm startup errors and stop orphaning workers (#438) (6bd9701)
  • tier-2 service-supervision correctness (grace window, restart, rotation, sandbox, flock) (#436) (d1b2abe)

0.38.0 (2026-07-02)

Features

  • composer: support repository dist mirrors (Private Packagist) (#439) (7b0f2ff)

0.37.0 (2026-07-02)

Features

  • patches: apply multi-package top-level patches at the project root (#430) (33e1124)
  • php-discovery: only use system PHP for one-off runs by default (#433) (a934e49)

Bug Fixes

  • release: auto-retry crates-publish past crates.io index lag (#435) (be788bc), closes #424

0.36.0 (2026-06-28)

Features

  • composer-resolver: honor --ignore-platform-req(s) at resolve time (#427) (c304b13)

0.35.1 (2026-06-28)

Bug Fixes

  • composer-resolver: stop reporting satisfied php as missing from repos (#425) (3efac2c)

0.35.0 (2026-06-28)

Features

  • patches: add patches create to capture vendor edits as clean patches (#417) (d087da6)

Bug Fixes

  • sync: sync the discovered project root, not the cwd (#418) (faab201)

0.34.0 (2026-06-23)

Features

  • services: show service binding in services status text output (#412) (d68ddec)
  • services: warn on up when a service's TCP port is already in use (#413) (1c520f6)

0.33.0 (2026-06-21)

Features

  • recipe: add localdev task to disable 2FA and set indexers realtime (#409) (796e187)
  • services: integrate mailpit SMTP test server (#408) (54f5682)
  • services: warn on up when env.php DB user != provisioned tenant (#411) (85f3c6c)

Bug Fixes

  • services: persist tenant name so it can't drift across down/purge (#407) (046521c)

0.32.2 (2026-06-20)

Bug Fixes

  • composer-resolver: accept {"packagist": false} BC alias to disable Packagist (#402) (5940298)
  • composer-resolver: key repo auth by origin incl. port (#404) (01e8e9b)
  • daemon: run service health probe off the Supervisor mutex (#405) (9db5d61), closes #219

0.32.1 (2026-06-19)

Bug Fixes

  • tree: dedupe shared subtrees so bougie tree can't hang (#399) (d2a2bff)

0.32.0 (2026-06-19)

Features

0.31.1 (2026-06-18)

Bug Fixes

  • php: auto-sync on php pin and reconcile conf.d for system PHP (#391) (ef2681b)

0.31.0 (2026-06-18)

Features

  • starter: prompt for private-repo auth secrets (e.g. Hyvä license key) (#388) (bcb17d4)

0.30.0 (2026-06-17)

Features

  • composer-resolver: support Composer type: path repositories (#382) (c4fbb7f)
  • init: scaffold --starter laravel via the laravel installer (#383) (7fa7c08)
  • patches: native cweagans/composer-patches reimplementation (#384) (85a3ec9)
  • starter: prompt for per-user placeholder tokens (#385) (e236910)
  • top-level bougie projects + uv-style --resolution (#381) (09b0d5c)

Bug Fixes

  • init: pass ResolutionStrategy to resolve_and_write_lock (#387) (1d60930)

0.29.0 (2026-06-13)

⚠ BREAKING CHANGES

  • cli: bougie make with no task argument now lists the available recipe tasks instead of running the start task. Use bougie start (or bougie make start) to bring the project up.

Features

  • cli: reorganize the CLI around start/stop, group --help (#378) (a0c629b)
  • tool: forward bgx/tool-run args after the package without -- (#376) (41a99b4)

Bug Fixes

  • autoloader: emit root package autoload-dev when dev deps are included (#380) (07eb2a1)
  • sync: re-resolve stale extensions after the active interpreter changes (#379) (4b24785)

0.28.0 (2026-06-13)

Features

  • node: Node.js toolchain via nodejs.org + run PATH overlay (#371) (72b0e4d)
  • paths: move project toolchain into vendor/bougie; durable state under $BOUGIE_HOME (#372) (2c92332)

Bug Fixes

  • dist: make installers prefer the origin mirror (hosting=[simple,github]) (#374) (e627774)
  • format: pin wick 0.2.3 (#375) (55c73dc)

0.27.0 (2026-06-13)

Features

  • format: add bougie format, the uv format model for PHP (#368) (2b0e567)
  • run: add --php to select the interpreter for one run (#366) (bf47d59)

Bug Fixes

  • format: pin wick 0.2.1 (0.2.0 shipped no binaries) (#370) (f8808c5)

0.26.0 (2026-06-13)

Features

  • cli: promote services projects to top-level bougie projects (#365) (da52e1d)
  • server: run the dev server against a system PHP (#363) (9890626)

0.25.2 (2026-06-12)

Bug Fixes

  • daemon: allow /tmp + /var/tmp RW so macOS bash heredocs work in sandbox (#361) (fc8f421)

0.25.1 (2026-06-12)

Bug Fixes

  • daemon: set TMPDIR for opensearch so bash heredocs work under macOS sandbox (#358) (40664e5)
  • dist: build linux-gnu at glibc 2.17 via custom in-container job (#357) (6188e00)
  • self-update: fall back to newest release with assets for the target (#356) (47a1df2)

0.25.0 (2026-06-12)

⚠ BREAKING CHANGES

  • composer: bougie no longer bundles or runs the Composer phar. The composer argv[0] shim now dispatches to bougie's native subcommands, so composer install (recipes, PATH) runs the native installer. Unrecognized subcommands (create-project, archive, bump, …) error with a pointer to bougie tool install composer/composer — the deliberate escape hatch. Removed: bougie-composer fetch/request/resolve modules + install_composer; paths.composer_phar; the resolved-composer state file; the [composer] version config field; sync's phar fetch and SyncResult.composer_{version,path}.

Features

  • cli: add bougie lock — minimal lockfile refresh (#351) (ca6056a)
  • cli: native uv-style verbs — add, remove, tree, outdated (#350) (b74126f)
  • composer: native uv-pip Composer surface; drop the phar (#348) (0d491f6)
  • dist: build linux-gnu against glibc 2.17 in manylinux2014 (#355) (4ce19eb)
  • php: system PHP support (uv's system-Python model) (#354) (32eef2e)

Bug Fixes

  • composer: update installs vendor/ + upgrade/u aliases (#352) (a4ac00e)

0.24.0 (2026-06-10)

Features

  • sync: uv-style concise summary + skip redundant autoloader dump (#347) (a845daa)

Performance Improvements

  • installer: fetch the index root once per sync, not per extension (#345) (68c6b7b)

0.23.1 (2026-06-08)

Bug Fixes

  • server: respawn dead FPM pools instead of dispatching to a vanished socket (#340) (24878fb)

0.23.0 (2026-06-07)

Features

  • autoloader: emit platform_check.php (Composer config.platform-check) (#337) (d9bbb12)

Bug Fixes

  • daemon: setsid bougied so a terminal Ctrl-C can't kill it (#339) (6021991)

0.22.0 (2026-06-07)

Features

  • services: stream stopping/starting progress on restart (#335) (9bebd13)
  • services: write PhpStorm data source on bougie up (#336) (126fec6)

Bug Fixes

  • autoloader: exclude PSR-fallback volatile roots from the classmap (#332) (346463b)
  • installer: don't flash a progress bar when baseline extensions are all installed (#334) (630a568)
  • self-update: don't update to a release with no assets yet (#331) (9664f49)

0.21.0 (2026-06-07)

Features

  • composer: distinguish -w and -W in partial update (#330) (515a562)
  • composer: partial update (composer update <packages>) (#328) (bcf4ecd)

0.20.0 (2026-06-07)

Features

  • starter: make the manifest recipe load-bearing (+ detect modulargento) (#326) (28453bc)

0.19.0 (2026-06-06)

Features

  • scripts: opt-in root composer.json script execution (#324) (b7637f3)

0.18.1 (2026-06-05)

Bug Fixes

  • resolver: validate php platform requires against the pinned PHP (#322) (007d1db), closes #118

0.18.0 (2026-06-05)

Features

  • server: redesign bougie server as a project verb over the shared daemon (#318) (131a4d5)
  • services: add bougie services projects (list provisioned tenants) + purge (#320) (c66de18)

Bug Fixes

  • autoloader: widen PackageSorter weight to i64 to match Composer (#319) (75fcb2f)
  • cli: make bgx --version work (#311) (747a54d)
  • composer-resolver: don't let a replaced original's back-edge break the solve (#317) (abade97)
  • sandbox: enforce ProtectHome/inaccessible/read-only paths on Linux (#208) (#316) (ff885a5)
  • services: derive tenant from project dir, not composer name, to stop collisions (#321) (32959c3)

0.17.0 (2026-06-03)

Features

  • docker: publish container images via cargo-zigbuild (#305) (3ea8f05)

0.16.0 (2026-06-03)

Features

  • services: attach to combined log stream on bougie up (#300) (8b90051)

Bug Fixes

  • composer: warn instead of erroring on stale composer.lock (#304) (0a9bfcf)
  • fetch: build the step bar with its draw target to stop a stranded frame (#303) (bc97eb8)
  • recipe: pin bougie on PATH for check scripts (#301) (addbd4e)

0.15.0 (2026-06-03)

Features

  • daemon: graceful shutdown + opensearch jdk runtime dep (#297) (a21a051)
  • installer: count progress for baseline extension install (#296) (045fee6)
  • SIGQUIT activity dump + shared resolver metadata cache (#295) (fc7c3cb)

Bug Fixes

  • don't orphan rabbitmq when bougied gets a foreground Ctrl-C (#299) (385f4e5)

0.14.0 (2026-06-02)

Features

  • server: default web (php-fpm) memory_limit to 1G (#294) (cf61811)
  • shim: default CLI php to memory_limit=-1 (FPM unchanged) (#292) (94a04b5)

Bug Fixes

  • babysit: don't tear down a healthy service when the sidecar exits benignly (#291) (cd5bbf9)

0.13.0 (2026-06-02)

Features

  • babysit: co-locate a service's helper daemon via --sidecar (epmd, macOS-correct) (#285) (30486ad)

Bug Fixes

  • daemon: anchor bougied cwd so provisioner probes survive a deleted launch dir (#289) (a30a83c)
  • daemon: derive mariadb passwords so they survive down/purge/re-provision (#287) (4eee91f)
  • daemon: derive rabbitmq passwords too (stable across re-provision) (#290) (98d1025)
  • server: keep generated/ classmap entries fresh instead of dangling (#288) (dcbc3be)

0.12.0 (2026-06-02)

⚠ BREAKING CHANGES

  • composer: bougie composer {fetch,uninstall,list,find,pin,dir,upgrade} are removed. Pin the composer version via bougie.toml instead.

Features

  • composer: trim surface to native ops; make Composer a default project-aware tool (#277) (970c751)
  • daemon: cgroup-v2 supervision backend — reap daemonized escapees (e.g. epmd) (#283) (535e198)
  • init: add --name flag and a new <directory> command (#284) (e184eb9)
  • self-update: only update a binary bougie's installer placed (#279) (f929f26)

Bug Fixes

  • babysit: SIGKILL the service via PR_SET_PDEATHSIG if the babysit dies abnormally (#282) (df48680)
  • backend: clearer error for an unsupported host target (musl/Alpine) (#274) (9c789cb)
  • release: bump-minor-pre-major so pre-1.0 breaking changes stay pre-major (#280) (fa36828)
  • server: serve on-disk static assets before the front-controller rewrite (#281) (43e4cd5)

0.11.0 (2026-06-01)

Features

  • daemon: forward the extracting phase to the CLI's mirrored download bar (#272) (ecbb147)

0.10.1 (2026-06-01)

Bug Fixes

  • daemon,recipe: restore services on daemon restart; pin recipe bougie to current exe (#267) (0988460)
  • daemon: plan the whole tool tree up front so the download bar total is accurate (#271) (819c1bc)
  • fetch: add stall timeout, retries with backoff, and extraction progress (#270) (8245965)
  • resolver: honor root composer.json wildcard replace (#269) (e14720d)

0.10.0 (2026-05-31)

Features

  • init: treat --starter as a base URL, append /starter.json (#265) (6a7b958)

0.9.0 (2026-05-31)

Features

  • init: bougie init --starter <url|alias> + --start (#263) (bfb5bcd)

0.8.3 (2026-05-31)

Bug Fixes

  • release: allow-dirty = ["ci"] so dist accepts the hand-edited trigger (#261) (88be819)

0.8.2 (2026-05-31)

Bug Fixes

  • release: let release-please own the whole release; dist only uploads (#260) (d404a11)
  • release: suppress the candidate PR on release-merge runs (#258) (ed025ce)

0.8.1 (2026-05-31)

Bug Fixes

  • release: move release-tag push into its own isolated job (#253) (1570fc1)

0.8.0 (2026-05-30)

Features

  • installers: native Composer install-plugin support (Magento, composer/installers, Laravel) (#248) (ebdf9c3)

Bug Fixes

  • recipe: Mage-OS one-command bring-up — detect mage-os, redis-over-socket, lock re-stamp (#251) (4d29004)
  • release: push the release tag (draft Releases don't auto-tag) (#249) (469ee13)

0.7.0 (2026-05-30)

Features

  • cli: uv-style --version with git sha, date, and target triple (#243) (06293c3)
  • self: implement bougie self update (#244) (3f0f200)
  • sync: one-command install — create lock + vendor, learn PHP/exts from the lock (#241) (7bd6a21)

Bug Fixes

  • release: jq key-access syntax for release-please-manifest (#242) (7c0a5f4)
  • release: let release-please own the draft GitHub Release (#245) (6b8ce18)

0.6.4 (2026-05-30)

Bug Fixes

  • release: let dist own the GitHub Release; release-please pushes tag only (#238) (55ef8e5)
  • resolve whole-project review findings (#207#231) (#234) (4f873e9)

0.6.3 (2026-05-30)

Bug Fixes

  • composer: Mage-OS resolve fixes — caret ^0, self-replace, fetch retry (#232) (96cef9e)
  • release: make release-please actually rewrite Cargo.toml (#237) (ca40f63)
  • release: unblock musl + windows dist targets (#233) (87705a9)

[Unreleased]

0.4.0 - 2026-05-16

Added

  • (up) surface resolved tool dependencies in json-v1
  • (daemon) warn on catalog vs requires_tools drift
  • (daemon) recursively install requires_tools[] inner tools
  • (daemon) walk closure[] when auto-fetching tool tarballs
  • (index) add requires_tools to manifest schema
  • (services) auto-detect supervised server docroot
  • (cli) [breaking] promote services up/services down to top-level up/down
  • (services) auto-fetch service tarballs on first services up
  • (services) babysit shim for crash-safe process-group supervision
  • (services) rabbitmq provisioner (Phase 10)
  • (services) bougied self-restart on version mismatch (Phase 9)
  • (services) bougie server as a managed service
  • (services) opensearch provisioner with per-tenant index templates
  • (services) mariadb provisioner + integration tests against real binary
  • (services) log rotation + bougie services logs [-f] [-n N]
  • (services) inject BOUGIE_SERVICE_* env into bougie run
  • (services) redis provisioner + service.{up,down,status} IPC + CLI
  • (daemon) supervisor state machine, sandbox compilation, tenants ledger
  • (services) offline subcommands — add/remove/list/catalog
  • (services) built-in catalog + [services] config schema
  • (services) bougie services daemon
  • (daemon) bougied entry point + JSON IPC dispatcher
  • (daemon) vendor sandbox-run + wire bougied shim role and paths

Fixed

  • (services) re-sync rabbitmq password to broker after bougie down (#31)
  • (babysit) install SIGTERM handler before spawning the service
  • (opensearch) pin OPENSEARCH_JAVA_HOME + detect early child exit in health probe
  • (services/mariadb) pass --no-defaults to every mariadb invocation

Other

  • (index) drop RequiresTool.manifest_sha256
  • [breaking] Debian-faithful baseline + --bare / --without flags
  • (services) convert opensearch pre_start file I/O to tokio::fs
  • (services) make opensearch provisioner async
  • Merge remote-tracking branch 'origin/main' into feat/services-babysit
  • Set default binary
  • Merge pull request #14 from cresset-tools/feat/services-opensearch
  • (opensearch) dump opensearch.log on services-up failure
  • (services/mariadb) pick per-target tarball for the test fixture
  • fix macOS-specific failures surfaced in PR #8 validation
  • (services) end-to-end redis up/down/status integration tests
  • (services) integration tests for bougied auto-spawn + IPC roundtrip
  • [breaking] relicense from Apache-2.0 OR MIT to EUPL-1.2

0.3.0 - 2026-05-14

Added

  • (composer) add lts channel as a version request
  • (cli) unify list commands with shared coloured renderer

Other

  • Merge pull request #7 from cresset-tools/worktree-unified-list

0.2.0 - 2026-05-14

Added

  • (server) colourise text-mode request log on TTY stderr

Fixed

  • (ci) switch release-plz to git_only mode

Other

  • (release-plz) authenticate via GitHub App instead of PR_BOT PAT
  • refresh lockfile and bump sha2, md-5, anstream to latest majors
  • prune stale per-project runtime dirs at startup + shutdown
  • make ext add, run --xdebug, and server routing all work
  • pre-download xdebug into the store without enabling it
  • split conf.d into conf.d-debug; auto-activate xdebug on first request
  • make project arg optional, auto-detect from composer.json
  • warn on missing web root / missing index at add + run
  • filter notify Access events in watcher to fix reload loop
  • sudo-aware server.toml resolution
  • canonicalize project path on server add
  • phase 6 — control socket + live server list
  • phase 5 — /etc/hosts auto-sync via manage_etc_hosts flag
  • phase 4 — pool lifecycle (idle-out, LRU cap, watch reload)
  • phase 3 — per-request xdebug pool routing
  • phase 2 — FastCGI dispatch to per-project php-fpm pools
  • phase 1 — foreground HTTP server with static-file dispatch
  • phase 0 — config schema + add/remove/list helpers
  • phased build order for bougie server
  • one aggregate progress bar per orchestrator call
  • strip storeName prefix on closure tarballs, link store/ peer
  • walk manifest closure + fix conf.d prefix ordering
  • Improve wording
  • auto-install composer.json's require.ext-* (CLI.md §3.3 step 4(c))
  • install and auto-enable a default extension set per CLI.md §3.5.1.1
  • ext list: --only-available keeps the installed marker visible
  • honor config.sort-packages when editing require maps
  • ext add/remove: drop composer subprocess; do the work ourselves
  • manifest LoadDirective + install_extension + conf.d fragment writer
  • lockfile + composer.json IO and editing primitives
  • byte-exact PHP json_encode + Locker::getContentHash port
  • add unzip role so composer's ZipDownloader prefers our extractor
  • php list: colorize output uv-style, honoring NO_COLOR and pagers
  • release v0.1.0
  • use PR_BOT PAT for release-plz so it can open PRs and fan out

0.1.0 - 2026-05-10

Other

  • use PR_BOT PAT for release-plz so it can open PRs and fan out
  • add release-plz for tag + GitHub release automation
  • drop the release-mode matrix axis
  • run cargo test across {ubuntu, macos} ×
  • gate BOUGIE_TRUST_ROOT_PATH on a Cargo feature, not debug_assertions
  • phase4 — pass fetch_root a verifier factory
  • ext list: implement filter flags and fix status taxonomy
  • php list: implement filter flags
  • php install/uninstall: accept multiple targets
  • document every flag and render errors uv-style
  • pin PHP_BINARY so composer @php scripts find the right php
  • composer list: show all channel versions, paged on a tty
  • bougie-managed phars with project-shim integration
  • build verifier lazily in fetch_root
  • ext list: show installed (.so on disk) and available (index) extensions
  • strip leading install/ prefix when extracting tarballs
  • locate project root from env, argv[0] path, or cwd ancestors
  • make -- optional, auto-sync, export BOUGIE_PROJECT_ROOT
  • follow versioned section URLs from the snapshot root
  • switch to lean section + fat manifest wire schema
  • anchor relative manifest URLs at the actual section file path
  • Sigstore Bundle verification against pinned signer identity
  • structured variants with operation + url + hint context
  • point repository at cresset-tools/bougie
  • point default index URL at index.bougie.tools
  • phase 8: remaining commands
  • phase 7: bougie sync end-to-end
  • phase 6: blob fetch + bougie php install/uninstall/list/find
  • phase 5: resolver + locks
  • phase 4: index protocol + signature verification
  • phase 3: config + request grammar + bougie init
  • phase 2: trivial commands + shim dispatch
  • phase 1: split into lib + foundation modules
  • rework help text + magenta clap color theme
  • tighten subcommand help text
  • initial scaffolding

Free software, licensed under the EUPL-1.2.