chore: apply event sweep result for openclaw-openclaw#79555

[skip ci]
This commit is contained in:
clawsweeper 2026-05-08 23:31:10 +00:00
parent 1b0f146e41
commit d8cc0f2bd8

View File

@ -1,5 +1,5 @@
---
review_comment_synced_at: 2026-05-08T23:14:47.342Z
review_comment_synced_at: 2026-05-08T23:31:10.094Z
number: 79555
repository: openclaw/openclaw
type: pull_request
@ -7,12 +7,12 @@ title: "fix(xai): context-aware thinking profile for reasoning-capable models"
url: https://github.com/openclaw/openclaw/pull/79555
state_at_review: open
item_created_at: 2026-05-08T23:07:25Z
item_updated_at: 2026-05-08T23:08:09Z
item_updated_at: 2026-05-08T23:24:12Z
author: colinmcintosh
author_association: NONE
labels: ["size: S","triage: needs-real-behavior-proof"]
reviewed_at: 2026-05-08T23:14:05.250Z
main_sha: ff4d5541a2ad104e0fc9c7c52b452ab4d5d8e17f
reviewed_at: 2026-05-08T23:30:31.929Z
main_sha: b6423fbd323cc1ecfc8ef452b7d862a5ec0685f8
pull_head_sha: 3191edb404585b856fb1e6af89ada027990ca12f
latest_release: v2026.5.7
latest_release_sha: eeef4864494f859838fec1586bedbab1f8fa5702
@ -31,19 +31,19 @@ review_model: gpt-5.5
review_reasoning_effort: high
review_sandbox: danger-full-access
review_service_tier: default
review_prompt_chars: 48268
review_prompt_chars: 58997
review_static_prompt_chars: 33412
review_context_chars: 13608
review_context_chars: 24337
review_schema_chars: 14081
review_additional_prompt_chars: 0
review_context_elapsed_ms: 3789
review_codex_elapsed_ms: 197482
review_context_elapsed_ms: 3028
review_codex_elapsed_ms: 197517
review_mode: propose
review_status: complete
local_checkout_access: verified
item_snapshot_hash: 845ebb8ea37bda1ff9d4ef054e4e2f33cb26209e6e83c39424e003e9205952ca
item_snapshot_hash: d766843d8f834fb5d10e176a2cbf0c072cae6d4ec4791692c5dcc177b369af3e
close_comment_sha256: none
review_comment_sha256: 5307937b79d910fa3fbd671140bcd2465de3c8f05338a25346588e9cf624db92
review_comment_sha256: b369f921981b898c9dfe6bdb8c0a3ee00c97985917edd144d09183f32fb29ff8
review_comment_id: 4410507930
review_comment_url: https://github.com/openclaw/openclaw/pull/79555#issuecomment-4410507930
decision: keep_open
@ -52,21 +52,21 @@ confidence: high
action_taken: kept_open
work_candidate: manual_review
work_confidence: high
work_priority: high
work_priority: medium
work_status: manual_review
work_reason_sha256: 6eddad7b274b20b7690060db533b11dfd9f2313c44d7bc66636b4c32161cb22c
work_reason_sha256: 2026923246ad87e708ea1d002a73b8a161b4ce8bf052a24ebf5469f8542bbc55
work_prompt_sha256: none
work_cluster_refs: ["https://github.com/openclaw/openclaw/pull/79555","https://github.com/openclaw/openclaw/issues/79210"]
work_cluster_refs: ["https://github.com/openclaw/openclaw/issues/79210","https://github.com/openclaw/openclaw/pull/79555"]
work_validation: ["pnpm test extensions/xai/stream.test.ts extensions/xai/index.test.ts extensions/xai/provider-policy-api.test.ts","pnpm test src/auto-reply/thinking.test.ts src/agents/openai-transport-stream.test.ts","OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_TEST_QUIET=1 pnpm test:live -- extensions/xai/xai.live.test.ts"]
work_likely_files: ["extensions/xai/provider-policy-api.ts","extensions/xai/index.ts","extensions/xai/stream.ts","extensions/xai/runtime-model-compat.ts","extensions/xai/stream.test.ts","extensions/xai/xai.live.test.ts","CHANGELOG.md"]
work_likely_files: ["extensions/xai/provider-policy-api.ts","extensions/xai/index.ts","extensions/xai/runtime-model-compat.ts","extensions/xai/stream.ts","extensions/xai/stream.test.ts","extensions/xai/index.test.ts","extensions/xai/provider-policy-api.test.ts"]
item_category: feature
reproduction_status: source_reproducible
reproduction_confidence: high
requires_new_feature: true
requires_new_config_option: false
requires_product_decision: false
real_behavior_proof_status: mock_only
real_behavior_proof_evidence_kind: none
real_behavior_proof_status: insufficient
real_behavior_proof_evidence_kind: live_output
real_behavior_proof_needs_contributor_action: true
---
@ -84,9 +84,9 @@ Labels: size: S, triage: needs-real-behavior-proof
Created at: May 8, 2026, 23:07 UTC
Updated at: May 8, 2026, 23:08 UTC
Updated at: May 8, 2026, 23:24 UTC
Reviewed against: [ff4d5541a2ad](https://github.com/openclaw/openclaw/commit/ff4d5541a2ad104e0fc9c7c52b452ab4d5d8e17f)
Reviewed against: [b6423fbd323c](https://github.com/openclaw/openclaw/commit/b6423fbd323cc1ecfc8ef452b7d862a5ec0685f8)
Codex review: model gpt-5.5, reasoning high
@ -104,23 +104,23 @@ Action taken: kept_open
## Summary
Keep open: this PR exposes xAI thinking levels, but current main still strips every xAI reasoning control before dispatch, so it does not actually implement the linked Grok reasoning-effort feature.
Keep open: this PR is an incomplete fix for the linked Grok reasoning-effort request because it advertises selectable xAI thinking levels while the current xAI transport still strips those controls before dispatch, and the PR proof does not show real runtime behavior.
## What This Changes
This PR replaces the xAI off-only thinking profile with a context-aware resolver and adds provider-policy unit tests.
The PR changes the xAI provider policy to advertise off/low/medium/high thinking levels for reasoning-capable xAI models, wires that resolver into the plugin entry, and adds provider-policy tests.
## Best Possible Solution
Update the xAI provider profile, runtime compat, and payload wrapper together so only supported Grok routes expose and forward the documented reasoning effort, while keeping unsupported xAI routes off-only.
Update the xAI provider profile, runtime compat mapping, and stream payload wrapper together so supported Grok routes expose and forward the documented reasoning effort while unsupported xAI routes remain off-only.
## Reproduction Assessment
Yes, source inspection gives a high-confidence path: this PR advertises `low/medium/high`, but current xAI stream code still deletes all reasoning-effort fields before dispatch. I did not see after-fix real xAI runtime proof in the PR.
Yes. Source inspection gives a high-confidence path: this PR advertises xAI low/medium/high, but current main still deletes all xAI reasoning-effort fields and maps xAI thinking levels to null before dispatch.
## Solution Assessment
No. The maintainable fix needs both the provider-owned thinking profile and the xAI transport/compat path updated, with regression coverage and real xAI proof; changing only the profile leaves the requested behavior ineffective.
No. The policy-only change is not the best fix because it exposes controls without making them affect runtime requests; the maintainable fix needs provider policy and transport support changed together with regression and real xAI proof.
## Review Findings
@ -131,14 +131,14 @@ Overall confidence: 0.92
Full review comments:
- **[P2] Forward xAI reasoning controls before exposing levels:** `extensions/xai/index.ts:204`
- body: This now advertises `low`, `medium`, and `high` for reasoning-capable xAI models, but the xAI stream wrapper still deletes `reasoning`, `reasoningEffort`, and `reasoning_effort`, and runtime compat maps every xAI thinking level to `null`. Users would see/select these levels while the request sent to xAI remains unchanged, so the linked Grok reasoning-effort feature is not actually fixed.
- body: This advertises low, medium, and high for reasoning-capable xAI models, but the xAI stream wrapper still deletes reasoning, reasoningEffort, and reasoning_effort, and runtime compat maps every xAI thinking level to null. Users can select these levels while requests sent to xAI remain unchanged, so the linked Grok reasoning-effort behavior is not fixed.
- confidence: 0.93
## Security Review
Status: cleared
Summary: The diff only changes xAI provider policy code and unit tests; I found no concrete security or supply-chain regression.
Summary: Cleared: the diff only changes xAI provider policy wiring and tests, with no new dependency, workflow, secret, package, or code-execution surface.
Concerns:
@ -146,13 +146,13 @@ Concerns:
## Real Behavior Proof
Status: mock_only
Status: insufficient
Evidence kind: none
Evidence kind: live_output
Needs contributor action: true
Summary: The PR body only provides unit-test proof; it needs after-fix real xAI runtime evidence such as redacted terminal output, logs, linked artifacts, or diagnostic screenshots/recordings before merge.
Summary: The PR body provides standalone resolver output and explicitly says no live Gateway/xAI run was tested; redacted terminal output, logs, artifacts, or diagnostic screenshots/recordings of the real runtime path are still needed, and updating the PR body should trigger re-review or a maintainer can comment @clawsweeper re-review.
## Work Candidate
@ -160,26 +160,26 @@ Candidate: manual_review
Confidence: high
Priority: high
Priority: medium
Status: manual_review
Reason: Needs contributor and maintainer follow-up: the missing real-behavior proof cannot be supplied by an automated repair lane, and the code fix must be validated against the xAI runtime path.
Reason: Needs contributor real-behavior proof and maintainer follow-up on whether to broaden this PR to the transport path or replace it with a complete xAI reasoning-effort fix.
Cluster refs:
- https://github.com/openclaw/openclaw/pull/79555
- https://github.com/openclaw/openclaw/issues/79210
- https://github.com/openclaw/openclaw/pull/79555
Likely files:
- extensions/xai/provider-policy-api.ts
- extensions/xai/index.ts
- extensions/xai/stream.ts
- extensions/xai/runtime-model-compat.ts
- extensions/xai/stream.ts
- extensions/xai/stream.test.ts
- extensions/xai/xai.live.test.ts
- CHANGELOG.md
- extensions/xai/index.test.ts
- extensions/xai/provider-policy-api.test.ts
Validation:
@ -189,50 +189,50 @@ Validation:
## Evidence
- **PR diff advertises xAI thinking levels:** The branch wires `resolveThinkingProfile(ctx)` into the xAI provider and returns `off/low/medium/high` when the catalog marks the model as reasoning-capable.
- **PR diff advertises xAI thinking levels:** The branch replaces the off-only xAI profile hook with resolveThinkingProfile(ctx), which can return off/low/medium/high for reasoning-capable models.
- file: [extensions/xai/index.ts:204](https://github.com/openclaw/openclaw/blob/3191edb404585b856fb1e6af89ada027990ca12f/extensions/xai/index.ts#L204)
- command: `curl -fsSL https://github.com/openclaw/openclaw/pull/79555.diff | sed -n '1,240p'`
- command: `curl -fsSL https://api.github.com/repos/openclaw/openclaw/pulls/79555/files`
- sha: [3191edb40458](https://github.com/openclaw/openclaw/commit/3191edb404585b856fb1e6af89ada027990ca12f)
- **xAI stream still strips reasoning controls:** Current main deletes `reasoning`, `reasoningEffort`, and `reasoning_effort` from xAI payloads before the request is sent.
- file: [extensions/xai/stream.ts:173](https://github.com/openclaw/openclaw/blob/ff4d5541a2ad104e0fc9c7c52b452ab4d5d8e17f/extensions/xai/stream.ts#L173)
- command: `nl -ba extensions/xai/stream.ts | sed -n '130,200p'`
- sha: [ff4d5541a2ad](https://github.com/openclaw/openclaw/commit/ff4d5541a2ad104e0fc9c7c52b452ab4d5d8e17f)
- **Runtime compat disables xAI thinking levels:** Current main maps every xAI thinking level to `null`, preserving the intentional off-only transport behavior.
- file: [extensions/xai/runtime-model-compat.ts:10](https://github.com/openclaw/openclaw/blob/ff4d5541a2ad104e0fc9c7c52b452ab4d5d8e17f/extensions/xai/runtime-model-compat.ts#L10)
- command: `nl -ba extensions/xai/runtime-model-compat.ts | sed -n '1,80p'`
- sha: [ff4d5541a2ad](https://github.com/openclaw/openclaw/commit/ff4d5541a2ad104e0fc9c7c52b452ab4d5d8e17f)
- **Changelog explains current behavior:** The active changelog says xAI reasoning controls were stopped and the xAI thinking profile was clamped to off after live `Invalid reasoning effort` failures.
- file: [CHANGELOG.md:326](https://github.com/openclaw/openclaw/blob/ff4d5541a2ad104e0fc9c7c52b452ab4d5d8e17f/CHANGELOG.md#L326)
- command: `nl -ba CHANGELOG.md | sed -n '318,332p'`
- sha: [ff4d5541a2ad](https://github.com/openclaw/openclaw/commit/ff4d5541a2ad104e0fc9c7c52b452ab4d5d8e17f)
- **Linked request remains broader than the patch:** The linked feature request asks to let users set Grok 4.3 `reasoning_effort`; this PR only changes the advertised profile and unit tests, not the outgoing payload behavior.
- command: `curl -fsSL https://api.github.com/repos/openclaw/openclaw/issues/79210 | sed -n '1,180p'`
- **Real behavior proof is test-only:** The PR body lists `pnpm test:extension xai` as proof; no live xAI request, runtime log, terminal output, screenshot with diagnostics, or artifact shows the changed behavior reaching xAI.
- command: `curl -fsSL https://api.github.com/repos/openclaw/openclaw/pulls/79555 | sed -n '1,220p'`
- **xAI stream still strips reasoning controls:** Current main deletes reasoning, reasoningEffort, and reasoning_effort from outgoing xAI payloads before the request reaches the provider.
- file: [extensions/xai/stream.ts:173](https://github.com/openclaw/openclaw/blob/b6423fbd323cc1ecfc8ef452b7d862a5ec0685f8/extensions/xai/stream.ts#L173)
- command: `nl -ba extensions/xai/stream.ts | sed -n '140,205p'`
- sha: [b6423fbd323c](https://github.com/openclaw/openclaw/commit/b6423fbd323cc1ecfc8ef452b7d862a5ec0685f8)
- **Runtime compat disables xAI thinking levels:** Current main maps every xAI thinking level to null, preserving the off-only transport behavior even if the UI/profile advertises more levels.
- file: [extensions/xai/runtime-model-compat.ts:10](https://github.com/openclaw/openclaw/blob/b6423fbd323cc1ecfc8ef452b7d862a5ec0685f8/extensions/xai/runtime-model-compat.ts#L10)
- command: `nl -ba extensions/xai/runtime-model-compat.ts | sed -n '1,160p'`
- sha: [b6423fbd323c](https://github.com/openclaw/openclaw/commit/b6423fbd323cc1ecfc8ef452b7d862a5ec0685f8)
- **Changelog records intentional current behavior:** The active changelog says OpenClaw stopped sending xAI reasoning controls and clamped the xAI thinking profile to off after live invalid-effort failures.
- file: [CHANGELOG.md:326](https://github.com/openclaw/openclaw/blob/b6423fbd323cc1ecfc8ef452b7d862a5ec0685f8/CHANGELOG.md#L326)
- command: `nl -ba CHANGELOG.md | sed -n '300,345p'`
- sha: [b6423fbd323c](https://github.com/openclaw/openclaw/commit/b6423fbd323cc1ecfc8ef452b7d862a5ec0685f8)
- **Contributor acknowledged transport gap:** The author confirmed in discussion that the stream wrapper deletes reasoning fields and runtime compat maps levels to null, leaving this PR intentionally policy-only.
- command: `curl -fsSL https://api.github.com/repos/openclaw/openclaw/issues/79555/comments`
- **Real behavior proof is insufficient:** The PR body provides standalone resolver output and explicitly says no live Gateway runtime with an xAI API key was tested.
- command: `curl -fsSL https://api.github.com/repos/openclaw/openclaw/pulls/79555`
- sha: [3191edb40458](https://github.com/openclaw/openclaw/commit/3191edb404585b856fb1e6af89ada027990ca12f)
## Likely Related People
- **steipete:** recent maintainer and current behavior introducer
- reason: Git blame and file history point the current bundled xAI plugin, off-only thinking profile, payload stripping, and catalog/runtime compat surface to the current-main xAI plugin import commit.
- **steipete:** recent maintainer and current xAI behavior owner
- reason: GitHub path history shows recent xAI commits that clamp/omit reasoning efforts and maintain the xAI plugin surface, including commits affecting provider policy, runtime compat, and adjacent xAI provider wiring.
- confidence: high
- commits: 1c8e58b4ff8e40dd09411f6053197e3cd9cbac90
- files: extensions/xai/index.ts, extensions/xai/provider-policy-api.ts, extensions/xai/stream.ts, extensions/xai/runtime-model-compat.ts, extensions/xai/model-definitions.ts
- commits: e9987ffc3aa0928486ce541952ce47713f6cad66, ea26a9dba066344ac53fc190e4a0ed5ec6234f03, 6f6b8fc4650c6b94d0b6e85a0ebe826f01c1185c, a8907d80ddaced42d13808803574fcd26d1679a0
- files: extensions/xai/provider-policy-api.ts, extensions/xai/runtime-model-compat.ts, extensions/xai/index.ts, extensions/xai/stream.ts
- **huntharo:** recent adjacent owner
- reason: Recent xAI plugin migration and code-execution wiring commits touched the same provider/plugin boundary that owns xAI runtime behavior.
- reason: GitHub path history shows xAI Responses-default and unsupported reasoning-parameter commits in the same transport/runtime area, with Peter merging those changes into main.
- confidence: medium
- commits: b7ab0ddb55990dc5ba6e2e9ee72a46672ac3f445, 216796f1e3e2f5d06a01047bbe8e688869e8b972, 2765fdc2ddd56cda9068749093b2d4d8c1eaa9a4
- files: extensions/xai/index.ts, extensions/xai/code-execution.ts, extensions/xai/provider-models.ts
- **George Pickett:** original feature contributor
- reason: The older history shows the original xAI Grok provider support landing under this area, so they are relevant background for provider behavior but not the current patch owner.
- commits: fd748171b8019d109f11a14669b0681fdd128a5c, 5ed8ee6832d1157f7b22b6da0401976f81b2d1a1, 0bd0097557d6fe53bb444fcb9cc6e87d501676ef
- files: extensions/xai/stream.ts, extensions/xai/index.ts
- **vincentkoc:** provider runtime refactor owner
- reason: Recent provider-hook and xAI SDK import work touched the shared plugin/provider boundary that this PR uses, though not the specific xAI reasoning policy decision.
- confidence: low
- commits: db31c0ccca922704185061aac89123c52970ea64
- files: extensions/xai, src
- commits: 20d14745cfd1f3e908e7b098f3b9970aa1c31e9c, 9c42e6424d2505f99484b1ac4b69ed2b4e0d7201
- files: src/plugins/provider-thinking.ts, extensions/xai/stream.ts
## Risks / Open Questions
- The patch may re-expose UI/session controls that silently have no effect because xAI payload shaping still removes the transport fields.
- A correct change needs live or otherwise real xAI runtime proof to avoid reintroducing the recently documented `Invalid reasoning effort` failures.
- Users could see and select xAI low/medium/high thinking levels while outgoing requests remain unchanged.
- A correct transport change needs real xAI runtime proof to avoid reintroducing the recently documented invalid-effort failures.
## Close Comment
@ -240,19 +240,19 @@ _No close comment posted._
## GitHub Snapshot
- comments: 2
- timeline events: 7
- comments: 4
- timeline events: 9
- related items: 1
- PR files: 3
- PR commits: 1
## Review Telemetry
- prompt chars: 48268
- prompt chars: 58997
- static prompt chars: 33412
- context chars: 13608
- context chars: 24337
- schema chars: 14081
- additional prompt chars: 0
- context collection ms: 3789
- Codex review ms: 197482
- context collection ms: 3028
- Codex review ms: 197517