Repository navigation
feat(review): let reviewers inspect images with Pi - #673
Conversation
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: f263242bf04c
Profile: open-cli-collective-review - Posting as: monit-reviewer
Summary
| Reviewer | Findings |
|---|---|
| go:implementation-tests | 0 |
| policies:conventions | 0 |
| structure:repo-health | 0 |
Reviewer Coverage
Complete coverage details are retained in the local coverage.json artifact.
go:implementation-tests— complete (broad); scope: 7 files; examples:internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/llmadapters/pi_rpc_test.go,internal/pireviewtool/png.go; 2 omitted; body-inspected: 7 files; examples:internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/llmadapters/pi_rpc_test.go,internal/pireviewtool/png.go; 2 omitted; skipped: none; constraints: Static review only; tests were inspected but not executed.policies:conventions— complete (broad); scope: 4 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/pireviewtool/png.go,internal/pireviewtool/tool.go; body-inspected: 4 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/pireviewtool/png.go,internal/pireviewtool/tool.go; skipped: none; context (not coverage): 4 files; examples:AGENTS.md,CONTRIBUTING.md,docs/development.md,internal/pireviewtool/png_test.go; constraints: Canonical external shared standards and the referenced SignalFT principles document were unavailable through the confined repository tools. Review was limited to static inspection; tests were not executed.structure:repo-health— complete (broad); scope: 6 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/pireviewtool/png.go; 1 omitted; body-inspected: 6 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/pireviewtool/png.go; 1 omitted; skipped: none; context (not coverage): 1 file; examples:internal/pireviewtool/png_test.go; constraints: Static inspection only; tests were inspected but not executed.
0 PR discussion threads considered. 0 summarized; 0 resolved.
Completed in 39s | $0.08 | openai-codex/gpt-6.1-sol | cr 0.10.328
| Field | Value |
|---|---|
| Model | openai-codex/gpt-6.1-sol |
| Reviewers | go:implementation-tests, policies:conventions, structure:repo-health |
| Engine | pi_rpc · openai-codex/gpt-6.1-sol |
| Reviewed by | cr · monit-reviewer |
| Duration | 39s wall · 59s compute |
| Cost | $0.08 |
| Tokens | 31.4k in / 886 out |
Per-workstream usage
orchestrator-selection— openai-codex/gpt-6.1-sol- In: 5.5k
- Out: 412
- Cache read: 0
- Cache create: 0
- Cost: $0.02
- Duration: 9s
go:implementation-tests— openai-codex/gpt-6.1-sol- In: 2.4k
- Out: 175
- Cache read: 21.4k
- Cache create: 0
- Cost: $0.01
- Duration: 16s
policies:conventions— openai-codex/gpt-6.1-sol- In: 8.4k
- Out: 128
- Cache read: 41.3k
- Cache create: 0
- Cost: $0.02
- Duration: 14s
structure:repo-health— openai-codex/gpt-6.1-sol- In: 11.3k
- Out: 116
- Cache read: 23.9k
- Cache create: 0
- Cost: $0.03
- Duration: 15s
orchestrator-rollup— openai-codex/gpt-6.1-sol- In: 3.8k
- Out: 55
- Cache read: 0
- Cache create: 0
- Cost: $0.01
- Duration: 2s
Route bounded checkout images through Pi’s public reader. Keep access, source, frame, preview, response and deadline checks around native images. [skip ci]
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: 97faf22b54c9
Profile: open-cli-collective-review - Posting as: monit-reviewer
Summary
| Reviewer | Findings |
|---|---|
| go:implementation-tests | 0 |
| policies:conventions | 0 |
| structure:repo-health | 0 |
Approval Withheld
No blocking or major findings were reported. Approval is withheld because at least one reviewer did not complete its assigned review obligations:
unassigned—⚠️ unassigned: changed files were not assigned to a selected reviewer- 6 files had no body inspection or relocation-impact review by any reviewer; examples:
internal/llmadapters/testdata/reviewer-images/sample.bmp,internal/llmadapters/testdata/reviewer-images/sample.gif,internal/llmadapters/testdata/reviewer-images/sample.jpg,internal/llmadapters/testdata/reviewer-images/sample.png,internal/llmadapters/testdata/reviewer-images/sample.svg; 1 omitted
Re-running the same review may reproduce this. Closing the gap means resolving the incomplete obligations above, either by having the assigned reviewer inspect the remaining file content or establish that a certified relocation needs no body reread after its impact was reviewed.
Reviewer Coverage
Complete coverage details are retained in the local coverage.json artifact.
go:implementation-tests— complete (constrained); scope: 8 files; examples:go.mod,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/llmadapters/pi_rpc_test.go; 3 omitted; body-inspected: 8 files; examples:go.mod,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/llmadapters/pi_rpc_test.go; 3 omitted; skipped: none; context (not coverage): 1 file; examples:docs/development.md; constraints: Review was static; tests and installed-Pi runtime checks could not be executed with the available read-only tools.policies:conventions— complete (constrained); scope: 3 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/pireviewtool/tool.go; body-inspected: 3 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/pireviewtool/tool.go; skipped: none; constraints: Review limited to the three assigned files and conventions visible in the provided context; external shared standards were not available through repository tools.structure:repo-health— complete (constrained); scope: 5 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/pireviewtool/tool.go; body-inspected: 5 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/pireviewtool/tool.go; skipped: none; context (not coverage): 1 file; examples:internal/pireviewtool/image.go; constraints: Review limited to the five assigned files and supporting image-reader context; tests were not executed.unassigned—⚠️ unassigned; skipped: 6 files; examples:internal/llmadapters/testdata/reviewer-images/sample.bmp,internal/llmadapters/testdata/reviewer-images/sample.gif,internal/llmadapters/testdata/reviewer-images/sample.jpg,internal/llmadapters/testdata/reviewer-images/sample.png,internal/llmadapters/testdata/reviewer-images/sample.svg; 1 omitted; diagnostic: changed files were not assigned to a selected reviewer
0 PR discussion threads considered. 0 summarized; 0 resolved.
Completed in 34s | $0.24 | openai-codex/gpt-6.1-sol | cr dev
| Field | Value |
|---|---|
| Model | openai-codex/gpt-6.1-sol |
| Reviewers | go:implementation-tests, policies:conventions, structure:repo-health |
| Engine | pi_rpc · openai-codex/gpt-6.1-sol |
| Reviewed by | cr · monit-reviewer |
| Duration | 34s wall · 46s compute |
| Cost | $0.24 |
| Tokens | 104.9k in / 1.3k out |
Per-workstream usage
go:implementation-tests— openai-codex/gpt-6.1-sol- In: 29.7k
- Out: 391
- Cache read: 36.2k
- Cache create: 0
- Cost: $0.07
- Duration: 14s
policies:conventions— openai-codex/gpt-6.1-sol- In: 38.5k
- Out: 303
- Cache read: 74.0k
- Cache create: 0
- Cost: $0.09
- Duration: 12s
structure:repo-health— openai-codex/gpt-6.1-sol- In: 35.8k
- Out: 509
- Cache read: 73.1k
- Cache create: 0
- Cost: $0.08
- Duration: 17s
orchestrator-rollup— openai-codex/gpt-6.1-sol- In: 861
- Out: 50
- Cache read: 0
- Cache create: 0
- Cost: $0.00
- Duration: 2s
Keep the five raster formats covered with self-contained fixtures that can be reviewed alongside the reader tests. [skip ci]
Remove scan data after the complete scan header so the test reaches Pi’s pixel decoder rather than failing during Go header validation. [skip ci]
|
I replaced the standalone binary fixtures with shared Go fixtures. PNG, JPEG, GIF and BMP are generated in the tests; the small WebP fixture is encoded in the helper because Go has no WebP encoder. The same five formats still run through installed Pi and reach the loopback provider. The local checks pass, including the corrupt-pixel case with its complete JPEG header preserved. This closes the unassigned-file gap without changing the reviewer cohort or reducing format coverage. No hosted CI was run. |
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: e81da99b24af
Profile: open-cli-collective-review - Posting as: monit-reviewer
Summary
| Reviewer | Findings |
|---|---|
| go:implementation-tests | 0 |
| policies:conventions | 0 |
| structure:repo-health | 0 |
Reviewer Coverage
Complete coverage details are retained in the local coverage.json artifact.
go:implementation-tests— complete (constrained); scope: 9 files; examples:go.mod,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/llmadapters/pi_rpc_test.go; 4 omitted; body-inspected: 9 files; examples:go.mod,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/llmadapters/pi_rpc_test.go; 4 omitted; skipped: none; context (not coverage): 1 file; examples:docs/development.md; constraints: Review was static; tests and installed-Pi runtime checks were not executed.policies:conventions— complete (constrained); scope: 3 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/pireviewtool/tool.go; body-inspected: 3 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/pireviewtool/tool.go; skipped: none; constraints: Review limited to the three assigned files and conventions visible in the provided context; tests were not executed.structure:repo-health— complete (constrained); scope: 5 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/pireviewtool/tool.go; body-inspected: 5 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/pireviewtool/tool.go; skipped: none; constraints: Review limited to the five assigned files and their relevant changed sections; runtime tests were not executed.
0 PR discussion threads considered. 0 summarized; 0 resolved.
Completed in 58s | $0.25 | openai-codex/gpt-6.1-sol | cr dev
| Field | Value |
|---|---|
| Model | openai-codex/gpt-6.1-sol |
| Reviewers | go:implementation-tests, policies:conventions, structure:repo-health |
| Engine | pi_rpc · openai-codex/gpt-6.1-sol |
| Reviewed by | cr · monit-reviewer |
| Duration | 58s wall · 1m 10s compute |
| Cost | $0.25 |
| Tokens | 106.0k in / 1.3k out |
Per-workstream usage
go:implementation-tests— openai-codex/gpt-6.1-sol- In: 32.3k
- Out: 546
- Cache read: 93.1k
- Cache create: 0
- Cost: $0.08
- Duration: 39s
policies:conventions— openai-codex/gpt-6.1-sol- In: 38.0k
- Out: 256
- Cache read: 49.3k
- Cache create: 0
- Cost: $0.08
- Duration: 12s
structure:repo-health— openai-codex/gpt-6.1-sol- In: 34.8k
- Out: 414
- Cache read: 82.8k
- Cache create: 0
- Cost: $0.08
- Duration: 15s
orchestrator-rollup— openai-codex/gpt-6.1-sol- In: 811
- Out: 51
- Cache read: 0
- Cache create: 0
- Cost: $0.00
- Duration: 3s
…review-inspection
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: 1ae01e44ce78
Profile: open-cli-collective-review - Posting as: monit-reviewer
Summary
| Reviewer | Findings |
|---|---|
| go:implementation-tests | 1 |
| policies:conventions | 0 |
| structure:repo-health | 0 |
go:implementation-tests (1 finding)
Minor - internal/pireviewtool/image.go:248
The new ANMF parser has no behavioral coverage: the WebP fixture contains a static VP8 frame, and the extended-header test only adds VP8X. Consequently, tests would still pass if animated WebP were always rejected or embedded-frame bounds checks regressed. Add a valid animated WebP case plus cases with an out-of-canvas ANMF rectangle and embedded VP8/VP8L dimensions exceeding that rectangle. These should exercise Execute so the tests prove rejection before bytes reach Pi.
Reviewer Coverage
Complete coverage details are retained in the local coverage.json artifact.
go:implementation-tests— complete (constrained); scope: 9 files; examples:go.mod,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/llmadapters/pi_rpc_test.go; 4 omitted; body-inspected: 9 files; examples:go.mod,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/llmadapters/pi_rpc_test.go; 4 omitted; skipped: none; context (not coverage): 1 file; examples:docs/development.md; constraints: Read-only review; tests were inspected but not executed.policies:conventions— complete (constrained); scope: 3 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/pireviewtool/tool.go; body-inspected: 3 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/pireviewtool/tool.go; skipped: none; context (not coverage): 4 files; examples:.codereview/agents/policies/conventions/prompt.md,AGENTS.md,CONTRIBUTING.md,docs/development.md; constraints: Review was limited to the three assigned files and visible repo-local conventions; external shared standards were not available through the repository tools. No tests were executed.structure:repo-health— complete (constrained); scope: 5 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/pireviewtool/tool.go; body-inspected: 5 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/pireviewtool/tool.go; skipped: none; constraints: Static inspection only; tests and installed-Pi behavior were not executed. Review focused on the five assigned files.
0 PR discussion threads considered. 0 summarized; 0 resolved.
Completed in 48s | $0.04 | openai-codex/gpt-6.1-sol | cr 0.10.328
| Field | Value |
|---|---|
| Model | openai-codex/gpt-6.1-sol |
| Reviewers | go:implementation-tests, policies:conventions, structure:repo-health |
| Engine | pi_rpc · openai-codex/gpt-6.1-sol |
| Reviewed by | cr · monit-reviewer |
| Duration | 48s wall · 1m 00s compute |
| Cost | $0.04 |
| Tokens | 11.2k in / 631 out |
Per-workstream usage
go:implementation-tests— openai-codex/gpt-6.1-sol- In: 369
- Out: 326
- Cache read: 30.1k
- Cache create: 0
- Cost: $0.01
- Duration: 28s
policies:conventions— openai-codex/gpt-6.1-sol- In: 3.7k
- Out: 123
- Cache read: 33.4k
- Cache create: 0
- Cost: $0.01
- Duration: 12s
structure:repo-health— openai-codex/gpt-6.1-sol- In: 3.2k
- Out: 110
- Cache read: 34.6k
- Cache create: 0
- Cost: $0.01
- Duration: 15s
orchestrator-rollup— openai-codex/gpt-6.1-sol- In: 4.0k
- Out: 72
- Cache read: 0
- Cache create: 0
- Cost: $0.01
- Duration: 3s
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: fc9b780b3ec6
Profile: open-cli-collective-review - Posting as: monit-reviewer
Summary
| Reviewer | Findings |
|---|---|
| go:implementation-tests | 0 |
| policies:conventions | 0 |
| structure:repo-health | 0 |
Reviewer Coverage
Complete coverage details are retained in the local coverage.json artifact.
go:implementation-tests— complete (constrained); scope: 9 files; examples:go.mod,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/llmadapters/pi_rpc_test.go; 4 omitted; body-inspected: 9 files; examples:go.mod,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/llmadapters/pi_rpc_test.go; 4 omitted; skipped: none; context (not coverage): 1 file; examples:docs/development.md; constraints: Review was limited to static inspection through read-only repository tools; tests and installed-Pi runtime behavior were not independently executed.policies:conventions— complete (constrained); scope: 3 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/pireviewtool/tool.go; body-inspected: 3 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/pireviewtool/tool.go; skipped: none; context (not coverage): 3 files; examples:AGENTS.md,CONTRIBUTING.md,docs/development.md; constraints: Review limited to the three assigned files and visible repo-local conventions; external shared standards were not available in the review context. Static inspection only; no tests executed.structure:repo-health— complete (constrained); scope: 5 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/pireviewtool/tool.go; body-inspected: 5 files; examples:docs/checkout-native-review-contract.md,internal/llmadapters/pi_rpc.go,internal/llmadapters/pi_rpc_extension_unix_test.go,internal/llmadapters/pi_rpc_runtime_test.go,internal/pireviewtool/tool.go; skipped: none; context (not coverage): 1 file; examples:internal/pireviewtool/image.go; constraints: Review limited to the five assigned files and supporting image-reader context. Static inspection only; tests and installed Pi behavior were not independently executed.
0 PR discussion threads considered. 0 summarized; 0 resolved.
Completed in 34s | $0.06 | openai-codex/gpt-6.1-sol | cr 0.10.328
| Field | Value |
|---|---|
| Model | openai-codex/gpt-6.1-sol |
| Reviewers | go:implementation-tests, policies:conventions, structure:repo-health |
| Engine | pi_rpc · openai-codex/gpt-6.1-sol |
| Reviewed by | cr · monit-reviewer |
| Duration | 34s wall · 39s compute |
| Cost | $0.06 |
| Tokens | 22.4k in / 506 out |
Per-workstream usage
go:implementation-tests— openai-codex/gpt-6.1-sol- In: 4.4k
- Out: 189
- Cache read: 30.2k
- Cache create: 0
- Cost: $0.01
- Duration: 15s
policies:conventions— openai-codex/gpt-6.1-sol- In: 8.1k
- Out: 112
- Cache read: 34.9k
- Cache create: 0
- Cost: $0.02
- Duration: 11s
structure:repo-health— openai-codex/gpt-6.1-sol- In: 6.2k
- Out: 152
- Cache read: 30.6k
- Cache create: 0
- Cost: $0.02
- Duration: 10s
orchestrator-rollup— openai-codex/gpt-6.1-sol- In: 3.8k
- Out: 53
- Cache read: 0
- Cache create: 0
- Cost: $0.01
- Duration: 2s
Submission update — 2026-10-17
Merged current main
0504865a4c8c1fc30d1280f813c497abf96d251bforward into this branch without rewriting history. Submission head is1ae01e44ce787d192e89013c185a04cc2365adbe; the diff against main remains the intended 11 image-support files. Final headfc9b780b3ec68a47d444757a9dfec95e9a0b8454adds test-only animated WebP coverage: valid VP8/VP8L animations, out-of-canvas ANMF rectangles, and embedded dimensions exceeding the frame rectangle. Reader race tests and package lint passed. Three negative controls, each removing a WebP bounds check, failed at the intended rejection assertions; all mutations were restored. The first rectangle-control attempt accidentally changed the analogous GIF guard and did not establish a WebP control; the corrected WebP-specific control failed as intended. The review finding was accepted and resolved. Hosted CI run 39006555872 passed all 12 jobs on exact final headfc9b780b3ec68a47d444757a9dfec95e9a0b8454, including the installed Pi runtime gate, normal/opt-out/static tests, repeated ledger/dbmig race checks, lint and all platform builds. Fresh review approved this exact head against main0504865a4c8c1fc30d1280f813c497abf96d251bwith no findings; all review threads are resolved. Hosted success is separate from the qualified local runtime result below.Closes #672.
Reviewers can now open images with
cr_readusingview="image". The tool uses Pi’s public image reader for decoding, resizing and conversion, with CR enforcing checkout access and resource limits before handing over the bytes.cr_readImages remain limited to 8 MiB of source data, 16,777,216 pixels and a preview edge of 1,024 pixels. PNGs retain the 1,024-chunk limit and reject APNG. GIF and WebP frame checks prevent a small canvas header from hiding a much larger frame. The complete response must fit the configured tool-output budget; image reads also keep the tool deadline, symlink restrictions and diff-first requirement.
The response includes the original dimensions and file checksum, plus Pi’s resize or conversion notes. It does not claim that a preview proves pixel-for-pixel equality with the base revision or checks every animation frame. Text-only models and failed image processing leave the file uninspected. This revision replaces the proposed PNG-specific preview and pixel/chunk hash output.
Submission validation
The focused reader and reviewer-extension race checks passed with Go 1.26.8, Node 22.22.3 and Pi 1.0.0 on macOS arm64. The installed-runtime run passed all image format, PNG variant, resizing, output budget, invalid-pixel and text-only cases. The aggregate target failed in the unchanged unlisted-tool test because it observed three provider requests instead of two; tool rejection, absent shell execution and withheld output assertions passed. Three focused reruns on this branch and three on pristine current main subsequently passed. This is an unreproduced local failure, not a claimed main reproduction or a full local aggregate pass. Hosted results are tracked separately.
Historical local checks before submission
make test-pi-runtimepassed with Pi 1.0.0, Node 22.22.3 and Go 1.26.3. A loopback provider received all five raster formats, including BMP conversion. Resize, response budget, invalid-image and text-only model cases passed.make lint buildpassed. The new Go image dependency supplies BMP/WebP header readers; Pi handles preview processing.No new hosted CI was run for this revision. The earlier green CI belongs to the previous PNG-only commit. A prior full local check timed out in unrelated pipeline tests, so this is focused local validation rather than a claim that the complete suite passed locally.
The installed binary was not replaced during validation.