Skip to content

Fix stale auto-fallback origin model selection#92819

Closed
TurboTheTurtle wants to merge 1 commit into
openclaw:mainfrom
TurboTheTurtle:codex/92776-prepared-model-selection-boundary
Closed

Fix stale auto-fallback origin model selection#92819
TurboTheTurtle wants to merge 1 commit into
openclaw:mainfrom
TurboTheTurtle:codex/92776-prepared-model-selection-boundary

Conversation

@TurboTheTurtle

@TurboTheTurtle TurboTheTurtle commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds a shared stale auto-fallback-origin classifier so reply and agent-command selection agree when recorded fallback origin no longer matches the current primary.
  • Defers reply-side model/auth cleanup until after read-only slash/inline actions have dispatched and a real run is about to start.
  • Guards deferred reply cleanup against post-selection session changes so mixed /model ... directives and concurrent row updates are not overwritten.
  • Prepares agent-command attempts with stale fallback model/auth cleared in memory, then persists durable cleanup only after a non-exhausted visible run and only if the store row still exactly matches the stale fallback pin captured at selection time.

Maintainer feedback addressed

  • One prepared selection result now carries reset reason and persistence behavior through the reply turn.
  • Stale-origin repair no longer emits the disallowed-allowlist reset event.
  • Preserve-state/non-mutating agent-command runs strip fallback auth for the primary attempt without writing durable cleanup.
  • Deferred reply cleanup is guarded against concurrent user model switches and mixed inline model directives.
  • Direct agent-command cleanup captures the stale row fields at selection time and refuses to persist if the current store row has changed to a different stale auto-fallback pin.
  • Direct agent-command cleanup is now also gated on non-exhausted fallback runs, so failed exhausted runs do not persist cleared model/auth state.
  • Auto-reply and agent-command test doubles now satisfy the deferred cleanup/model-selection helper contract used by CI.

What Problem This Solves

Stale auto-fallback model pins whose recorded fallback origin no longer matches the current primary were being treated as active stored overrides. That could make the next real agent run continue using an old fallback-model and stale auto auth instead of the current primary-model.

This patch prepares the primary selection for the next real run and defers durable cleanup until the run boundary without overwriting user-owned, newer auto-owned, or exhausted-run model/auth state.

Evidence

  • Real environment tested: isolated OpenClaw worktree rebased onto current origin/main d68ba5edc59, PR head 844c625a8a0e99bc7de934c286fbdd105d5cec39.
  • Exact steps run after this patch:
node scripts/run-vitest.mjs src/agents/agent-command.live-model-switch.test.ts src/auto-reply/reply/model-selection.test.ts
node scripts/run-vitest.mjs src/auto-reply/reply/get-reply-directives-apply.test.ts
pnpm exec oxfmt --check --threads=1 src/agents/agent-command.ts src/agents/agent-command.live-model-switch.test.ts src/agents/auto-fallback-stale-origin.ts src/auto-reply/reply/model-selection.ts src/auto-reply/reply/model-selection.test.ts src/auto-reply/reply/get-reply-directives-apply.ts src/auto-reply/reply/get-reply-directives-apply.test.ts src/auto-reply/reply/get-reply-directives.ts src/auto-reply/reply/get-reply.test-fixtures.ts src/auto-reply/reply/get-reply.ts src/commands/agent-command.test-mocks.ts
pnpm tsgo:prod
pnpm check:test-types
pnpm run test:extensions:package-boundary:compile
pnpm build
git diff --check origin/main...HEAD
  • Evidence after rebase: focused Vitest passed 2 shards / 133 tests for agent-command live model switch plus reply model selection, and the directives regression passed 3 tests. oxfmt --check, pnpm tsgo:prod, pnpm check:test-types, extension package boundary compile for 116 plugins, pnpm build, and git diff --check origin/main...HEAD passed.
  • Observed result after fix: unchanged captured stale pins can still be cleaned up after a real non-exhausted run; changed rows and exhausted fallback runs are left untouched.

Redacted runtime/session proof

I also ran a real openclaw agent --local turn on this rebased PR head using a throwaway OPENCLAW_STATE_DIR, a synthetic session row, and a local OpenAI-compatible test endpoint. No production config, production session store, production auth profile, or external provider was used.

The seeded session row contained a stale auto fallback pin:

{
  "providerOverride": "proof-local",
  "modelOverride": "fallback-model",
  "modelOverrideSource": "auto",
  "modelOverrideFallbackOriginProvider": "proof-local",
  "modelOverrideFallbackOriginModel": "old-primary-model",
  "authProfileOverride": "proof-local:auto-fallback",
  "authProfileOverrideSource": "auto"
}

The real CLI run completed successfully and sent exactly one streamed model request to the local endpoint:

{
  "head": "844c625a8a0e99bc7de934c286fbdd105d5cec39",
  "isolatedStateDir": "<temp OPENCLAW_STATE_DIR>",
  "localEndpoint": "<127.0.0.1 OpenAI-compatible test server>",
  "cliExit": 0,
  "stdoutContainsProofToken": true,
  "requests": [
    {
      "method": "POST",
      "url": "/v1/chat/completions",
      "model": "primary-model",
      "stream": true,
      "messageCount": 2,
      "toolCount": 39
    }
  ],
  "after": {
    "modelProvider": "proof-local",
    "model": "primary-model"
  },
  "assertions": {
    "requestedPrimaryModel": true,
    "neverRequestedFallbackModel": true,
    "staleModelOverrideCleared": true,
    "staleAutoAuthCleared": true,
    "replyObserved": true
  }
}

That proves the stale fallback row was not reused for the next real run: the request went to primary-model, no request went to fallback-model, and the persisted session row no longer contains the stale model/auth override fields.

Verification

  • node scripts/run-vitest.mjs src/agents/agent-command.live-model-switch.test.ts src/auto-reply/reply/model-selection.test.ts (passed: 2 shards, 133 tests)
  • node scripts/run-vitest.mjs src/auto-reply/reply/get-reply-directives-apply.test.ts (passed: 3 tests)
  • pnpm exec oxfmt --check --threads=1 src/agents/agent-command.ts src/agents/agent-command.live-model-switch.test.ts src/agents/auto-fallback-stale-origin.ts src/auto-reply/reply/model-selection.ts src/auto-reply/reply/model-selection.test.ts src/auto-reply/reply/get-reply-directives-apply.ts src/auto-reply/reply/get-reply-directives-apply.test.ts src/auto-reply/reply/get-reply-directives.ts src/auto-reply/reply/get-reply.test-fixtures.ts src/auto-reply/reply/get-reply.ts src/commands/agent-command.test-mocks.ts
  • pnpm tsgo:prod
  • pnpm check:test-types
  • pnpm run test:extensions:package-boundary:compile
  • pnpm build
  • git diff --check origin/main...HEAD

Fixes #92776
Supersedes #92790

@openclaw-barnacle openclaw-barnacle Bot added agents Agent runtime and tooling size: L triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels Jun 14, 2026
@clawsweeper

clawsweeper Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed July 1, 2026, 1:05 AM ET / 05:05 UTC.

Summary
The PR adds stale auto-fallback-origin detection and guarded cleanup across reply model selection and direct agent-command execution, with regression coverage and runtime proof.

PR surface: Source +366, Tests +527. Total +893 across 11 files.

Reproducibility: yes. at source level. Current main rejects auto-fallback rows whose stored origin differs from the active primary, and the linked production report plus PR proof cover the runtime stale-origin shape.

Review metrics: 1 noteworthy metric.

  • Persisted cleanup entry points: 2 changed. Both reply model selection and direct agent-command selection can now persist stale fallback cleanup, so the run-boundary and exact-row guards are central to merge safety.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #92776
Summary: This PR is the active fix candidate for the canonical polluted auto-fallback-origin session pin report; earlier stale-origin PRs are closed unmerged and the broader sticky fallback PR only partially overlaps.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

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 acceptance for the compatibility-sensitive cleanup semantics before merge.

Risk before merge

  • [P2] Merging changes how existing upgraded sessions with stale auto-owned fallback model/auth state are interpreted and durably cleaned.
  • [P1] The cleanup touches both model routing and auth-profile override state, so a wrong guard could alter provider/model/auth behavior for existing sessions.
  • [P2] The open broader sticky fallback PR at fix(agent): prevent sticky model fallback #75270 overlaps the policy area, so maintainers should keep this stale-origin repair scoped from broader fallback persistence decisions.

Maintainer options:

  1. Accept the guarded cleanup semantics (recommended)
    Maintainers can accept that stale auto-owned fallback model/auth pins are ignored and cleaned after a non-exhausted visible run when the captured session row still matches.
  2. Pause for broader fallback policy
    If maintainers want all sticky fallback persistence changes handled together, pause this PR and resolve the narrower stale-origin bug through the broader fallback policy track.
  3. Request an additional live-provider lane
    Maintainers may ask for a paid-provider or channel-backed reproduction if local OpenAI-compatible proof is not enough for this upgrade-sensitive path.

Next step before merge

  • [P2] Maintainer review should decide whether to accept the compatibility-sensitive session/auth cleanup now that proof and CI are present; no narrow automated repair is identified.

Security
Cleared: The diff changes TypeScript model-selection/session cleanup logic and tests without dependency, workflow, lockfile, permission, script, artifact-download, or secret-storage changes.

Review details

Best possible solution:

Land this guarded stale-origin cleanup, or an equivalent maintainer-approved fix, and let the linked issue close after merge while keeping broader fallback policy work separate.

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

Yes, at source level. Current main rejects auto-fallback rows whose stored origin differs from the active primary, and the linked production report plus PR proof cover the runtime stale-origin shape.

Is this the best way to solve the issue?

Yes. The shared predicate plus deferred/exact-row cleanup covers both reply and direct command surfaces without a broad migration or a second source of truth.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against d68ba5edc598.

Label changes

Label changes:

  • add proof: sufficient: Contributor real behavior proof is sufficient. The PR body and refresh comment include redacted terminal-style runtime proof showing a stale origin model differing from the current primary, one real local CLI run requesting the primary, and stale fields cleared afterward.
  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (terminal): The PR body and refresh comment include redacted terminal-style runtime proof showing a stale origin model differing from the current primary, one real local CLI run requesting the primary, and stale fields cleared afterward.
  • remove rating: 🦪 silver shellfish: Current PR rating is rating: 🐚 platinum hermit, so this older rating label is no longer current.
  • remove status: 📣 needs proof: Current PR status label is status: 👀 ready for maintainer look.

Label justifications:

  • P1: The PR targets a real agent/session regression that can keep sessions pinned to stale fallback models and stale auto auth across turns.
  • merge-risk: 🚨 compatibility: Existing session rows with stale auto-fallback origin metadata will be interpreted differently and may have persisted override fields cleared after upgrade.
  • merge-risk: 🚨 auth-provider: The diff changes when auto-owned fallback auth-profile overrides are ignored or durably cleared during model selection.
  • merge-risk: 🚨 session-state: The diff changes persisted session model override, fallback-origin, notice, and auth cleanup during reply and direct command runs.
  • 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 and refresh comment include redacted terminal-style runtime proof showing a stale origin model differing from the current primary, one real local CLI run requesting the primary, and stale fields cleared afterward.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body and refresh comment include redacted terminal-style runtime proof showing a stale origin model differing from the current primary, one real local CLI run requesting the primary, and stale fields cleared afterward.
Evidence reviewed

PR surface:

Source +366, Tests +527. Total +893 across 11 files.

View PR surface stats
Area Files Added Removed Net
Source 8 391 25 +366
Tests 3 531 4 +527
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 11 922 29 +893

What I checked:

  • Repository policy applied: Root policy treats provider routing, auth/session state, persisted preferences, and fallback behavior as compatibility-sensitive review surfaces; src/agents/AGENTS.md also applies to the touched agent runtime tests and code. (AGENTS.md:30, d68ba5edc598)
  • Current-main source reproduction: Current main returns no auto-fallback primary probe when stored fallback origin provider/model differ from the current primary, matching the linked polluted-origin failure mode. (src/agents/agent-scope.ts:166, d68ba5edc598)
  • Current tests encode the stale-origin skip: The current agent-scope test expects resolveAutoFallbackPrimaryProbe to return undefined when the stored auto fallback origin differs from the active primary. (src/agents/agent-scope.test.ts:640, d68ba5edc598)
  • PR stale-origin classifier: PR head adds isStaleAutoFallbackOriginOverride to identify auto fallback pins whose recorded origin key differs from the current primary while the stored override is not already the primary. (src/agents/auto-fallback-stale-origin.ts:33, 844c625a8a0e)
  • Reply-side guarded cleanup: PR head routes stale-origin detection through model selection, defers persistence when requested, and uses a captured-row guard before clearing model/auth fallback state. (src/auto-reply/reply/model-selection.ts:338, 844c625a8a0e)
  • Direct command guarded cleanup: PR head ignores stale stored fallback pins for direct command selection, prepares the primary attempt, and only persists cleanup after a non-exhausted run with an exact captured-row match. (src/agents/agent-command.ts:1508, 844c625a8a0e)

Likely related people:

  • vincentkoc: Authored the per-agent defaults and safe model fallback feature that established the fallback behavior this PR repairs. (role: introduced fallback feature; confidence: high; commits: c96a12aeb9e8; files: src/agents/agent-scope.ts, src/auto-reply/reply/model-selection.ts, src/auto-reply/reply/get-reply-directives.ts)
  • steipete: Authored the auto fallback transition/probe work and model failover docs that define snap-back behavior for auto fallback pins. (role: fallback recovery feature owner; confidence: high; commits: 4b0f16d496e5; files: src/agents/agent-scope.ts, src/auto-reply/reply/agent-runner.ts, docs/concepts/model-failover.md)
  • neeravmakwana: Authored merged legacy auto-fallback cleanup touching agent-scope, agent-command, and reply model-selection paths adjacent to this PR. (role: adjacent fallback cleanup author; confidence: high; commits: 711ab45025a2; files: src/agents/agent-command.ts, src/agents/agent-scope.ts, src/auto-reply/reply/model-selection.ts)
  • joshavant: Authored merged fallback provenance work across reloads involving the same fallback-origin session metadata. (role: adjacent fallback provenance contributor; confidence: medium; commits: 1dac68c0bbe7; files: src/agents/agent-command.ts, src/agents/agent-scope.ts, src/config/sessions/model-override-provenance.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.

@openclaw-barnacle openclaw-barnacle Bot added proof: supplied External PR includes structured after-fix real behavior proof. and removed triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels Jun 14, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. 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. P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. labels Jun 14, 2026
@TurboTheTurtle
TurboTheTurtle force-pushed the codex/92776-prepared-model-selection-boundary branch from 30bd429 to a439e64 Compare June 14, 2026 02:48
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 14, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 14, 2026
@TurboTheTurtle
TurboTheTurtle force-pushed the codex/92776-prepared-model-selection-boundary branch from a439e64 to ebe706b Compare June 14, 2026 04:02
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 14, 2026
@TurboTheTurtle

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 14, 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:

@TurboTheTurtle
TurboTheTurtle marked this pull request as ready for review June 14, 2026 04:06
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 14, 2026
@TurboTheTurtle
TurboTheTurtle force-pushed the codex/92776-prepared-model-selection-boundary branch from ebe706b to 519c178 Compare June 14, 2026 05:41
@openclaw-barnacle openclaw-barnacle Bot added commands Command implementations and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. labels Jun 14, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 14, 2026
@TurboTheTurtle

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 14, 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:

@TurboTheTurtle
TurboTheTurtle force-pushed the codex/92776-prepared-model-selection-boundary branch from 519c178 to bc3d129 Compare June 14, 2026 07:12
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 14, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 14, 2026
@clawsweeper clawsweeper Bot added the status: 🛠️ actively grinding The PR author has acted after the latest ClawSweeper review and work remains. label Jun 28, 2026
@TurboTheTurtle

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 28, 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.

@TurboTheTurtle
TurboTheTurtle force-pushed the codex/92776-prepared-model-selection-boundary branch from 6b7803e to 239ae36 Compare June 28, 2026 21:56
@TurboTheTurtle

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 28, 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.

@clawsweeper clawsweeper Bot added status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. and removed status: 🛠️ actively grinding The PR author has acted after the latest ClawSweeper review and work remains. labels Jun 28, 2026
@TurboTheTurtle

Copy link
Copy Markdown
Contributor Author

Updated the PR body with redacted runtime/session proof from an isolated openclaw agent --local run on 239ae36, including before/after session fields and the captured local model request (primary-model, not stale fallback-model).

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

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

@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Jun 28, 2026
@TurboTheTurtle
TurboTheTurtle force-pushed the codex/92776-prepared-model-selection-boundary branch from 239ae36 to 844c625 Compare July 1, 2026 04:54
@TurboTheTurtle

Copy link
Copy Markdown
Contributor Author

Rebased onto current origin/main and refreshed proof at 844c625a8a0e99bc7de934c286fbdd105d5cec39.

Proof update:

  • Real openclaw agent --local run using a throwaway OPENCLAW_STATE_DIR, synthetic stale fallback session row, and local OpenAI-compatible endpoint.
  • Seeded stale row had modelOverride=fallback-model, modelOverrideSource=auto, fallback origin proof-local/old-primary-model, and auto auth proof-local:auto-fallback.
  • The only model request was POST /v1/chat/completions with model=primary-model, stream=true, messageCount=2, toolCount=39.
  • No request used fallback-model.
  • Persisted session after the run had modelProvider=proof-local, model=primary-model, and the stale model/auth override fields cleared.

Validation:

  • Focused Vitest: 133 agent/model-selection tests + 3 directives tests
  • oxfmt --check
  • pnpm tsgo:prod
  • pnpm check:test-types
  • extension package boundary compile: 116 plugins
  • pnpm build
  • git diff --check origin/main...HEAD

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 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.

@openclaw-barnacle openclaw-barnacle Bot added triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. and removed triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. labels Jul 1, 2026
@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 Jul 1, 2026
@openclaw-barnacle

Copy link
Copy Markdown

This pull request has been automatically marked as stale due to inactivity.
Please add updates or it will be closed.

@openclaw-barnacle openclaw-barnacle Bot added the stale Marked as stale due to inactivity label Jul 16, 2026
@openclaw-barnacle

Copy link
Copy Markdown

Closing due to inactivity.
If you believe this PR should be revived, post in #clawtributors on Discord to talk to a maintainer.
That channel is the escape hatch for high-quality PRs that get auto-closed.

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 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. P1 High-priority user-facing bug, regression, or broken workflow. 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: L stale Marked as stale due to inactivity status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

2 participants