Scoped host mounts, warden_addons packaging, 0.4.0 + audit hardening#20
Merged
Conversation
Rebuilds the feat/host-mounts work onto current origin/main as a single coherent change (the branch's own history was rewritten by an earlier git-filter-repo run — Telegram-token scrub + 80MB benchmark-baseline strip — which detached it from main's lineage; this re-parents the content on main so it merges cleanly). main's merged dependabot dep-floor bumps are preserved; the mitmproxy pin stays at >=10.1.1,<11 (matching the warden image; main's >=10.0 is a known-bad loosening). GitHub Actions version bumps will be re-proposed by dependabot against the new main. Headline changes vs main: - feat: scoped host mounts (`mounts:`), VM-level `mount_roots` allowlist, realpath re-containment, symlink-escape hardening, `brig cell mount-scan` (invariant 13) - refactor: warden addons moved into the brig package as shipped data (`src/brig/warden_addons/`), synced into the container by `brig system up` - security + code-quality audit remediation (egress fail-closed network-internal check, secret-redaction in every sink incl. ctx.log, doc accuracy, dead code, shared `brig.ops.locking.locked_file`, test-assertion strength) - version 0.4.0 Tests 1208 passed; ruff + mypy clean; e2e smoke 28/0 + red-team 7/0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace a service-specific example in the redaction test/comment wording with a generic colon-joined-token description; no behavior change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings the
feat/host-mountsline of work ontomain: scoped host mounts, the warden-addons packaging refactor, the 0.4.0 release bump, and remediation from a two-pass security + code-quality audit.Headline changes
Feature — scoped host mounts (
mounts:)Bind-mount an operator-allowlisted host directory into a cell (ro default / rw opt-in), bounded by the VM-level
mount_rootsallowlist, with realpath re-containment, symlink-escape hardening, andbrig cell mount-scan. Adds security invariant 13.Refactor — warden addons packaged
Moved into the brig package as shipped data (
src/brig/warden_addons/), resolvable in editable + wheel installs, synced into the warden container bybrig system up(kills the deploy-drift gotcha).Security & quality hardening (two audits)
brig-<cell>network that isn't--internal(invariants 1 + 4).ctx.logblocked-request path; unified redaction primitive + entropy-based detection.brig.ops.locking.locked_file;_atomic_writecore; dead-code removal.assertRaises(msg=)→assertRaisesRegex).Versioning — bump to 0.4.0 (new invariants 11–13, removed
brig cell trace).Dependencies
Preserves
main's merged dependabot dep-floor bumps; keeps the correctedmitmproxy>=10.1.1,<11pin (matches the warden image —>=10.0is a known-bad loosening). GitHub Actions version bumps will be re-proposed by dependabot against the newmain.Verification
make test→ 1208 passed; ruff + mypy clean; pre-commit hooks pass.make smoke28/0,make redteam(containment) 7/0.main— 0 conflicts, fast-forwardable.🤖 Generated with Claude Code