First PyPI release.
Changed
- Made
brigade-clioptional. Bootstrap size limits (soft/hard/ceiling) are still sourced frombrigade.budgetswhen brigade is installed, but a newbootstrap_doctor.budgetsmodule mirrors those canonical values as a fallback so the tool runs standalone without brigade-cli. Install thebrigadeextra (pip install bootstrap-doctor[brigade]) to source the limits from brigade directly. - Pin
brigade-cli>=0.8.0from PyPI (in the optionalbrigadeextra) instead of the git ref now that brigade 0.8.0 is published; dropped the hatchling direct-reference allowance. Repository moved to theescoffier-labsorg.
Added
- Publish-on-tag GitHub Actions workflow that builds and uploads to PyPI on
v*tags. - Test coverage asserting the package imports and the mirrored fallback constants are used when brigade is absent.
- GitHub Actions CI for tests, linting, typing, packaging, and dependency audit checks.
- Ruff, mypy, build, and pip-audit dev tooling configuration.
- CLI-level trim integration coverage for copied-workspace apply, idempotency, and dirty-workspace blocking.
- Tightened config validation for malformed gateway URLs, path separators, control characters, and whitespace-padded string values.
- Read-only verbs can resolve config when
cards_dirdoes not exist yet.
Fixed
- Atomic text writes now preserve existing file permissions on overwrite.
trim --applynow reports card-write failures as expected hard failures instead of unexpected exceptions.