Repository navigation
feat(brotli): add installed binary evidence doctor - #501
Merged
Merged
Conversation
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
Add an opt-in
brotli-doctorcommand alongsideca-doctorto inventory Brotli-related evidence in installed native CLI binaries. Updating an OS library or the active Bun installation does not replace C code embedded in an existing executable, so installed and standalone artifacts need their own inspection.The Go 1.27 CLI uses only the standard library. By default it inventories every installed mise version and files directly on PATH; explicit file arguments inspect only those files. It reads ELF, Mach-O (including fat images), PE, Go build metadata, symbols and bounded string evidence without executing the inspected binaries, running
ldd, updating packages or making CVE lookup requests. It reports direct imports, defined/undefined C symbols, module versions/replacements, weak string hints and UNKNOWN independently. JSON and text output distinguish incomplete inspection from absence of evidence. Exit 0 means operational completion, never security clearance.Bun incident handling
Include candidate-version guidance for CVE-2026-111497, using Bun 1.4.4 as a reviewed source-release threshold. Proposal #46351 changes both the C decoder and Rust FFI/error handling; the actual release inclusion is through merged #46392, updating Brotli to 1.2.1.
Embedded Bun version strings are candidates only: every assessment keeps binary identity and patch status unverified, including versions at or above the threshold. Complete-token parsing preserves prerelease/custom-version uncertainty and conflicting candidates; limits and read failures propagate as incomplete. Existing
bun build --compileartifacts require a separately verified rebuild/replacement, not merely a host runtime update.Safety and integration
doctorcommand.docs/runbook/brotli-doctor.md.Verification
78abc7a00dee1c6d24646ecc9d8ded8e70e28c43: all five current workflows and all six jobs succeeded, including the PowerShell job. Just Sandbox Tests executed 126 passed, no skipped tests. Earlier draft-only skipped runs are not counted as successful verification.just check: passed on the final implementation.just cipassed, including 1,773 host unit tests (33 skipped).just check-alldid not pass overall: its finaltest-installcommand could not connect to the container backend. The owner explicitly approved publishing a draft with this infrastructure limitation unresolved; no hook or test was bypassed.go test -race -count=1 ./...,go vet, golangci-lint and formatter checks: passed.Container verification limitation
Local containers use Podman, not OrbStack. The existing Podman VM was started with owner approval and its compatibility API was confirmed, but the connection was subsequently lost; another ordinary start failed to connect to the
gvproxysocket. The attempted full sandbox runs returned 15 passed, 111 skipped, so local Podman runtime verification remains incomplete. The subsequent ready-for-review CI sandbox run independently executed all 126 tests successfully, as recorded above. No VM deletion/recreation, rootful switch, global Docker context change or weakening of skip/check behavior was performed.This PR does not claim exploitability, binary authenticity, a complete transitive dependency inventory, or successful native execution on the other build targets. No software upgrade or deployment is included.