Skip to content

test: verify live judge artifact inspection on a compatible runner - #70

Merged
steipete merged 14 commits into
mainfrom
fix-judge-required-artifact-inspection
Oct 23, 2026
Merged

steipete merged 14 commits into
mainfrom
fix-judge-required-artifact-inspection

Conversation

@Patrick-Erichsen

@Patrick-Erichsen Patrick-Erichsen commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Adds an opt-in live check that the ClawHub judge can inspect package files in the worker's restricted environment. Ubuntu 24.04 rejects the nested bubblewrap setup even when a simple sandbox command succeeds; the retained check uses Ubuntu 22.04 and preserves the read-only judge sandbox.

The workflow builds ClawScan, installs the pinned Codex CLI, scans a harmless local package using scanner fixtures, and verifies the completed inspection receipt, manifest SHA-256, and inspected path. Normal push and pull-request CI leave this paid check disabled. It neither accesses registry state nor publishes packages.

Updated against current main with the explicit Go 1.27.3 pin, operator documentation, and a changelog entry crediting @Patrick-Erichsen.

Validation

@Patrick-Erichsen
Patrick-Erichsen requested a review from a team as a code owner October 20, 2026 20:03
@clawsweeper

clawsweeper Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@Patrick-Erichsen Patrick-Erichsen changed the title test: reproduce judge artifact inspection across Linux runners test: verify live judge artifact inspection on a compatible runner Oct 20, 2026
@clawsweeper clawsweeper Bot added clawsweeper:intake:feature Preliminary submission classification; full source review pending. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. proof: sufficient Contributor real behavior proof is sufficient. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed clawsweeper:intake:feature Preliminary submission classification; full source review pending. labels Oct 20, 2026
@clawsweeper

clawsweeper Bot commented Oct 20, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge.

What this changes

Adds an opt-in Ubuntu 22.04 workflow that runs the real ClawHub judge against a harmless package and verifies its inspection receipt.

Example: A maintainer manually enables judge-inspection for inspection-smoke@1.0.0.

  • Before: CI has no retained live check that the judge can inspect package files in the restricted environment.
  • After: The workflow runs Codex 0.160.0, requires a completed receipt containing artifact/package.json and its correct SHA-256, and retains the report.

Review scores

Measure Result What it means
Overall readiness 🦞 diamond lobster (5/6) Focused, owner-directed verification through the shipped CLI, with a successful final-head live run and no actionable findings.
Proof confidence 🦞 diamond lobster (5/6) ✨ media proof bonus Sufficient (linked_artifact): The supplied paired live runs exercise the real CLI and Codex judge, and the final-head Ubuntu 22.04 job successfully runs the receipt and hash assertions with a retained report; raw log and artifact downloads were blocked by the review network, not missing contributor evidence.
Patch quality 🦞 diamond lobster (5/6) No actionable review findings were identified.

Product

Kind: Test only · Worth it: Yes · Fix scope: Complete
User problem: A simple sandbox probe can pass while the real judge cannot inspect package files on a runner.
Reason: The area owner's contribution retains a focused live check for an observed runner failure, with explicit limits and no scanner or publishing behavior changes.

Merge readiness

✅ Ready for maintainer review

Keep this PR open for landing: it adds useful live judge coverage absent from main, follows the existing inspection contract, and introduces no actionable defect.

Priority: P3
Reviewed head: ac1cd73749efa9a0016df2ed474778fe2e6a649e

Before merge

None.

Findings

None.

Agent review details

How this fits together

GitHub Actions builds the CLI, supplies local scanner fixtures and a restricted environment, invokes the existing ClawHub judge profile, and checks the resulting JSON report.

flowchart LR
  A[Manual dispatch] --> B[Ubuntu 22.04 runner]
  B --> C[Harmless package and scanner fixtures]
  C --> D[ClawScan CLI]
  D --> E[Read only Codex judge]
  E --> F[Receipt validation]
  F --> G[Retained report]
Loading

Technical review

Best possible solution:

Land the bounded manual smoke workflow while preserving the existing judge sandbox and receipt validator.

Do we have a high-confidence way to reproduce the issue?

This verification-only PR supplies paired live Ubuntu runs and a successful final-head smoke run; no target code was executed during this review.

Is this the best way to solve the issue?

The focused workflow exercises the existing CLI and production judge profile without duplicating validation logic or weakening sandbox policy.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 5be7f8e97fa4.

Provenance checked

  • Manual CI dispatch and job integration keeps the original intent (e929fe0: The existing maintainer-automation commit provides manual dispatch and workflow linting; the new job preserves normal CI behavior and defaults to disabled.)
  • Judge sandbox and inspection receipt keeps the original intent (fix: require verified artifact inspection #17: Require actual artifact inspection and use Docker as the outer boundary while retaining read-only Codex execution when Docker is disabled.)

Testing

Proof path: shipped entry point.

Security

None.

Evidence

What I checked:

Likely related people:

  • Patrick Erichsen: Raw commit 1874c5b adds .github/workflows/ci.yml:1 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: 1874c5b9da59; files: .github/workflows/ci.yml)
  • Vincent Koc: Raw commit e929fe0 adds .github/workflows/ci.yml:16 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: medium; commits: e929fe0428c2; files: .github/workflows/ci.yml)
  • Peter Steinberger: Raw commit 148c420 adds .github/workflows/ci.yml:36 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: medium; commits: 148c420335e3; files: .github/workflows/ci.yml)

Labels

Label changes:

  • add P3: This is preventive, opt-in verification with no production runtime or publication change.
  • add proof: sufficient: Contributor real behavior proof is sufficient.
  • add rating: 🦞 diamond lobster: Overall readiness is 🦞 diamond lobster; proof is 🦞 diamond lobster and patch quality is 🦞 diamond lobster.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Label justifications:

  • P3: This is preventive, opt-in verification with no production runtime or publication change.
  • rating: 🦞 diamond lobster: Overall readiness is 🦞 diamond lobster; proof is 🦞 diamond lobster and patch quality is 🦞 diamond lobster.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.
  • proof: sufficient: Contributor real behavior proof is sufficient.

Rating scale

6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior.

Workflow

ClawSweeper edits this one comment on every review. Comment @clawsweeper re-review for a fresh review only. Repair and merge execution lanes are retired.

Reviewed October 20, 2026, 4:28 PM ET / 20:28 UTC.

Patrick-Erichsen and others added 10 commits October 20, 2026 17:34
fix: render the challenged file in judge receipt examples
Select Go 1.27.3 for source, CI, and release builds while retaining the Go 1.27.1 language minimum. All Go workflows select the toolchain from go.mod. Update the README and changelog to match.

On native macOS, the Go 1.27.2 baseline reaches GO-2026-6809 through `HuggingFaceBenchmarkClient.FetchSkillTrustBenchRows` at `internal/runner/benchmark.go:835`, then `bufio.Scanner.Scan` and `x509.Certificate.Verify`. The same symbol-level `govulncheck ./...` scan is clean on Go 1.27.3.

Validation: `go build ./...`, `go test -count=1 ./...`, `go vet ./...`, npm wrapper and package-builder tests, and `node scripts/build-npm-package.mjs --version v0.0.0 --pack --smoke` pass. Independent P0–P3 autoreview found no actionable issues. A patch release will follow after exact-head CI and release preflight pass.

This PR also prepares the dated v0.2.1 changelog so the same reviewed source can pass the tag-driven release preflight. The empty Unreleased section is retained for subsequent work.
Explicitly select Go 1.27.3 in every setup-go invocation, preserving the Go 1.27.1 source minimum and existing source toolchain declaration.

Follow-up to #72: go-version-file makes setup-go select the language minimum before consulting the toolchain directive. The explicit version prevents this older setup selection in CI, release, benchmark, and results workflows. All six published v0.2.1 binaries already independently verify as Go 1.27.3 through source toolchain switching; no replacement release is needed.

Validation: actionlint passes; independent P0–P3 autoreview found no actionable issues. Exact-head CI verifies both Linux and macOS packaging.
Apply the reviewed eMudhra incident remediation.

Validation and remaining platform/deployment qualifications are recorded in the pull request.
A successful judge process can omit the required artifact path in its inspection receipt. Preserve that failed result and re-evaluate once with a fresh workspace/challenge under the original shared judge deadline. Never retry valid security verdicts or command failures; exhausted invalid receipts still fail closed.
A killed scanner run previously retained neither its final artifact nor the active stage. Emit allowlisted stderr phase and direct-child process events when CLAWSCAN_PROGRESS=1 so the worker can attribute an unfinished phase. Keep deadlines, raw scanner evidence and final verdict validation unchanged; this is diagnostic enablement, not a timeout recovery claim.
Add a manual Ubuntu 22.04 check for the ClawHub judge's real package-file inspection and retain its redacted receipt. Keep normal CI opt-out, preserve read-only execution, and pin the patched Go toolchain.

Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
@steipete
steipete merged commit cdcbb17 into main Oct 23, 2026
12 checks passed
@steipete
steipete deleted the fix-judge-required-artifact-inspection branch October 23, 2026 06:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. proof: sufficient Contributor real behavior proof is sufficient. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants