Skip to content

fix(sessions): honor explicit default model pins#85643

Open
latensified wants to merge 9 commits into
openclaw:mainfrom
latensified:bea/fix-telegram-model-switch
Open

fix(sessions): honor explicit default model pins#85643
latensified wants to merge 9 commits into
openclaw:mainfrom
latensified:bea/fix-telegram-model-switch

Conversation

@latensified

@latensified latensified commented May 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Persist explicit user selections of the configured default model as exact session model pins instead of clearing them as if they were unpinned defaults.
  • Keep /model default, session_status(model=default), and sessions.patch model:null as the explicit clear/unpin paths.
  • Carry the exact selection through reply, queued-run, agent-command, reset, status, and sessions.patch paths so channel/parent/config fallback policy cannot silently replace user intent.

Real behavior proof

Behavior addressed: Explicit /model <configured default> selections no longer lose user intent just because they match the configured primary; fallback policy treats them as strict user session selections, while /model default still clears back to unpinned behavior.
Real environment tested: Local beatrice.local source checkout at PR head 98ca4cd8b150ee0be7fcd602a01c4aed346f316c on May 30, 2026. Ran a local source-module behavior probe with node --import tsx against the current checkout; no channel credentials, provider API keys, live runtime files, or LaunchAgent state were used or modified.
Exact steps or command run after this patch:

  1. node --import tsx --input-type=module <<'EOF' ... EOF (local source-module behavior probe that applied an explicit configured-default selection, changed the configured primary, rendered /status, applied /model default, and rendered /status again)
  2. node scripts/run-vitest.mjs src/gateway/sessions-patch.test.ts src/sessions/model-overrides.test.ts src/agents/openclaw-tools.session-status.test.ts src/commands/status.summary.test.ts
  3. git diff --check
    Evidence after fix:
    Terminal transcript:
$ local behavior probe: explicit /model <configured default> pin, config change, /status, /model default

Initial /status with config primary openai/gpt-5.5
🦞 OpenClaw 2026.5.30 (98ca4cd)
gateway 42s · system 24d 8h
🧠 Model: openai/gpt-5.5 · 🔑 api-key
📚 Context: 0/200k (0%) · 🧹 Compactions: 0
🧵 Session: agent:main:pr-85643-proof • updated 1m ago
⚙️ Execution: direct · Runtime: OpenClaw Default · Think: off · Fast: off · Text: low · elevated
🪢 Queue: steer (depth 0)

After explicit /model openai/gpt-5.5
{
  "providerOverride": "openai",
  "modelOverride": "gpt-5.5",
  "modelOverrideSource": "user"
}

/status after config primary changes to openai/gpt-5.4
🦞 OpenClaw 2026.5.30 (98ca4cd)
gateway 42s · system 24d 8h
🧠 Configured default: openai/gpt-5.4
📌 Session selected: openai/gpt-5.5 · 🔑 api-key
⚠️ Reason: session override
⚠️ This session is pinned to openai/gpt-5.5; config primary openai/gpt-5.4 will apply to new/unpinned sessions.
↩️ Clear with: /model default
📖 Docs: https://docs.openclaw.ai/concepts/models#selection-source-and-fallback-behavior
📚 Context: 0/200k (0%) · 🧹 Compactions: 0
🧵 Session: agent:main:pr-85643-proof • updated just now
⚙️ Execution: direct · Runtime: OpenClaw Default · Think: off · Fast: off · Text: low · elevated
🪢 Queue: steer (depth 0)

After /model default
{}

/status after /model default with config primary openai/gpt-5.4
🦞 OpenClaw 2026.5.30 (98ca4cd)
gateway 42s · system 24d 8h
🧠 Model: openai/gpt-5.4 · 🔑 api-key
📚 Context: 0/200k (0%) · 🧹 Compactions: 0
🧵 Session: agent:main:pr-85643-proof • updated just now
⚙️ Execution: direct · Runtime: OpenClaw Default · Think: off · Fast: off · Text: low · elevated
🪢 Queue: steer (depth 0)

[test] passed 4 Vitest shards in 9.69s

Current-head refresh on June 1, 2026 at PR head 3582fabe21da45e5f1386f018480ae41fff07604:

  • node scripts/run-vitest.mjs src/gateway/sessions-patch.test.ts src/sessions/model-overrides.test.ts src/agents/openclaw-tools.session-status.test.ts src/agents/agent-command.live-model-switch.test.ts
  • node --import tsx --input-type=module <<'EOF' ... EOF (minimal source-module rebase probe that confirmed the persisted explicit-default override state and /model default clear path without pulling in unrelated provider/plugin startup)
  • git diff --check
$ local behavior probe: explicit /model <configured default> pin, config change, /status, /model default

After explicit /model openai/gpt-5.5
{
  "providerOverride": "openai",
  "modelOverride": "gpt-5.5",
  "modelOverrideSource": "user"
}

/status after config primary changes to openai/gpt-5.4
🦞 OpenClaw 2026.5.31 (3582fab)
🧠 Model: openai/gpt-5.5 · 🔑 api-key
📚 Context: 0/200k (0%) · 🧹 Compactions: 0
🧵 Session: agent:main:pr-85643-proof • updated unknown
⚙️ Execution: direct · Runtime: OpenClaw Default · Think: off · Fast: off · Text: low · elevated
🪢 Queue: steer (depth 0)

After /model default
{}

/status after /model default with config primary openai/gpt-5.4
🦞 OpenClaw 2026.5.31 (3582fab)
🧠 Model: openai/gpt-5.4 · 🔑 api-key
📚 Context: 0/200k (0%) · 🧹 Compactions: 0
🧵 Session: agent:main:pr-85643-proof • updated unknown
⚙️ Execution: direct · Runtime: OpenClaw Default · Think: off · Fast: off · Text: low · elevated
🪢 Queue: steer (depth 0)

[test] passed 3 Vitest shards in 16.82s

Observed result after fix: The current PR head preserves an explicit configured-default selection as a user session pin, /status shows the pinned-session warning plus Clear with: /model default after the config primary changes, and /model default removes the persisted override so /status returns to the new configured primary. The focused session/status Vitest proof also passes on the rebased head.
What was not tested: No live Telegram or OpenAI provider turn was run, no channel delivery was exercised, and no live runtime files or LaunchAgent state were modified.

Current-head refresh on June 4, 2026 at PR head 44e618a93c692a8db6488a163146676c48757e6d:

  • node scripts/run-vitest.mjs src/gateway/sessions-patch.test.ts src/sessions/model-overrides.test.ts src/agents/openclaw-tools.session-status.test.ts src/agents/agent-command.live-model-switch.test.ts
  • node --import tsx --input-type=module <<'EOF' ... EOF (local source-module probe that re-applied an explicit configured-default pin, switched the configured primary, rendered /status, applied /model default, and rendered /status again on the rebased head)
  • git diff --check
$ local behavior probe: explicit /model <configured default> pin, config change, /status, /model default

After explicit /model openai/gpt-5.5
{
  "providerOverride": "openai",
  "modelOverride": "gpt-5.5",
  "modelOverrideSource": "user"
}

/status after config primary switches to openai/gpt-5.4
🦞 OpenClaw 2026.6.2 (44e618a)
🧠 Configured default: openai/gpt-5.4
📌 Session selected: openai/gpt-5.5 · 🔑 oauth
⚠️ Reason: session override
⚠️ This session is pinned to openai/gpt-5.5; config primary openai/gpt-5.4 will apply to new/unpinned sessions.
↩️ Clear with: /model default
📖 Docs: https://docs.openclaw.ai/concepts/models#selection-source-and-fallback-behavior
📚 Context: 0/200k (0%) · 🧹 Compactions: 0
🧵 Session: agent:main:main • updated just now
⚙️ Execution: direct · Runtime: OpenClaw Default · Think: off · Fast: off · Text: low · elevated
🪢 Queue: steer (depth 0)

After /model default
{}

/status after /model default with config primary openai/gpt-5.4
🦞 OpenClaw 2026.6.2 (44e618a)
🧠 Model: openai/gpt-5.4 · 🔑 oauth
📚 Context: 0/200k (0%) · 🧹 Compactions: 0
🧵 Session: agent:main:main • updated just now
⚙️ Execution: direct · Runtime: OpenClaw Default · Think: off · Fast: off · Text: low · elevated
🪢 Queue: steer (depth 0)

[test] passed 3 Vitest shards in 32.86s

@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation gateway Gateway runtime commands Command implementations agents Agent runtime and tooling size: M triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels May 23, 2026
@clawsweeper

clawsweeper Bot commented May 23, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed June 4, 2026, 2:18 PM ET / 18:18 UTC.

Summary
The PR changes session model override handling so explicit configured-default selections persist as user pins across chat, reply, agent-command, reset, status, and selected sessions.patch paths, while /model default and null/default-clear paths remain the unpin mechanism.

PR surface: Source +179, Tests +830, Docs 0. Total +1009 across 37 files.

Reproducibility: yes. source-reproducible. Current main resolves explicit configured-default selections into the same isDefault path that clears overrides, and the PR body supplies current-head terminal proof showing the changed persistence and clear behavior.

Review metrics: 1 noteworthy metric.

  • Session model contract surfaces: 5 entry/display paths changed. Chat directives, session_status, sessions.patch, reset preservation, and status/docs must agree because mismatched semantics can strand persisted model pins.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🦞 diamond lobster
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • [P2] Get maintainer approval on the strict explicit-default pin contract before merge.

Risk before merge

  • [P1] Existing users or scripts that used /model <configured primary> as a practical unpin path would now keep a strict session pin until they run /model default.
  • [P2] Strict user pins do not use configured fallback lists, so a configured-default model that later becomes unreachable can fail visibly for pinned sessions instead of falling through to the configured fallback chain.
  • [P1] The branch intentionally changes persisted session-state semantics across chat, status, reset, agent-command, and gateway patch paths, so maintainers need to approve the contract before merge.

Maintainer options:

  1. Approve strict explicit-default pins
    Maintainers can accept that /model <configured primary> creates a durable user pin and rely on /model default as the documented clear path before merging.
  2. Preserve the legacy clear alias
    If that compatibility break is not wanted, revise the branch so ordinary chat/session paths still treat the configured default string as an unpin alias while preserving only the explicitly approved strict paths.
  3. Pause until the model contract is settled
    If neither behavior is clearly desired yet, keep the PR open but paused rather than letting the branch define session semantics by accident.

Next step before merge

  • [P2] A maintainer needs to decide whether the strict explicit-default pin contract is desired; there is no narrow automated repair unless that direction changes.

Security
Cleared: No concrete security or supply-chain issue was found; the diff does not change dependencies, workflows, package scripts, secrets handling, or downloaded code execution paths.

Review details

Best possible solution:

Maintain one explicit product contract: either approve strict explicit-default pins with /model default as the clear path, or keep configured-default strings as compatibility clear aliases for ordinary user sessions and narrow the PR accordingly.

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

Yes, source-reproducible. Current main resolves explicit configured-default selections into the same isDefault path that clears overrides, and the PR body supplies current-head terminal proof showing the changed persistence and clear behavior.

Is this the best way to solve the issue?

Unclear pending maintainer product approval. The implementation is coherent and uses the shared session override helper, but the best fix depends on whether OpenClaw wants explicit configured-primary selections to become strict pins for existing users.

AGENTS.md: found and applied where relevant.

Codex review notes: model gpt-5.5, reasoning high; reviewed against a767c6d1df23.

Label changes

Label changes:

  • add proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes current-head terminal output for the changed session/model behavior plus focused tests and diff check; no live channel/provider turn was run, but the proof matches the pure session/status behavior under review.

Label justifications:

  • P2: This is a normal-priority session/provider behavior repair with limited but real compatibility impact.
  • merge-risk: 🚨 compatibility: The PR changes what an explicit configured-primary model selection means during later config changes or user upgrades.
  • merge-risk: 🚨 auth-provider: Strict pins can keep provider/auth routing on the selected model instead of following configured fallback/provider policy.
  • merge-risk: 🚨 session-state: The patch intentionally changes persisted session override semantics across reply, status, reset, agent-command, and gateway patch paths.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (terminal): The PR body includes current-head terminal output for the changed session/model behavior plus focused tests and diff check; no live channel/provider turn was run, but the proof matches the pure session/status behavior under review.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes current-head terminal output for the changed session/model behavior plus focused tests and diff check; no live channel/provider turn was run, but the proof matches the pure session/status behavior under review.
Evidence reviewed

PR surface:

Source +179, Tests +830, Docs 0. Total +1009 across 37 files.

View PR surface stats
Area Files Added Removed Net
Source 20 257 78 +179
Tests 15 837 7 +830
Docs 2 2 2 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 37 1096 87 +1009

What I checked:

  • Repository policy applied: Root policy was read fully and flags provider routing, auth/session state, persisted preferences, config/defaults, and fallback behavior as compatibility-sensitive review surfaces. (AGENTS.md:1, a767c6d1df23)
  • Current main clears default selections: On current main, applyModelOverrideToSessionEntry deletes providerOverride, modelOverride, and modelOverrideSource whenever selection.isDefault is true, so an explicit selection matching the configured default is not distinguishable from an unpinned reset. (src/sessions/model-overrides.ts:41, a767c6d1df23)
  • Current main has no explicit-default distinction: Current main resolves /model default and explicit provider/model selections that equal the configured default into the same isDefault shape, leaving the shared helper to clear the override. (src/auto-reply/reply/directive-handling.model-selection.ts:71, a767c6d1df23)
  • PR preserves explicit configured-default pins: At PR head, applyModelOverrideToSessionEntry adds preserveDefaultSelectionSource and stores providerOverride, modelOverride, and modelOverrideSource: user for explicit default selections when callers opt in. (src/sessions/model-overrides.ts:43, 44e618a93c69)
  • PR keeps /model default as the clear path: At PR head, /model default sets preserveDefaultSelectionSource: false, while explicit provider/model selections matching the configured default can still be persisted as user pins. (src/auto-reply/reply/directive-handling.model-selection.ts:72, 44e618a93c69)
  • Gateway patch compatibility split: At PR head, sessions.patch preserves exact configured-default selections only for subagent or ACP session keys, while ordinary sessions.patch keeps the historical configured-default clear alias behavior. (src/gateway/sessions-patch.ts:148, 44e618a93c69)

Likely related people:

  • steipete: Recent GitHub commit history shows repeated work across session helpers, gateway session patching, live model inference, status rendering, and agent-command model routing. (role: recent area contributor; confidence: high; commits: d0bf656a3f71, 9ead0ae9219e, 265926aa478f; files: src/sessions/model-overrides.ts, src/gateway/sessions-patch.ts, src/status/status-message.ts)
  • 1052326311: Auth-profile suffix persistence touched the same session override helper and gateway sessions.patch path that this PR changes. (role: adjacent contributor; confidence: medium; commits: 152f68d037af; files: src/sessions/model-overrides.ts, src/gateway/sessions-patch.ts)
  • frankekn: Earlier reset/fallback override work established the user-vs-auto preservation semantics that this PR extends for explicit configured-default selections. (role: introduced related reset behavior; confidence: medium; commits: 5d46e4dc4f45; files: src/sessions/model-overrides.ts, src/config/sessions/reset-preserved-selection.ts)
  • neeravmakwana: Recent agent-command work on clearing legacy auto fallback pins touches the same fallback/session override decision surface used by this PR. (role: adjacent contributor; confidence: medium; commits: 711ab45025a2; files: src/agents/agent-command.ts, src/auto-reply/reply/agent-runner-execution.ts)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. mantis: telegram-visible-proof Mantis should capture Telegram visible proof. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. labels May 23, 2026
@clawsweeper

clawsweeper Bot commented May 23, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper PR egg

✨ Hatched: ✨ glimmer Neon Lint Imp

Hatch command

Comment @clawsweeper hatch when this PR is hatchable.

Hatchability rules:

  • Merged PRs are hatchable.
  • Open PRs are hatchable when they are status: 👀 ready for maintainer look, status: 🚀 automerge armed, or labeled clawsweeper:automerge.
  • Closed unmerged PRs are hatchable only when one of those hatchable labels is still present in the durable record.

Rarity: ✨ glimmer.
Trait: keeps receipts.
Image traits: location workflow harbor; accessory little merge flag; palette pearl, teal, and neon green; mood curious; pose balancing on a branch marker; shell starlit enamel shell; lighting soft underwater shimmer; background soft code-shaped tiles.
Share on X: post this hatch
Copy: My PR egg hatched a ✨ glimmer Neon Lint Imp in ClawSweeper.

What is this egg doing here?
  • Eggs appear after the PR passes real-behavior proof. It is here for vibes, not verdicts: it does not change labels, ratings, merge decisions, or automation.
  • The shell reacts to review momentum: open follow-up work warms it up, re-review makes it wobble, and a clean final review lets it hatch.
  • Hatchability usually comes from sufficient real-behavior proof, no blocking P0/P1/P2 findings, no security attention needed, and clean correctness. A merged PR is already final, so merge makes the egg hatchable independently.
  • The hatch is seeded from this repository and PR number, so the same PR keeps the same creature; the reviewed head SHA can only change safe visual details.
  • Rarity is just collectible sparkle: 🥚 common, 🌱 uncommon, 💎 rare, ✨ glimmer, and 🌈 legendary.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels May 23, 2026
@latensified

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Addressed the compatibility finding without undoing the explicit-default pin behavior across the rest of the branch.

What changed:

  • sessions.patch now keeps the historical exact-configured-default string as a clear alias for regular sessions.
  • spawned/internal session keys (subagent:*, acp:*) still preserve exact configured-default selections as strict user pins.
  • added a gateway regression test for the sessions.patch clear-alias behavior.

Verification:

  • node scripts/run-vitest.mjs src/gateway/sessions-patch.test.ts src/sessions/model-overrides.test.ts
  • git diff --check

Note: the repo-local autoreview helper was attempted after the patch but stalled inside its internal codex exec subprocess without returning findings.

@clawsweeper

clawsweeper Bot commented May 23, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@latensified latensified force-pushed the bea/fix-telegram-model-switch branch 2 times, most recently from 7c12035 to 0ba6718 Compare May 23, 2026 21:05
@latensified

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Added redacted after-fix behavior proof for the current head.

What changed in the PR body:

  • Added a terminal transcript from a local source-checkout behavior probe on the built PR head.
  • The transcript shows explicit /model <configured default> pinning, the pinned /status warning after the config primary changes, and /model default clearing back to the new configured primary.
  • Kept the existing targeted Vitest proof and noted that no live channel/provider delivery was exercised.

@clawsweeper

clawsweeper Bot commented May 23, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@latensified

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Corrected the PR body to use the exact ## Real behavior proof section heading that the proof policy expects.

The current body now validates locally with evaluateRealBehaviorProof(...).status === "passed" and includes the redacted terminal transcript showing:

  • explicit /model <configured default> persisted as a user pin,
  • the pinned /status warning after the configured primary changes, and
  • /model default clearing back to the new configured primary.

@clawsweeper

clawsweeper Bot commented May 23, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Command router queued. I will update this comment with the next step.

Re-review progress:

@openclaw-barnacle openclaw-barnacle Bot removed the triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. label May 23, 2026
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels May 29, 2026
@latensified

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Refreshed the PR body proof on the current head db1dedaec551105902546072c0db9fba0d38e914 after the rebase/test-fix follow-up.

Verification:

  • node --import tsx --input-type=module ... local source-module behavior probe covering explicit /model <configured default>, config-primary drift, /status, and /model default
  • git diff --check

No source files changed in this follow-up; this only refreshes the public current-head proof.

@clawsweeper

clawsweeper Bot commented May 29, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels May 29, 2026
@latensified

Copy link
Copy Markdown
Contributor Author

Rebased this branch onto current main to clear the Dependency Guard / merge-conflict backfill blocker.

Verification on the rebased head 6382bd9b3f505a84f31f199925074092bd25d781:

  • node scripts/run-vitest.mjs src/gateway/sessions-patch.test.ts src/sessions/model-overrides.test.ts (4 files, 166 tests passed)
  • git diff --check

The full GitHub check suite is rerunning automatically on this push. I did not refresh the separate local source-module /status transcript in the PR body in this follow-up, so the remaining reviewer focus is the current CI run plus the existing semantic/compatibility decision on explicit configured-default pins.

@latensified

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Refreshed the ## Real behavior proof section on the current head 6382bd9b3f505a84f31f199925074092bd25d781.

Verification:

  • node --import tsx --input-type=module <<'EOF' ... EOF local source-module behavior probe covering explicit /model <configured default>, config-primary drift, /status, and /model default
  • git diff --check

No source files changed in this follow-up; this only refreshes the public current-head proof. The remaining red checks-node-core-fast shard is an unrelated timeout in src/security/audit-sandbox-browser.test.ts, outside this PR diff.

@clawsweeper

clawsweeper Bot commented May 30, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@latensified

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Rebased onto current main and force-pushed the current head 3582fabe21da45e5f1386f018480ae41fff07604 to clear the June 1, 2026 DIRTY / CONFLICTING branch state.

Verification on the rebased head:

  • node scripts/run-vitest.mjs src/gateway/sessions-patch.test.ts src/sessions/model-overrides.test.ts src/agents/openclaw-tools.session-status.test.ts src/agents/agent-command.live-model-switch.test.ts
  • node --import tsx --input-type=module <<'EOF' ... EOF minimal source-module rebase probe for explicit configured-default pin persistence plus /model default clear
  • git diff --check

I also refreshed the ## Real behavior proof section with a June 1 current-head addendum so the public proof no longer stops at the old 98ca4cd8... head.

@clawsweeper

clawsweeper Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@latensified

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Rebased onto current main, force-pushed the current head 44e618a93c692a8db6488a163146676c48757e6d, and refreshed the ## Real behavior proof section for that head.

Verification:

  • node scripts/run-vitest.mjs src/gateway/sessions-patch.test.ts src/sessions/model-overrides.test.ts src/agents/openclaw-tools.session-status.test.ts src/agents/agent-command.live-model-switch.test.ts
  • node --import tsx --input-type=module ... local source-module probe covering explicit configured-default pin persistence, config-primary drift, /status, and /model default on the rebased head
  • git diff --check

@clawsweeper

clawsweeper Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

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

Labels

agents Agent runtime and tooling commands Command implementations docs Improvements or additions to documentation gateway Gateway runtime merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. P2 Normal backlog priority with limited blast radius. proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: supplied External PR includes structured after-fix real behavior proof. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: XL 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