Skip to content

fix(deps): update x/crypto for SSH DoS fixes - #6847

Merged
devantler merged 2 commits into
mainfrom
codex/x-crypto-dos-hotfix-6846
Sep 3, 2026
Merged

fix(deps): update x/crypto for SSH DoS fixes#6847
devantler merged 2 commits into
mainfrom
codex/x-crypto-dos-hotfix-6846

Conversation

@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Agentic Engineer

Why

New Go advisories GO-2026-6354 and GO-2026-6355 are reachable through KSail SSH paths on main, which makes the vulnerability gate fail.

What

Update golang.org/x/crypto from v0.55.0 to the fixed v0.56.0 in both the root and desktop modules, with only the corresponding checksums changed.

Validation

  • RED: govulncheck reported both advisories at v0.55.0 with reachable SSH traces.
  • GREEN: the target-ID finding assertion reports zero matches at v0.56.0; both modules resolve v0.56.0 read-only; the KSail binary builds.
  • Go tests: all packages passed except the existing short-timeout open/chat subprocess tests under local full-suite load; that package passed twice uncached in isolation.
  • Lint: the local analyzer emitted no diagnostics but did not terminate within the bounded run and was stopped; CI remains required.

Fixes #6846

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

MegaLinter analysis: Success

✅ Linters with no issues

actionlint, bash-exec, git_diff, hadolint, jscpd, jsonlint, lychee, markdown-table-formatter, markdownlint, prettier, prettier, shellcheck, shfmt, stylelint, syft, trivy-sbom, trufflehog, v8r, v8r, yamllint

Notices

⚠️ Your configuration references items that have been removed from MegaLinter and are ignored: REPOSITORY_GITLEAKS. See Removed linters to find their replacements.

See detailed reports in MegaLinter artifacts

MegaLinter is provided by OX Security
Show us your support by starring ⭐ the repository

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

@devantler I will review the changes in #6847.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Team

Run ID: 2bae4f8f-f8ab-43f6-bd1f-8b816e2b29f5

📥 Commits

Reviewing files that changed from the base of the PR and between fc85581 and d6643e2.

⛔ Files ignored due to path filters (2)
  • desktop/go.sum is excluded by !**/*.sum
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (2)
  • desktop/go.mod
  • go.mod

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (5)
  • GitHub Check: 🧪 System Test (Docker) (Talos, Docker, true, --name system-test-cluster-with-image-verificatio...
  • GitHub Check: 🧪 System Test (Docker) (Talos, Docker, true, --gitops-engine Flux --local-registry ghcr.io/dev...
  • GitHub Check: 🧪 System Test (Docker) (Talos, Docker, true)
  • GitHub Check: 🧪 System Test (Docker) (Talos, Docker, true, --name system-test-cluster --cni Cilium --csi Ena...
  • GitHub Check: 🧪 System Test (Docker) (Talos, Docker, true, --cni Calico --csi Disabled --load-balancer Disab...
🔇 Additional comments (2)
go.mod (1)

103-103: LGTM!

desktop/go.mod (1)

785-785: LGTM!


📝 Walkthrough

Walkthrough

Updates golang.org/x/crypto from v0.55.0 to v0.56.0 in the root Go module and the desktop Go module. The root module records the direct dependency update. The desktop module records the indirect dependency update.

Merge Risk: ⚪ Minimal · up to d6643

The dependency update moves both Go modules to the fixed x/crypto version, with supplied validation showing the vulnerability scan, tests, build, and required checks passing. No current merge-blocking risk remains.


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Linked Issues check ❓ Inconclusive The PR upgrades golang.org/x/crypto to v0.56.0 in both modules, which addresses the linked SSH DoS requirements. However, tidy dependency results and checksum changes cannot be independently verified … Provide reviewable evidence for go.sum and desktop/go.sum, or include equivalent filtered evidence confirming the dependency graph is tidy and only expected tool-owned outputs changed.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the dependency update and its purpose: fixing SSH denial-of-service vulnerabilities in x/crypto.
Description check ✅ Passed The description is directly related to the dependency update, security advisories, affected modules, and validation results.
Out of Scope Changes check ✅ Passed The reviewable changes are limited to the requested x/crypto dependency updates in the root and desktop modules. No unrelated code changes are shown.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Full details: Linked Issues check

Explanation

The PR upgrades golang.org/x/crypto to v0.56.0 in both modules, which addresses the linked SSH DoS requirements. However, tidy dependency results and checksum changes cannot be independently verified because go.sum and desktop/go.sum were excluded by the !**/*.sum path filter.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (2 skipped: 2 unsupported.)

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch

Warning

Tools execution failed with the following error:

Failed to run tools: Ping-pong health check failed


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

body_findings=0-resolved@c7f9d393cbb8dcdf1118f2d33a644e32900f2f14

Refutation for the ancillary same-head review finding:

  • The Linked Issues check is inconclusive only because CodeRabbit's !**/*.sum filter excludes go.sum and desktop/go.sum; that is a reviewer visibility limit, not missing validation. Exact-head CI independently verified both generated files: root module tidy passed, desktop module tidy passed, and the required gate passed. Both sums contain the authoritative github.com/k3d-io/k3d/v5 v5.9.0 checksum h1:G9wUKnIDNN6DRgEa7KAiLz0dCqM9qnY26BEDRG0HcZI=.
  • The ancillary CodeQL Go failure is provider infrastructure, not a branch defect: its internal module proxy supplied a different k3d archive checksum, while the public Go proxy and checksum database independently returned the committed checksum above. The branch's required CI, dependency review, tidy checks, and vulnerability scan all passed. No checksum or source change is warranted.

The reported same-head ancillary concerns are therefore resolved without a file change.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

@devantler Full review requested for #6847.

✅ Action performed

Full review finished.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

body_findings=0-resolved@c7f9d393cbb8dcdf1118f2d33a644e32900f2f14

Refutation for the updated same-head ancillary finding:

  • Exact-head CI confirms the full Go test job passed, including the subprocess-test package. The PR body candidly records that two short-timeout subprocess tests were sensitive only to local concurrent full-suite load; that package passed twice uncached in isolation, and the independent clean CI suite passed. This is not a branch regression.
  • The exact-head vulnerability scan passed without an allowlist. It is the same repository gate that was red on main for GO-2026-6354 and GO-2026-6355.
  • Both generated dependency graphs are tidy: root module tidy passed and desktop module tidy passed. The required gate passed.
  • The separate CodeQL Go failure remains an internal module-proxy checksum mismatch; the public Go proxy and checksum database independently match the committed k3d v5.9.0 sum. No source or checksum change is warranted.

The requested full-suite, tidy, and unallowlisted vulnerability evidence is now linked directly; the reported ancillary concerns are resolved without a file change.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

@devantler Full review requested for #6847.

⚠️ Action not completed

Review rate limited.


Your included review limit is currently reached under our Fair Usage Limits Policy. This review may still proceed through usage-based billing if eligible. Your next included review will be available in 44 minutes.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-02T23:48:52.361436Z c7f9d39 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🎉

Reviewed commit: c7f9d393cb

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

Readiness evaluation for c7f9d393cbb8dcdf1118f2d33a644e32900f2f14:

  • Programmatically tested: main was RED with reachable GO-2026-6354 and GO-2026-6355 findings at x/crypto v0.55.0. This head is GREEN: the unallowlisted vulnerability scan, root and desktop tidy checks, full Go tests, build, system-test matrix, and CI - Required Checks all passed. The non-required CodeQL Go context failed only because its internal module proxy returned a divergent k3d archive checksum; the public Go proxy and checksum database match the committed sum.
  • Reviewed: Codex reported Didn't find any major issues for reviewed commit c7f9d393cb; there are zero review threads, review objects, inline comments, and Codex comment-form findings. CodeRabbit's ancillary visibility questions were resolved with direct exact-head CI evidence; its next pass was explicitly rate-limited, so Codex supplies the successful current-head review.
  • Tried and evaluated as a user: I exercised the actual security outcome through KSail's vulnerability gate: both reachable SSH denial-of-service findings present before the update disappear at v0.56.0, while both module graphs remain tidy and the KSail binary and full behavior suite pass. From a KSail user's perspective, the CLI and desktop interfaces are unchanged and the security gate is restored.

All genuine-readiness conditions are satisfied at this exact head.

@devantler
devantler marked this pull request as ready for review September 2, 2026 23:50
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

Diagnosis of the Analyze (go) failure — it is infrastructure, not this change

Posting this from the Claude lane while this PR is still inside its active-work window, so whoever
drives it next does not have to re-derive it. No action taken on the PR.

The terminal failure is a runner shutdown, not a build break. Job 100445933559 ran 22:20:29Z →
22:39:17Z and ended on:

##[error]The runner has received a shutdown signal. This can happen when the runner service is
stopped, or a manually started runner is canceled.

The could not import C (no metadata for C) lines above it are CodeQL extractor noise from
wailsapp/wails (cgo/webkit sources analysed without their C headers). They are ##[error]-tagged
but are not what ended the job.

This run is GitHub-managed, so there is no workflow file in the repo to fix and GitHub refuses a
re-run: event: dynamic, path: dynamic/github-code-scanning/codeql.

Analyze (go) is green on main (fc85581425), so this is not base-inherited — it is specific
to this run, which is consistent with a one-off runner reclaim.

The SECURITY ERROR in the log is a false alarm — checked against the authoritative source

The same log carries what looks alarming:

verifying github.com/k3d-io/k3d/v5@v5.9.0: checksum mismatch
	downloaded: h1:No77u6TnEg9EFmJ/tr53/g7weRDttG086Gjx5ZmhfCc=
	go.sum:     h1:G9wUKnIDNN6DRgEa7KAiLz0dCqM9qnY26BEDRG0HcZI=
SECURITY ERROR

I checked this against the Go checksum database rather than reasoning about it:

$ curl -sS https://sum.golang.org/lookup/github.com/k3d-io/k3d/v5@v5.9.0
github.com/k3d-io/k3d/v5 v5.9.0 h1:G9wUKnIDNN6DRgEa7KAiLz0dCqM9qnY26BEDRG0HcZI=

The value in this repository's go.sum is the one the public checksum database attests. It was
the download inside the CodeQL autobuild sandbox that produced different bits, and Go rejected them —
the supply-chain guard doing exactly its job. So this is not a compromised dependency and not
something this PR introduced; it is a bad fetch in that sandbox, and it was non-fatal
(go mod tidy -e ... failed, continuing anyway).

Worth knowing because the phrase SECURITY ERROR in a security hotfix's log invites exactly the wrong
conclusion in either direction — treating it as a breach, or waving the whole check away.

Consequence for the rung-0 queue

main is red on CI - KSail (🛡️ Vulnerability Scan), this PR is the fix, and its only failing
check is a transient in a run nobody can re-run directly. ksail#6839 has auto-merge armed and its
one red check is that same base-inherited vulnerability scan, so it clears itself once this lands —
landing this is the cheapest way to clear both.

@devantler devantler closed this Sep 3, 2026
@github-project-automation github-project-automation Bot moved this from 🫴 Ready to ✅ Done in 🌊 Project Board Sep 3, 2026
@devantler devantler reopened this Sep 3, 2026
@github-project-automation github-project-automation Bot moved this from ✅ Done to 🫴 Ready in 🌊 Project Board Sep 3, 2026
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

Re-triggered the missing go analysis — same head, no new commit

Following up on the 00:15Z diagnosis. The active-work window on this PR has since lapsed (last push
22:19Z), so I drove it rather than leaving it parked.

What was actually blocking. Not Analyze (go)'s failure directly — the gate is the
Require code scanning results ruleset (alerts_threshold: all, tool CodeQL). Its merge check
reports neutral — 1 configuration not found: the go configuration produced no analysis for this
head, so the rule cannot evaluate. Everything else was already clear:

Signal State
CI - Required Checks (the only required status check) ✅ success
Analyze (javascript-typescript), Analyze (actions) ✅ success
Unresolved review threads 0 of 0 (complete read, fetched == totalCount)
Green review at head ✅ Codex, Reviewed commit: c7f9d393cb == headRefOid[0:10]
Conflict with base none — MERGEABLE, behind_by=0

Both re-run paths are refused. rerun and rerun-failed-jobs on run 33689878970 each return
403 This workflow run cannot be retried — it is GitHub-managed (event: dynamic,
path: dynamic/github-code-scanning/codeql), so there is no workflow file to fix and no re-run button.

So I closed and reopened the PR. CodeQL default setup runs on pull_request, and reopened is
one of its trigger types, so this re-dispatches the analysis without a new commit — which matters,
because a new head would have staled the Codex green and cost another metered review round for a
4-line go.sum change. Head is unchanged at c7f9d393cbb8; the reopen re-fired the six
pull_request workflows at 01:07Z.

One correction to the earlier comment

It read Analyze (go) as green on main and concluded the failure was not base-inherited. The
first half is true of the newest run only — over main's last 8 CodeQL runs, 3 failed, and I
pulled the log of one of them (33671294945, commit c53ef329, unrelated to this PR) as a positive
control: it carries the identical wailsapp/wails … could not import C (no metadata for C)
signature. So this lane flaps on main too, roughly half the time.

That does not change the conclusion for this PR — the change is 4 lines of go.mod/go.sum and
cannot affect cgo extraction — but it does mean a re-trigger is a coin flip rather than a certainty,
and that the flapping itself is a real defect worth fixing at the root (buildless Go analysis via
advanced setup would remove autobuild, the 19-minute extraction, and the cgo errors together). I am
filing that separately rather than widening this hotfix.

Why this is worth the effort: main is red right now on CI - KSail
🛡️ Vulnerability Scan, with ##[error]Reachable vulnerabilities not accepted in ./.govulncheck-allow.txt: GO-2026-6354 GO-2026-6355 — precisely the two advisories this PR fixes.
The same job is ✅ on this branch. This is the fix for live rung-0 breakage.

The `Require code scanning results` ruleset blocks this PR because the `go`
CodeQL configuration produced no analysis for c7f9d39 — the gate reports
`neutral: 1 configuration not found` after the 22:20Z run died in Autobuild.

That analysis is GitHub-managed (`event: dynamic`,
`path: dynamic/github-code-scanning/codeql`), so it has no workflow file and
both `rerun` and `rerun-failed-jobs` return 403. Closing and reopening the PR
re-fires the repository's own pull_request workflows but NOT the managed
configuration (measured, recorded on #6767), so a new head commit is the only
remaining way to obtain the analysis.

This commit changes no files. It exists solely to produce a head that CodeQL
will analyse, so the x/crypto fix for GO-2026-6354 / GO-2026-6355 can land —
`main` is currently red on that vulnerability scan.

Refs #6767

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

The head moved to d6643e20 — an empty commit carrying no file changes, pushed solely to
obtain the CodeQL analysis this PR was blocked on (see the comment above; close/reopen was tried
first and does not reach the managed configuration). The reviewable diff is unchanged from
c7f9d393: four lines of go.mod/go.sum moving golang.org/x/crypto v0.55.0 → v0.56.0.

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

@devantler I will review the changes at d6643e20ad28bab3847940bf18c6a310847e6c03.

⚠️ Action not completed

No files to review.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

The plain review at this head returned "No files to review" — CodeRabbit's incremental system
declining to re-review commits it has already seen. That is the expected outcome here, because
d6643e20 is an empty commit: it carries no file changes and exists only to re-dispatch the
GitHub-managed CodeQL analysis. It is not a rate limit, and the lane is serving.

Escaping the incremental wedge with a full review so this head carries its own green rather than
inheriting one from c7f9d393, whose review is now stale by the empty push.

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

@devantler Full review requested for #6847. The review will evaluate the complete pull-request diff at d6643e20ad28bab3847940bf18c6a310847e6c03.

✅ Action performed

Full review finished.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

State at 2026-09-03T02:2xZ — one transient away from mergeable

Driving this from the Claude lane (the branch is codex/*; my only push here was t1540's empty commit,
which is repair under the cross-lane rule). Recording exact state so the next run does not re-derive it.

Pentad at head d6643e20ad28bab3847940bf18c6a310847e6c03:

Item State
Unresolved review threads 0 (0 of 0, complete read)
Non-thread review findings 0
Conflicts none — MERGEABLE
Green review at head cr@d6643e20 — see below
Required checks 1 failure, 1 still running, 56 success

The green review is secured — and how, because it is not where you would look

pulls/6847/reviews is empty: there is no CodeRabbit review object at this head, so a
reviews-only sweep reports green_review=none. The satisfier is the auto-generated summary
comment
, updated 02:10:35Z (after the request), which names this head explicitly —
"between fc85581... and d6643e2..." — and reads "No actionable comments were generated in
the recent review."
The head's CodeRabbit commit status corroborates: success / Review completed
@02:10:37Z, with no rate-limit marker in the newest command reply (✅ Full review finished).

Getting there needed the wedge escape: the plain @coderabbitai review at this head returned
"No files to review", because d6643e20 is an empty commit and CodeRabbit does not re-review
commits it has already seen. That is not a rate limit. @coderabbitai full review cleared it.
Do not spend the weekly Codex lane on this — Codex's existing green is stale at c7f9d393cb, and
re-requesting it would burn a metered lane for a diff CodeRabbit has now reviewed for free.

The one failure is a transient, and it is not this PR's fault

🧪 System Test (Docker) (Talos, Docker, true, --gitops-engine ArgoCD ...) failed at 02:05:35Z
upgrading Kubernetes step 3/3 (1.36.4 → 1.37.0):

http2: server sent GOAWAY and closed the connection; LastStreamID=89, ErrCode=NO_ERROR

ErrCode=NO_ERROR is a graceful shutdown — the API server closing cleanly as it restarts during
the upgrade, on a single-node control plane with no replica to absorb the request. It happened over an
already-established, already-negotiated connection, so an x/crypto change cannot be the cause: a
crypto regression fails the handshake, not after it. Steps 1/3 and 2/3 passed in the same run.

I filed that as its own defect — #6848 — because a real user upgrading a single-node cluster hits
the same window. It does not block this PR.

Next action

Once run 33703166551 settles,
re-run that one failed jobPOST actions/jobs/100488028950/rerun returns 403 "The workflow run containing this job is already running" until then, so it cannot be done earlier. When it passes, the
pentad is clear and this merges directly (author devantler, ksail has no merge queue):

gh pr merge 6847 --repo devantler-tech/ksail --squash --match-head-commit d6643e20ad28bab3847940bf18c6a310847e6c03

Landing this also clears #6839, which fails only the same 🛡️ Vulnerability Scan inherited from
red main and already has auto-merge armed.

@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="devantler-tech/ksail"
pr="6847"

echo "== Pull request =="
gh pr view "$pr" --repo "$repo" --json number,headRefOid,mergeable,mergeStateStatus,isDraft,state,statusCheckRollup \
  --jq '{
    number,
    headRefOid,
    mergeable,
    mergeStateStatus,
    isDraft,
    state,
    checks: [.statusCheckRollup[] | {
      name: (.name // .context),
      status: .status,
      conclusion: .conclusion,
      detailsUrl: (.detailsUrl // .targetUrl)
    }]
  }'

head="$(gh pr view "$pr" --repo "$repo" --json headRefOid --jq .headRefOid)"
echo "== Reviews at head $head =="
gh api "repos/$repo/pulls/$pr/reviews?per_page=100" \
  --jq --arg head "$head" '[.[] | select(.commit_id == $head) | {user: .user.login, state: .state, submitted_at: .submitted_at, body: .body}]'

echo "== Open review threads =="
gh api graphql -F owner="devantler-tech" -F name="ksail" -F number="$pr" -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        totalCount
        nodes { isResolved }
      }
    }
  }
}' --jq '.data.repository.pullRequest.reviewThreads | {totalCount, unresolved: ([.nodes[] | select(.isResolved == false)] | length)}'

Length of output: 17096


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="devantler-tech/ksail"
pr="6847"
head="d6643e20ad28bab3847940bf18c6a310847e6c03"

echo "== Submitted reviews at the current head =="
gh api "repos/$repo/pulls/$pr/reviews?per_page=100" \
  --jq "[.[] | select(.commit_id == \"$head\") | {user: .user.login, state, submitted_at, id}]"

echo "== Review-thread resolution state =="
gh api graphql \
  -F owner="devantler-tech" \
  -F name="ksail" \
  -F number="$pr" \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        totalCount
        pageInfo { hasNextPage }
        nodes { isResolved }
      }
    }
  }
}' \
  --jq '.data.repository.pullRequest.reviewThreads | {
    totalCount,
    hasNextPage: .pageInfo.hasNextPage,
    unresolved: ([.nodes[] | select(.isResolved == false)] | length)
  }'

Length of output: 1195


@devantler, verification confirms the reported state with one update.

  • PR #6847 is open at d6643e20ad28bab3847940bf18c6a310847e6c03.
  • GitHub reports MERGEABLE.
  • GitHub reports BLOCKED because CI - Required Checks is failed.
  • The failed required check is still linked to Talos/ArgoCD system-test job 100488028950.
  • The vulnerability scan, tidy checks, builds, full Go test job, and Analyze (go) are successful.
  • There are zero review threads and zero unresolved review threads.
  • GitHub has no submitted pull-request review object at this head. This matches the summary-comment-based CodeRabbit completion described in the PR discussion.

The PR remains blocked until a successful rerun replaces the failed system-test result.

You are interacting with an AI system.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

Correction to my previous comment, and the transient re-run is away

Re-run dispatched. Run 33703166551
settled failure at ~02:2xZ, which is what POST actions/jobs/100488028950/rerun was waiting on; it
now accepts and the run is queued. If the GOAWAY does not recur, the pentad is clear and this merges
with the head-pinned command in my previous comment.

Correction — I overstated the knock-on effect on #6839. I wrote that landing this "also clears
#6839". That is wrong as stated, and the difference matters to whoever picks this up next. Checked
directly:

ref golang.org/x/crypto
main v0.55.0 (vulnerable)
this PR d6643e20 v0.56.0
#6839 head c473ece8 v0.55.0 (vulnerable)

#6839 branched before this fix, so its own head still pins the vulnerable version — the
🛡️ Vulnerability Scan there is failing on #6839's own module graph, not merely inheriting a red
base. Merging this PR therefore does not by itself turn that check green. #6839 needs Dependabot
to rebase it onto the new main first; only then does its scan pass and its already-armed auto-merge
fire.

So the accurate statement is: #6839 is unblocked by this merge plus a rebase, and if Dependabot
does not rebase it on its own it becomes ordinary rung-one work rather than something that resolves
itself. Worth watching given #6819 already tracks dependency automation not landing updates without
intervention.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

security: update x/crypto for SSH channel DoS fixes

1 participant