CLI(inspect-build): support V4/V5 headers, compression - #2985
Conversation
❌ 4 Tests Failed:
View the top 3 failed test(s) by shortest run time
View the full list of 2 ❄️ flaky test(s)
To view more test analytics, go to the Test Analytics Dashboard |
There was a problem hiding this comment.
Code Review
In packages/orchestrator/cmd/inspect-build/validate.go, the seekable object returned by OpenSeekable is leaked if subsequent initialization steps in openChunker fail before the chunker is successfully created. A deferred cleanup block should be introduced to close the object on any initialization failure.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Single render pipeline (HEADER / IMAGE / MAPPINGS / BUILDS / DATA / HEATMAP / METADATA) with a human TTY dashboard and JSON output. HEATMAP shows per-2MiB-chunk compression and cold-fetch fanout, mirroring block.Chunker.locateChunk. JSON is header-dump style: frame tables embedded under builds[], self carries fetches per frame. Flags: -build / -template / -storage / -memfile / -rootfs, -human / -json, -decimal, -expand=mappings,frames,metadata,all, -range=offset:size, -validate (fetch + decompress every frame via the production read path and verify checksum), -recursive (walk the ancestor chain). The pre-redesign header-dump tool is preserved in main.go behind --old; the new dispatcher lives at the top of main() and the new entry point is runInspect() in inspect.go.
b347d28 to
def98b7
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: def98b7444
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9e4cf50205
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
## Summary `TestRoundTrip` in `pkg/nfsproxy` fails intermittently with `bind: address already in use` (e.g. on [PR #2985](https://github.com/e2b-dev/infra/actions/runs/27373170636/job/80890489083)). The `go-nfs-client` library binds a random ephemeral local port when dialing and only retries `EADDRINUSE` collisions for privileged dials, so non-privileged dials flake on port collisions. Retry the dials in the test on `EADDRINUSE`.
Main is broken: #2919 moved the upstream `Seekable` out of `block.NewChunker` and into `Chunker.Slice` (as a `storage.RangeOpener` param), and #2985 merged alongside it without picking up the new signatures, so `cmd/inspect-build` fails to compile (see [this run](https://github.com/e2b-dev/infra/actions/runs/27380475452/job/80915690448)). Updates `validate.go` to the new API: `openChunker` now also returns the storage object, which is passed to each `Slice` call — mirroring the production read path in `storage_diff.go`.
## Summary `TestRoundTrip` in `pkg/nfsproxy` fails intermittently with `bind: address already in use` (e.g. on [PR e2b-dev#2985](https://github.com/e2b-dev/infra/actions/runs/27373170636/job/80890489083)). The `go-nfs-client` library binds a random ephemeral local port when dialing and only retries `EADDRINUSE` collisions for privileged dials, so non-privileged dials flake on port collisions. Retry the dials in the test on `EADDRINUSE`.
…ev#2989) Main is broken: e2b-dev#2919 moved the upstream `Seekable` out of `block.NewChunker` and into `Chunker.Slice` (as a `storage.RangeOpener` param), and e2b-dev#2985 merged alongside it without picking up the new signatures, so `cmd/inspect-build` fails to compile (see [this run](https://github.com/e2b-dev/infra/actions/runs/27380475452/job/80915690448)). Updates `validate.go` to the new API: `openChunker` now also returns the storage object, which is passed to each `Slice` call — mirroring the production read path in `storage_diff.go`.
100% VIBE CODED but appears to display everything correctly.
Single render pipeline (HEADER / IMAGE / MAPPINGS / BUILDS / DATA / HEATMAP / METADATA) with a human TTY dashboard and JSON output. HEATMAP shows per-2MiB-chunk compression and cold-fetch fanout, mirroring block.Chunker.locateChunk. JSON is header-dump style: frame tables embedded under builds[], self carries fetches per frame.
Flags: -build / -template / -storage / -memfile / -rootfs, -human / -json, -decimal, -expand=mappings,frames,metadata,all, -range=offset:size, -validate (fetch + decompress every frame via the production read path and verify checksum), -recursive (walk the ancestor chain). Pre-redesign tool preserved behind
--old.