🚀 deploy(release): sync main from dev/v1.6 for v1.6.0 - #214
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
Next review available in: 44 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe PR adds Drydock and Portwing integration conformance suites, a Docker Engine version matrix workflow, and tri-tool assertion updates. It bounds exec-inspection response bodies before decoding. It refines fuzz retry handling. It updates project, chart, README, website comparison, and roadmap metadata for v1.6.0 and v1.7.0. Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (4)
app/integration/portwing_preset_conformance_test.go (2)
26-33: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueRename
portwingPresetConfigPathto a family-neutral name.
newDrydockIntegrationPresetHandlerinapp/integration/drydock_preset_conformance_test.gocalls this function and needs a comment to explain why a drydock helper uses a portwing-named function. Rename it topresetConfigPathand drop that explanation.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@app/integration/portwing_preset_conformance_test.go` around lines 26 - 33, Rename the helper function portwingPresetConfigPath to presetConfigPath and update all callers, including newDrydockIntegrationPresetHandler, to use the family-neutral name. Remove the comment explaining the portwing-specific naming, if present.
185-220: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueUse
bytes.NewReader(tarBody)instead ofstrings.NewReader(string(tarBody)).Same nit as
app/integration/drydock_preset_conformance_test.go.bytesis already imported here.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@app/integration/portwing_preset_conformance_test.go` around lines 185 - 220, Replace strings.NewReader(string(tarBody)) with bytes.NewReader(tarBody) in both build request setups within the build-run-instruction-denied and build-run-free-classic-build-allowed tests, reusing the existing bytes import.app/integration/drydock_preset_conformance_test.go (2)
245-263: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueUse
bytes.NewReaderfor the tar body.
strings.NewReader(string(tarBody))copies the byte slice into a string first.bytesis already imported.♻️ Proposed change
- req := httptest.NewRequest(http.MethodPost, "/build", strings.NewReader(string(tarBody))).WithContext(ctx) + req := httptest.NewRequest(http.MethodPost, "/build", bytes.NewReader(tarBody)).WithContext(ctx)Also applies to: 265-279
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@app/integration/drydock_preset_conformance_test.go` around lines 245 - 263, Update the request construction in the build-run-instruction-denied test and the corresponding test around lines 265-279 to pass tarBody directly via bytes.NewReader instead of converting it with strings.NewReader(string(tarBody)).
95-146: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winFour identical helpers exist in two files of the same package. Both suites compile into package
integration_test, so each pair can be a single shared helper. The deny/allow helpers and the tar helper differ only in name.
app/integration/drydock_preset_conformance_test.go#L95-L146: deletedrydockBodyDeniedanddrydockBodyAllowed; call sharedpresetBodyDenied/presetBodyAllowed.app/integration/drydock_preset_conformance_test.go#L209-L228: deletemustDrydockBuildContextTar; call the shared tar helper.app/integration/portwing_preset_conformance_test.go#L71-L123: renameportwingBodyDenied/portwingBodyAllowedtopresetBodyDenied/presetBodyAllowedand keep them as the single copy, or move them to a shared preset helpers file.app/integration/portwing_preset_conformance_test.go#L225-L244: renamemustPortwingBuildContextTartomustPresetBuildContextTarand keep it as the single copy.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@app/integration/drydock_preset_conformance_test.go` around lines 95 - 146, Remove the duplicate helpers and consolidate the shared implementations: in app/integration/drydock_preset_conformance_test.go lines 95-146, delete drydockBodyDenied and drydockBodyAllowed and update callers to presetBodyDenied and presetBodyAllowed; in app/integration/drydock_preset_conformance_test.go lines 209-228, delete mustDrydockBuildContextTar and use mustPresetBuildContextTar. In app/integration/portwing_preset_conformance_test.go lines 71-123, rename portwingBodyDenied and portwingBodyAllowed to presetBodyDenied and presetBodyAllowed as the retained shared implementations; in app/integration/portwing_preset_conformance_test.go lines 225-244, rename mustPortwingBuildContextTar to mustPresetBuildContextTar and update all callers.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/ci-verify.yml:
- Around line 407-413: Update the run_fuzz function to capture and return
PIPESTATUS[0] immediately after the go test and tee pipeline, preserving the go
test exit status so failures trigger crash handling.
In `@README.md`:
- Line 75: Update the README comparison block and its surrounding comparison
prose to reflect the shipped v1.6.0 state: change the libpod support and
multiple-listener rows from “Planned v1.6” to delivered/current status, and
revise the related CetusGuard advantage claims to match the website comparison
data’s ties. Preserve the existing comparison structure and terminology.
---
Nitpick comments:
In `@app/integration/drydock_preset_conformance_test.go`:
- Around line 245-263: Update the request construction in the
build-run-instruction-denied test and the corresponding test around lines
265-279 to pass tarBody directly via bytes.NewReader instead of converting it
with strings.NewReader(string(tarBody)).
- Around line 95-146: Remove the duplicate helpers and consolidate the shared
implementations: in app/integration/drydock_preset_conformance_test.go lines
95-146, delete drydockBodyDenied and drydockBodyAllowed and update callers to
presetBodyDenied and presetBodyAllowed; in
app/integration/drydock_preset_conformance_test.go lines 209-228, delete
mustDrydockBuildContextTar and use mustPresetBuildContextTar. In
app/integration/portwing_preset_conformance_test.go lines 71-123, rename
portwingBodyDenied and portwingBodyAllowed to presetBodyDenied and
presetBodyAllowed as the retained shared implementations; in
app/integration/portwing_preset_conformance_test.go lines 225-244, rename
mustPortwingBuildContextTar to mustPresetBuildContextTar and update all callers.
In `@app/integration/portwing_preset_conformance_test.go`:
- Around line 26-33: Rename the helper function portwingPresetConfigPath to
presetConfigPath and update all callers, including
newDrydockIntegrationPresetHandler, to use the family-neutral name. Remove the
comment explaining the portwing-specific naming, if present.
- Around line 185-220: Replace strings.NewReader(string(tarBody)) with
bytes.NewReader(tarBody) in both build request setups within the
build-run-instruction-denied and build-run-free-classic-build-allowed tests,
reusing the existing bytes import.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: a9578a9d-6694-425e-967b-5cffde0f042b
⛔ Files ignored due to path filters (1)
CHANGELOG.mdis excluded by!CHANGELOG.md
📒 Files selected for processing (16)
.github/workflows/ci-verify.yml.github/workflows/quality-integration-engines.ymlREADME.mdapp/integration/drydock_preset_conformance_test.goapp/integration/portwing_preset_conformance_test.goapp/internal/filter/exec.goapp/internal/filter/exec_test.gochart/sockguard/Chart.yamlscripts/tri-tool-conformance/README.mdscripts/tri-tool-conformance/run-matrix.shwebsite/src/app/data/comparison-rows.tswebsite/src/app/page-data.test.mjswebsite/src/lib/comparison-route-data/cetusguard.tsxwebsite/src/lib/comparison-route-data/linuxserver.tsxwebsite/src/lib/site-config.tswebsite/src/lib/site-content.ts
biggest-littlest
left a comment
There was a problem hiding this comment.
Sync commit tree verified equal to dev/v1.6 tip (9d8ea57); all checks green.
Single sync commit on top of main carrying the dev/v1.6 tip tree (de8015b): 🔒 security(exec): bounded exec-inspect response decode (#208) 🧪 test(integration): portwing/drydock preset conformance suites (#210) 🧪 test(ci): weekly engine-matrix integration workflow (#209) 🔧 config(ci): fuzz deadline-flake retry + exit-status propagation (#207, #215) 🔧 chore(conformance): mktemp scratch dir + live /events + trigger contracts (#206, #212) 🔧 chore(release): GA promotion — changelog, README, chart, website (#213, #215)
ALARGECOMPANY
left a comment
There was a problem hiding this comment.
Second approval — sync commit matches dev/v1.6 tree, CI green.
Syncs
mainto thedev/v1.6tip (9d8ea57) ahead of cuttingv1.6.0GA, per the release branch discipline:mainonly advances by merging from the active dev branch, immediately before each cut.Everything here already landed on
dev/v1.6through CI-green PRs since the rc.1 sync (#200) and the rc.2 sync (#204): #206 (mktemp scratch dir, fixes #205), #207 (fuzz deadline-flake retry, fixes #198), #208 (bounded exec-inspect decode, fixes #188), #209 (weekly engine-matrix integration workflow, fixes #187), #210 (portwing/drydock preset conformance tests, fixes #196), #212 (tri-tool harness pinned to live /events + trigger contracts, fixes #211), #213 (GA promotion: changelog, README, chart + website version flips).After merge:
git diff --quiet origin/main origin/dev/v1.6quality-tri-tool-conformance.ymlfrom main againstghcr.io/codeswhat/sockguard:1.6.0-rc.1— all 3 matrix rows must be green (RELEASING.md pre-GA gate)release-cut.ymlwithrelease_tag: v1.6.0Changelog
/eventsand Drydock-triggered updates.1.6.0.Concerns
origin/mainandorigin/dev/v1.6have identical trees after merge.ghcr.io/codeswhat/sockguard:1.6.0-rc.1.v1.6.0tag withrelease-cut.yml.context deadline exceededwithout a newly generated crasher.