Skip to content

feat: adopt Sol scanner policy with compatible Responses adapters - #68

Merged
Patrick-Erichsen merged 4 commits into
mainfrom
patrick/model-policy-20261019
Oct 20, 2026
Merged

Patrick-Erichsen merged 4 commits into
mainfrom
patrick/model-policy-20261019

Conversation

@Patrick-Erichsen

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

Copy link
Copy Markdown
Collaborator

Summary

  • Move ClawHub scanner/judge defaults to GPT-6.1 Sol (medium scanners, high judge), preserving explicit operator overrides.
  • Patch pinned SkillSpector and AIG dependencies to use Responses for Sol, explicitly request Standard service, and retain non-Sol behavior.
  • Add secret-safe runner-derived judge.configuredModel request provenance; model-authored identity remains untrusted.
  • Resolve the effective SkillSpector provider before provider-specific model defaults, including model-only custom profiles.
  • Explicitly select Standard for both bundled Codex judges; complete operator judge commands remain authoritative.
  • Align docs and autoreview defaults with Sol/high/Standard while preserving CLI/environment precedence.

Verification

  • Fresh go test -count=1 ./..., go vet ./..., docs build and 20 Node tests passed.
  • SkillSpector upstream/owned suite: 347 passed, 9 skipped; AIG: 165 passed. Fresh installed wire suites: 18 SkillSpector + 43 AIG.
  • Real bounded Sol/medium/Standard calls passed through both patched adapters, with explicit service_tier: default observed. Unpatched SkillSpector tool calls failed HTTP 400; patched Responses calls succeeded.
  • Real RunJudge subprocess regression verifies configured model, rejection of model-authored identity, and command/credential non-disclosure.
  • Nine executed v0.2.0-to-candidate CLI upgrade cases preserve operator controls and project shadow profiles and exercise the provider-inference regression. Synthetic subprocess probes, no live provider calls in this upgrade harness.
  • Both native Linux amd64 and arm64 image builds exported/loaded successfully and executed all three installed CLIs: https://github.com/openclaw/clawscan/actions/runs/39360776474. Retained immutable identities are bound to the exact unchanged runtime context tree efedcc6c67111eebd45862143b613d05ad7fa4a0. Fresh exact-head run: https://github.com/openclaw/clawscan/actions/runs/39361404351.
  • Independent Sol/high/Standard P0–P3 final follow-up review: scoped-clean. Parent independently reran focused provider/judge regressions and all nine CLI upgrade cases.

Rollout boundary

  • Consumer must pin the merged source and install matching patched dependencies. npm 0.2.0 alone is not sufficient.
  • Local Docker export failed due to storage I/O; hosted native builds supplied the required successful export/load/execution proof. No local Docker restart/prune/rebuild was used to recover it.
  • Transport and CLI upgrade evidence do not establish broad scanner quality. Separate consumer preliminary benign/malicious real three-lane checks passed; final exact-merged-source consumer proof remains separate.
  • No production configuration or scanner activation changed.

@Patrick-Erichsen
Patrick-Erichsen requested a review from a team as a code owner October 20, 2026 02:09
@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.

@clawsweeper clawsweeper Bot added clawsweeper:intake:feature Preliminary submission classification; full source review pending. P2 Normal priority bug or improvement with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. 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

This PR adopts Sol scanner and judge defaults, adds Responses compatibility patches, and records configured judge-model provenance while preserving operator overrides.

Example: A custom SkillSpector profile sets gpt-6.1-sol and medium reasoning, omits the provider, and runs with OPENAI_API_KEY.

  • Before: The earlier PR head inferred OpenAI after skipping the profile's model and reasoning defaults.
  • After: The provider is inferred first, so SkillSpector receives openai, gpt-6.1-sol, and medium.

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) Useful, coherent implementation with the prior defect resolved, executed CLI upgrade evidence, and successful current-head image verification; broad deployed scanner quality remains outside this source-preparation scope.
Proof confidence 🐚 platinum hermit (4/6) This collaborator-authored PR is outside the ordinary contributor-proof gate; the supplied exact-candidate CLI upgrade trace exercises profile/default routing, and successful native image jobs cover installed entrypoints, while bounded live adapter calls are reported without a broad scanner-quality claim.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Product

Kind: Feature · Worth it: Yes · Fix scope: Complete
User problem: Operators need bundled Sol scanner and judge settings that work with the scanner dependencies and retain their explicit provider, model, effort, and judge choices.
Reason: The collaborator-authored direction is authorized, and the implementation addresses transport compatibility and upgrade routing together without expanding the public CLI into a provider framework.

Merge readiness

✅ Ready for maintainer review

Keep open: this maintainer-authored PR delivers useful work absent from main; the previous provider-inference finding is fixed, and no new actionable defect was found.

Priority: P2
Reviewed head: 58ee16101e3187175c246495240c9196139c482f

Before merge

None.

Findings

None.

Agent review details

How this fits together

Profile resolution passes non-secret defaults into the runner, which launches sandboxed scanners and an external judge and preserves their JSON evidence in run artifacts.

flowchart LR
  A[CLI and profile] --> B[Runner defaults]
  B --> C[Sandboxed scanners]
  C --> D[Patched Responses adapters]
  D --> E[Raw scanner evidence]
  E --> F[External Codex judge]
  F --> G[Run artifact]
Loading

Technical review

Best possible solution:

Land the reviewed source with its matching patched runtime and retain the documented separation between source adoption and consumer rollout.

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

The earlier provider-ordering failure follows directly from the previous source; the current source fixes it, and the posted executed CLI trace exercises the corrected custom-profile case.

Is this the best way to solve the issue?

The change keeps profile defaults in the existing runner and confines transport compatibility to pinned upstream adapters, with conservative configured-request provenance and preserved overrides.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 148c420335e3.

Provenance checked

  • Bundled judge model and service tier changes intended behavior with a stated reason (4ea8b63: The bundled Codex judge originally selected GPT-5.5/high with fast service; fix(profiles): use Luna judges and forward scanner reasoning #62 later selected Luna while retaining that tier.)
  • Scanner environment defaults and credential routing keeps the original intent (f3ac276: The existing AIG runtime owner routes OpenAI credentials to OpenAI while retaining dedicated-key provider defaults; the new model defaults preserve those endpoint and key boundaries.)
  • Pinned scanner installation changes intended behavior with a stated reason (26649a8: Command-backed tools were packaged in the sandbox runtime; later pins refreshed dependencies, while this PR explains why exact source pins and narrow Responses patches are required.)
  • Runtime image verification keeps the original intent (26649a8: The original workflow built runtime images on PRs and published on trusted events; this PR preserves publication and replaces PR builds with native export/load and executable smoke verification.)
  • Shared autoreview entrypoint keeps the original intent (6cde6b1: chore(autoreview): use the shared canonical skill #63 removed vendored review implementations in favor of the shared installation; this PR retains that owner and adds repository defaults with explicit-override precedence.)

Testing

Proof path: shipped entry point.

Security

None.

Evidence

What I checked:

Likely related people:

  • Patrick Erichsen: Raw commit e20fc9f adds internal/profiles/clawhub/clawscan.yml:15 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: e20fc9f2c0d5; files: internal/profiles/clawhub/clawscan.yml)
  • Vincent Koc: Raw commit 490bd16 adds internal/runner/scanner_registry.go:345 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: 490bd167ea43; files: internal/runner/scanner_registry.go)
  • Peter Steinberger: Raw commit 128e696 adds docker/clawscan-runtime/Dockerfile:5 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: 128e69644488; files: docker/clawscan-runtime/Dockerfile)
  • boyhack: Raw commit f3ac276 adds internal/runner/runner.go:2211 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: f3ac276393cd; files: internal/runner/runner.go)

Labels

Label changes:

  • add merge-risk: 🚨 compatibility: Bundled model defaults require matching patched scanner dependencies; the maintainer-authored rollout boundary explicitly accepts and documents that coupling.
  • add merge-risk: 🚨 auth-provider: The PR changes model selection, provider-default ordering, API transport, and service-tier requests while preserving explicit operator settings.
  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit. Replaced prior rating: 🧂 unranked krab.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.
  • remove rating: 🧂 unranked krab: Current PR rating is rating: 🐚 platinum hermit, so this older rating label is no longer current.
  • remove status: ⏳ waiting on author: Current PR status label is status: 👀 ready for maintainer look.

Label justifications:

  • P2: This is an authorized scanner-policy improvement with a bounded integration scope and no demonstrated urgent user outage.
  • merge-risk: 🚨 compatibility: Bundled model defaults require matching patched scanner dependencies; the maintainer-authored rollout boundary explicitly accepts and documents that coupling.
  • merge-risk: 🚨 auth-provider: The PR changes model selection, provider-default ordering, API transport, and service-tier requests while preserving explicit operator settings.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit. Replaced prior rating: 🧂 unranked krab.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

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.

History

Review history (1 earlier review cycle)
  • reviewed 2026-10-20T02:23:26.285Z sha 8d686b6 :: blocked before merge. :: [P2] Resolve the inferred provider before applying model defaults

Reviewed October 19, 2026, 10:59 PM ET / October 20, 2026, 02:59 UTC (Revision 2).

@Patrick-Erichsen

Copy link
Copy Markdown
Collaborator Author

The reported P2 and both requested proof gaps are addressed at head 58ee16101e3187175c246495240c9196139c482f.

The provider-inference regression reproduced before the fix and passes now. The effective provider is selected after explicit profile-provider settings but before provider-specific defaults; explicit environment settings and non-OpenAI providers remain authoritative. Both bundled Codex judges also explicitly request service_tier="default"; operator judge-command overrides remain unchanged.

The actual v0.2.0 binary (source ef02eb65260b113638a286bb785a9e52b40935c4) and exact candidate binary (Go build metadata vcs.revision=58ee16101e3187175c246495240c9196139c482f, vcs.modified=false) passed nine executed CLI upgrade cases. Parent independently reran all nine. Candidate binary SHA-256: 3468554b2e3965755db68e38f9a73b98ac9fcf3e1c0712133278eaa34bc60d0c.

This is actual CLI/profile/environment/subprocess routing proof with secretless synthetic scanner/judge probes, not provider wire or verdict-quality proof. The checked-in reproducible harness is scripts/verify-model-policy-upgrade.py; unchanged v0.2.0 as candidate correctly fails its negative control.

Native image proof passed for both Linux amd64 and arm64, including export/load, architecture/OS assertions and skillspector --help, aig-skill-scan --help, codex --version executed by immutable loaded image ID without network or provider credentials: https://github.com/openclaw/clawscan/actions/runs/39360776474.

The source stamp in those artifacts is GitHub synthetic merge 1d0a6183de03328216cfc9f43db3b2fabfe7add7, whose parents are main 148c420335e37d75d6c3e7d286aeb81ed4c88639 and previous PR head 30ee1efd67e94763a65a97eb51b6105add8350c5. Parent verified the Docker runtime context tree is exactly efedcc6c67111eebd45862143b613d05ad7fa4a0 in that merge, previous head and current head; the follow-up only changes Go/profile/docs/upgrade harness. Current-head image run is also underway: https://github.com/openclaw/clawscan/actions/runs/39361404351.

  • amd64 build digest: sha256:ac96afe93cbf68ae4dd0e73328ff5f292a3656776b097f198e106b9ce0e65615
  • amd64 executed image: sha256:d8fcfc8e24c9142522a3acd9d8b4e2bda2558b762e51aead8b2e555e46d0abf4
  • arm64 build digest: sha256:045030bf218ef49e61cc1c36bd8d1e53869dae4b0f259fc3c3add70c01a6f93a
  • arm64 executed image: sha256:db2098c0f36c08ac16cdbd58b89336ca183fd0dea6acf70126f617b8a95b4a62

Artifacts runtime-image-proof-linux-amd64 / runtime-image-proof-linux-arm64 contain identity and actual CLI output; they retain immutable identities, not multi-GB images.

Fresh full Go tests/vet, docs build, harness lint/format and Sol/high/Standard P0–P3 review passed. Parent independently reran the focused Go regressions. Provider-observed identity is not claimed by judge.configuredModel; it is runner-derived configured-request provenance. The consumer still must pin the actual merged source with matching patched dependencies and finish final live behavior/transport proof.

Raw executed upgrade trace
{
  "kind": "clawscan-model-policy-upgrade-v1",
  "previous": {
    "sha256": "014ee7bca4fdd0cab6368b27e8265a7bc51eccfbc3c90cc0dec033686bd2dda3"
  },
  "candidate": {
    "sha256": "3468554b2e3965755db68e38f9a73b98ac9fcf3e1c0712133278eaa34bc60d0c"
  },
  "execution": "real CLI binaries with synthetic subprocess probes; no provider calls",
  "cases": [
    {
      "case": "previous-bundled",
      "observed": [
        {
          "probe": "skillspector",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "openai",
            "DEFAULT_MODEL": "gpt-5.5",
            "DEFAULT_BASE_URL": "https://api.openai.com/v1"
          }
        },
        {
          "probe": "aig-skill-scan",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "openai",
            "DEFAULT_MODEL": "gpt-5.5",
            "DEFAULT_BASE_URL": "https://api.openai.com/v1"
          }
        },
        {
          "probe": "codex",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "openai",
            "DEFAULT_MODEL": "gpt-5.5",
            "DEFAULT_BASE_URL": "https://api.openai.com/v1"
          },
          "model": "gpt-5.5",
          "config": [
            "approval_policy=never",
            "model_reasoning_effort=high",
            "service_tier=fast",
            "shell_environment_policy.inherit=\"core\"",
            "shell_environment_policy.ignore_default_excludes=false"
          ],
          "ignoreUserConfig": true
        }
      ],
      "scanners": [
        "aig",
        "clawscan-static",
        "skillspector"
      ],
      "judgeConfiguredModel": null
    },
    {
      "case": "candidate-bundled",
      "observed": [
        {
          "probe": "skillspector",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "openai",
            "SKILLSPECTOR_MODEL": "gpt-6.1-sol",
            "SKILLSPECTOR_REASONING_EFFORT": "medium",
            "DEFAULT_MODEL": "gpt-6.1-sol",
            "REASONING_EFFORT": "medium",
            "DEFAULT_BASE_URL": "https://api.openai.com/v1"
          }
        },
        {
          "probe": "aig-skill-scan",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "openai",
            "SKILLSPECTOR_MODEL": "gpt-6.1-sol",
            "SKILLSPECTOR_REASONING_EFFORT": "medium",
            "DEFAULT_MODEL": "gpt-6.1-sol",
            "REASONING_EFFORT": "medium",
            "DEFAULT_BASE_URL": "https://api.openai.com/v1"
          }
        },
        {
          "probe": "codex",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "openai",
            "SKILLSPECTOR_MODEL": "gpt-6.1-sol",
            "SKILLSPECTOR_REASONING_EFFORT": "medium",
            "DEFAULT_MODEL": "gpt-6.1-sol",
            "REASONING_EFFORT": "medium",
            "DEFAULT_BASE_URL": "https://api.openai.com/v1"
          },
          "model": "gpt-6.1-sol",
          "config": [
            "approval_policy=never",
            "model_reasoning_effort=high",
            "service_tier=\"default\"",
            "shell_environment_policy.inherit=\"core\"",
            "shell_environment_policy.ignore_default_excludes=false"
          ],
          "ignoreUserConfig": true
        }
      ],
      "scanners": [
        "aig",
        "clawscan-static",
        "skillspector"
      ],
      "judgeConfiguredModel": "gpt-6.1-sol"
    },
    {
      "case": "candidate-clawhub-aig",
      "observed": [
        {
          "probe": "skillspector",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "openai",
            "SKILLSPECTOR_MODEL": "gpt-6.1-sol",
            "SKILLSPECTOR_REASONING_EFFORT": "medium",
            "DEFAULT_MODEL": "gpt-6.1-sol",
            "REASONING_EFFORT": "medium",
            "DEFAULT_BASE_URL": "https://api.openai.com/v1"
          }
        },
        {
          "probe": "aig-skill-scan",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "openai",
            "SKILLSPECTOR_MODEL": "gpt-6.1-sol",
            "SKILLSPECTOR_REASONING_EFFORT": "medium",
            "DEFAULT_MODEL": "gpt-6.1-sol",
            "REASONING_EFFORT": "medium",
            "DEFAULT_BASE_URL": "https://api.openai.com/v1"
          }
        },
        {
          "probe": "codex",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "openai",
            "SKILLSPECTOR_MODEL": "gpt-6.1-sol",
            "SKILLSPECTOR_REASONING_EFFORT": "medium",
            "DEFAULT_MODEL": "gpt-6.1-sol",
            "REASONING_EFFORT": "medium",
            "DEFAULT_BASE_URL": "https://api.openai.com/v1"
          },
          "model": "gpt-6.1-sol",
          "config": [
            "approval_policy=never",
            "model_reasoning_effort=high",
            "service_tier=\"default\"",
            "shell_environment_policy.inherit=\"core\"",
            "shell_environment_policy.ignore_default_excludes=false"
          ],
          "ignoreUserConfig": true
        }
      ],
      "scanners": [
        "aig",
        "skillspector"
      ],
      "judgeConfiguredModel": "gpt-6.1-sol"
    },
    {
      "case": "previous-overrides",
      "observed": [
        {
          "probe": "skillspector",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "anthropic",
            "SKILLSPECTOR_MODEL": "operator-model",
            "SKILLSPECTOR_REASONING_EFFORT": "high",
            "DEFAULT_MODEL": "operator-aig",
            "REASONING_EFFORT": "low",
            "DEFAULT_BASE_URL": "https://provider.example/v1"
          }
        },
        {
          "probe": "aig-skill-scan",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "anthropic",
            "SKILLSPECTOR_MODEL": "operator-model",
            "SKILLSPECTOR_REASONING_EFFORT": "high",
            "DEFAULT_MODEL": "operator-aig",
            "REASONING_EFFORT": "low",
            "DEFAULT_BASE_URL": "https://provider.example/v1"
          }
        },
        {
          "probe": "codex",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "anthropic",
            "SKILLSPECTOR_MODEL": "operator-model",
            "SKILLSPECTOR_REASONING_EFFORT": "high",
            "DEFAULT_MODEL": "operator-aig",
            "REASONING_EFFORT": "low",
            "DEFAULT_BASE_URL": "https://provider.example/v1"
          },
          "model": "gpt-6-luna",
          "config": [
            "model_reasoning_effort=low",
            "service_tier=\"priority\""
          ],
          "ignoreUserConfig": false
        }
      ],
      "scanners": [
        "aig",
        "clawscan-static",
        "skillspector"
      ],
      "judgeConfiguredModel": null
    },
    {
      "case": "previous-project-shadow",
      "observed": [
        {
          "probe": "skillspector",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "openai"
          }
        }
      ],
      "scanners": [
        "skillspector"
      ],
      "judgeConfiguredModel": null
    },
    {
      "case": "candidate-overrides",
      "observed": [
        {
          "probe": "skillspector",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "anthropic",
            "SKILLSPECTOR_MODEL": "operator-model",
            "SKILLSPECTOR_REASONING_EFFORT": "high",
            "DEFAULT_MODEL": "operator-aig",
            "REASONING_EFFORT": "low",
            "DEFAULT_BASE_URL": "https://provider.example/v1"
          }
        },
        {
          "probe": "aig-skill-scan",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "anthropic",
            "SKILLSPECTOR_MODEL": "operator-model",
            "SKILLSPECTOR_REASONING_EFFORT": "high",
            "DEFAULT_MODEL": "operator-aig",
            "REASONING_EFFORT": "low",
            "DEFAULT_BASE_URL": "https://provider.example/v1"
          }
        },
        {
          "probe": "codex",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "anthropic",
            "SKILLSPECTOR_MODEL": "operator-model",
            "SKILLSPECTOR_REASONING_EFFORT": "high",
            "DEFAULT_MODEL": "operator-aig",
            "REASONING_EFFORT": "low",
            "DEFAULT_BASE_URL": "https://provider.example/v1"
          },
          "model": "gpt-6-luna",
          "config": [
            "model_reasoning_effort=low",
            "service_tier=\"priority\""
          ],
          "ignoreUserConfig": false
        }
      ],
      "scanners": [
        "aig",
        "clawscan-static",
        "skillspector"
      ],
      "judgeConfiguredModel": "gpt-6-luna"
    },
    {
      "case": "candidate-project-shadow",
      "observed": [
        {
          "probe": "skillspector",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "openai"
          }
        }
      ],
      "scanners": [
        "skillspector"
      ],
      "judgeConfiguredModel": null
    },
    {
      "case": "candidate-inferred-provider",
      "observed": [
        {
          "probe": "skillspector",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "openai",
            "SKILLSPECTOR_MODEL": "gpt-6.1-sol",
            "SKILLSPECTOR_REASONING_EFFORT": "medium"
          }
        }
      ],
      "scanners": [
        "skillspector"
      ],
      "judgeConfiguredModel": null
    },
    {
      "case": "candidate-custom-other-provider",
      "observed": [
        {
          "probe": "skillspector",
          "controls": {
            "SKILLSPECTOR_PROVIDER": "anthropic"
          }
        }
      ],
      "scanners": [
        "skillspector"
      ],
      "judgeConfiguredModel": null
    }
  ]
}

@Patrick-Erichsen

Copy link
Copy Markdown
Collaborator Author

@clawsweeper re-review

The P2 fix and upgrade/image proof are ready at exact head 58ee16101e3187175c246495240c9196139c482f; the PR body is current. Proof and raw upgrade trace: #68 (comment).

@clawsweeper

clawsweeper Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

🦞👀
Exact review queued.

Re-review progress:

@clawsweeper clawsweeper Bot added the clawsweeper:intake:feature Preliminary submission classification; full source review pending. label Oct 20, 2026
@Patrick-Erichsen

Copy link
Copy Markdown
Collaborator Author

Fresh current-head runtime proof is now complete: https://github.com/openclaw/clawscan/actions/runs/39361404351. Both native architecture jobs passed export/load, identity assertions and execution of all three installed CLIs. No provider credentials/network were used.

Artifacts stamp GitHub synthetic merge 0038afe7bb87f7948bea66b82587d86e31fbaf65; parent independently fetched and verified its parents are 148c420335e37d75d6c3e7d286aeb81ed4c88639 and the exact reviewed head 58ee16101e3187175c246495240c9196139c482f. Runtime context tree equals efedcc6c67111eebd45862143b613d05ad7fa4a0.

amd64:

source=0038afe7bb87f7948bea66b82587d86e31fbaf65
platform=linux/amd64
build_digest=sha256:d6832ebf4a5259b3af97b599d92a59f7e34c006337b2f8f4087c329d0052696c
loaded_image_id=sha256:f7ca39387f04a017387dac3377c763493691a981a3d6e23bf3a5e9888535a23b

arm64:

source=0038afe7bb87f7948bea66b82587d86e31fbaf65
platform=linux/arm64
build_digest=sha256:5cec9affc3d84cb7b0111e721f1fae164c7526ff7a77b9c232045bcf755d267a
loaded_image_id=sha256:294bc9acdf61b25e98800d8fe45883b984023d892da8cef811d7ee090efe053f

Actual CLI help output and codex-cli 0.160.0 were downloaded and inspected for both architectures. Core CI also passed at head 58ee161: https://github.com/openclaw/clawscan/actions/runs/39361404411. The existing exact-head re-review remains in progress; this is supplemental proof, not a new review request.

@Patrick-Erichsen
Patrick-Erichsen merged commit 5be7f8e into main Oct 20, 2026
14 checks passed
@Patrick-Erichsen
Patrick-Erichsen deleted the patrick/model-policy-20261019 branch October 20, 2026 03:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clawsweeper:intake:feature Preliminary submission classification; full source review pending. P2 Normal priority bug or improvement with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant