Skip to content

fix(compaction): bypass idle skip at token threshold#73092

Closed
pfrederiksen wants to merge 6 commits into
openclaw:mainfrom
pfrederiksen:fix/compaction-tool-heavy-precheck
Closed

fix(compaction): bypass idle skip at token threshold#73092
pfrederiksen wants to merge 6 commits into
openclaw:mainfrom
pfrederiksen:fix/compaction-tool-heavy-precheck

Conversation

@pfrederiksen

@pfrederiksen pfrederiksen commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Rebase fix/compaction-tool-heavy-precheck onto fresh origin/main
  • Preserve the tool-heavy idle-slice bypass when observed tokens are at/over the active caller threshold
  • Forward the resolved caller session context budget into manual /compact and use that same active caller budget for the idle-threshold check
  • Preserve normal queued compaction reserve semantics by only treating the distinct explicit caller budget as caller-supplied
  • Avoid subtracting the compaction-model reserve from a smaller explicit caller window
  • Add regression coverage for mixed-budget and stale-session-metadata cases where the summarizer model has a much larger context window/reserve than the active caller model
  • Validate against the current-main gateway origin/mobile-pairing hardening that now sits underneath this branch

Real behavior proof

  • Behavior or issue addressed: Idle/tool-only compaction prechecks now use the active caller session context window when one is supplied, and do not subtract the compaction-model reserve from that smaller caller window. This prevents mixed-budget sessions from compacting below the caller threshold just because the summarizer model has a much larger reserve. Manual /compact now passes the resolved active caller budget instead of stale persisted session metadata, while ordinary queued compactions still use the normal context-window-minus-reserve threshold.
  • Real environment tested: Local OpenClaw repository checkout rebased onto origin/main at PR head 7cb398843ec89a587067870496d1f09a8df79a2e, running with the workspace Node/pnpm toolchain.
  • Exact steps or command run after this patch: Ran focused compaction validation plus the current-main failing gateway/pairing shards from the patched checkout:
    • git diff --check
    • node scripts/test-projects.mjs src/agents/pi-embedded-runner/compact.hooks.test.ts src/auto-reply/reply/commands-compact.test.ts
    • node scripts/test-projects.mjs src/gateway/origin-check.test.ts src/gateway/server.auth.browser-hardening.test.ts src/pairing/setup-code.test.ts
    • pnpm check:test-types
    • pnpm check:changelog-attributions
  • Evidence after fix: Terminal output from the focused test run:
    Test Files  1 passed (1)
         Tests  8 passed (8)
    [test] starting test/vitest/vitest.agents.config.ts
    
    Test Files  1 passed (1)
         Tests  44 passed (44)
    [test] passed 2 Vitest shards in 33.90s
    
    $ pnpm tsgo:test
    $ pnpm tsgo:core:test && pnpm tsgo:extensions:test
    $ node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.core.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core-test.tsbuildinfo
    $ node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.extensions.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions-test.tsbuildinfo
    $ node scripts/check-changelog-attributions.mjs
    
  • Observed result after fix: The caller-budget forwarding and stale-session-metadata regression tests pass; the helper keeps reserve-adjusted behavior when no explicit caller budget is supplied; the ordinary queued-compaction reserve semantics are preserved, and the current-main gateway/pairing shards pass on this head.
  • What was not tested: End-to-end manual /compact in a live external model session was not run; focused local behavior and regression coverage were run instead.

Additional current-head gateway/pairing proof

  • Behavior or issue addressed: Latest head also tightens Control UI browser-origin handling and mobile pairing cleartext URL validation. Forged non-local loopback origins should be rejected before pairing auth, local loopback should still work, tailnet ws:// mobile pairing should be rejected with the Tailscale Serve guidance, and configured public wss:// pairing should still work.

  • Real environment tested: Local OpenClaw checkout for PR fix(compaction): bypass idle skip at token threshold #73092 on Linux/Node 22 at head 7cb398843ec89a587067870496d1f09a8df79a2e, using production checkBrowserOrigin and resolvePairingSetupFromConfig.

  • Exact steps or command run after this patch: Ran a pnpm exec tsx --no-warnings -e '...' proof script from the patched checkout that imported the production helpers and exercised forged loopback origin, local loopback origin, tailnet ws:// pairing, and public wss:// pairing.

  • Evidence after fix:

    forged loopback origin ok: false reason: origin not allowed
    local loopback origin ok: true matched: private-same-origin
    tailnet ws pairing ok: false error contains serve: true
    public wss pairing ok: true source: gateway.remote.url
    
  • Observed result after fix: The forged remote loopback origin is rejected, legitimate local loopback still passes, cleartext tailnet mobile pairing returns the secure Tailscale Serve/Funnel guidance, and wss:// public pairing remains accepted.

  • What was not tested: A browser-driven Control UI login and live mobile app pairing flow were not run; this proof uses the production helper paths and the focused gateway/pairing tests above.

Additional manual compact threshold replay

  • Behavior or issue addressed: Manual /compact from an external/caller model session must compare observed usage against the active caller context window, not the larger summarizer window or a reserve-adjusted ordinary queued threshold. Ordinary queued compaction must still preserve the summarizer reserve semantics.

  • Real environment tested: Local OpenClaw checkout for PR fix(compaction): bypass idle skip at token threshold #73092 on Linux/Node 22 at head 7cb3988, executing the production compaction threshold helper through node --import tsx from the patched tree.

  • Exact steps or command run after this patch: Ran a terminal replay of the manual /compact threshold decision with external caller context 200000, summarizer context 258000, reserve 8000, and the reported high-usage token count shape: 236000 observed.

  • Evidence after fix (copied terminal output):

    PR fix(compaction): bypass idle skip at token threshold #73092 manual /compact threshold replay
    external caller model context: 200000 tokens
    summarizer context: 258000 tokens; reserve: 8000 tokens
    tool-only @199999 observed -> skip: true
    tool-only @236000 observed -> skip: false
    ordinary queued @249999 observed with 258000-8000 reserve -> skip: true
    ordinary queued @250000 observed with 258000-8000 reserve -> skip: false
    real conversation @12000 observed -> skip: false
    PASS: true

  • Observed result after fix: The manual /compact high-usage external caller shape does not take the no-real-conversation skip path (skip: false at 236000 observed with caller window 200000), while ordinary queued compaction still subtracts reserve and skips below 250000. Real conversation sessions still bypass this skip as before.

  • What was not tested: This replay does not call a live provider to summarize the transcript; it proves the production decision gate that previously returned before the compaction call.

Validation

  • git diff --check
  • node scripts/test-projects.mjs src/agents/pi-embedded-runner/compact.hooks.test.ts src/auto-reply/reply/commands-compact.test.ts
  • node scripts/test-projects.mjs src/gateway/origin-check.test.ts src/gateway/server.auth.browser-hardening.test.ts src/pairing/setup-code.test.ts
  • pnpm check:test-types
  • pnpm check:changelog-attributions
  • gateway/pairing proof script above

@openclaw-barnacle openclaw-barnacle Bot added agents Agent runtime and tooling size: S labels Apr 27, 2026
@greptile-apps

greptile-apps Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR introduces shouldSkipCompactionForNoRealConversation, a refined version of the previous !containsRealConversationMessages guard, which now allows tool-heavy/heartbeat-only sessions to proceed with compaction when their persisted token count meets or exceeds the context-window threshold. It also pre-fetches resolveFreshSessionTotalTokens before calling compactEmbeddedPiSession in the manual /compact command path so the same value is forwarded into the compaction engine (for the threshold check) and reused for the post-command context summary.

Confidence Score: 5/5

Safe to merge — no correctness or security issues found.

Changes are narrow and well-tested. The threshold arithmetic is correct (boundary-inclusive, verified by the added unit tests). The pre-fetch refactor in commands-compact.ts is logically equivalent for the context-summary path and adds the new capability of forwarding the token count into the compaction engine. No P0/P1 findings.

No files require special attention.

Reviews (1): Last reviewed commit: "fix(compaction): bypass idle skip at tok..." | Re-trigger Greptile

@clawsweeper

clawsweeper Bot commented Apr 30, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge.

Summary
The PR changes compaction threshold handling so tool-heavy manual /compact runs can bypass the idle-session skip at the active caller context threshold, with focused tests, a changelog entry, and a run-node declaration update.

Reproducibility: yes. Source inspection shows current main short-circuits on the outer no-real-conversation guard before token pressure can matter, and the linked report provides the matching 236k/200k manual /compact shape.

Real behavior proof
Sufficient (terminal): The PR body includes after-fix terminal proof from the patched tree showing the production threshold decision proceeds for the 236k/200k caller-window shape while preserving ordinary queued reserve boundaries.

Next step before merge
No ClawSweeper repair job is needed; the latest head has no blocking review finding and normal PR merge/CI gating is the remaining path.

Security
Cleared: The diff changes compaction threshold logic, tests, changelog text, and a local declaration type without adding dependencies, permissions, secrets handling, downloads, or executable supply-chain inputs.

Review details

Best possible solution:

Land this PR or an equivalent narrow fix after current-head CI finishes, then close #73056 as implemented.

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

Yes. Source inspection shows current main short-circuits on the outer no-real-conversation guard before token pressure can matter, and the linked report provides the matching 236k/200k manual /compact shape.

Is this the best way to solve the issue?

Yes. The threshold helper plus manual caller-budget forwarding is a narrow fix that preserves the existing classifier and ordinary queued reserve semantics; I did not find a smaller safer alternative.

What I checked:

  • Current-main compaction guard still reproduces the bug source path: Current main computes observedTokenCount before the guard, but the direct compaction path still returns reason: "no real conversation messages" from containsRealConversationMessages(session.messages) without considering token pressure. (src/agents/pi-embedded-runner/compact.ts:1152, d350ac3febc2)
  • Current-main manual command path does not forward caller token context: Current main resolves the manual context budget but calls compactEmbeddedPiSession without currentTokenCount or a caller-specific threshold budget, then resolves fresh tokens only after compaction for the reply summary. (src/auto-reply/reply/commands-compact.ts:220, d350ac3febc2)
  • PR threshold helper uses caller budget and preserves reserve semantics: The PR adds shouldSkipCompactionForNoRealConversation, which skips idle/tool-only slices only below the observed-token threshold, uses callerContextWindowTokens when supplied, and applies reserve subtraction only for ordinary non-caller threshold decisions. (src/agents/pi-embedded-runner/compact.ts:406, 7cb398843ec8)
  • PR manual /compact forwarding uses resolved active caller values: The latest head resolves currentTokenCount before manual compaction and passes both currentTokenCount and callerContextTokenBudget: contextTokenBudget into the compaction call; the reply summary reuses the same token value when compaction does not return tokensAfter. (src/auto-reply/reply/commands-compact.ts:229, 7cb398843ec8)
  • Regression coverage matches the reported mixed-budget shape: The PR adds tests for over-threshold tool-only slices, below-threshold idle skips, caller-window thresholds, reserve behavior, and manual /compact forwarding assertions. (src/agents/pi-embedded-runner/compact.hooks.test.ts:1008, 7cb398843ec8)
  • Changelog reference was corrected to the tracked issue: The latest PR diff points the release note at the linked compaction report at Outer compaction pre-check misclassifies tool-heavy sessions as idle #73056, resolving the earlier P3 review finding. (CHANGELOG.md:3177, 7cb398843ec8)

Likely related people:

  • Sid-Qin: The merged compaction safeguard work added the early no-real-messages return before calling the Pi SDK compaction path. (role: introduced outer pre-check behavior; confidence: high; commits: e1c5b2c6a8c0; files: src/agents/pi-embedded-runner/compact.ts, CHANGELOG.md)
  • jalehman: Recent merged work on Codex/OpenAI context windows touched the same compaction and manual command budget surfaces this PR depends on. (role: recent context-budget contributor; confidence: high; commits: 4004c9342d7d; files: src/agents/pi-embedded-runner/compact.ts, src/auto-reply/reply/commands-compact.ts)
  • steipete: Recent compaction transcript/runtime work and run-node declaration history overlap the compaction and script seams changed by this PR. (role: recent compaction and runtime contributor; confidence: high; commits: 3c95327b346a, a6225060f1dc; files: src/agents/pi-embedded-runner/compact.ts, scripts/run-node.d.mts)
  • Takhoffman: Prior compact command and compaction agent-directory fixes touched the manual compaction routing area adjacent to this change. (role: adjacent compact-command contributor; confidence: medium; commits: 29018b4af548, bef2fde77f84; files: src/auto-reply/reply/commands-compact.ts, src/agents/pi-embedded-runner/compact.ts)

Remaining risk / open question:

  • The PR body does not include a live external-provider manual /compact run; the supplied proof exercises the production decision gate and focused tests instead.
  • At inspection time, one Critical Quality check was still in progress, so merge should still wait for normal current-head CI completion.

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

@pfrederiksen

Copy link
Copy Markdown
Contributor Author

Addressed the ClawSweeper feedback in 45618cc230.

What changed:

  • Threaded the caller/session context budget from manual /compact into direct compaction.
  • Used that caller budget for the tool-heavy idle-skip bypass threshold instead of only the compaction target window.
  • Added focused regression coverage for the active-session-budget case and the /compact parameter forwarding.
  • Added the required Unreleased/Fixes changelog entry.

Validation run locally:

  • pnpm exec oxfmt --check --threads=1 CHANGELOG.md src/agents/pi-embedded-runner/compact.ts src/agents/pi-embedded-runner/compact.types.ts src/agents/pi-embedded-runner/compact.hooks.test.ts src/auto-reply/reply/commands-compact.ts src/auto-reply/reply/commands-compact.test.ts
  • pnpm test src/agents/pi-embedded-runner/compact.hooks.test.ts src/auto-reply/reply/commands-compact.test.ts
  • pnpm check:test-types

@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented May 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:

@pfrederiksen pfrederiksen force-pushed the fix/compaction-tool-heavy-precheck branch from 45618cc to 62819fa Compare May 14, 2026 03:14
@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@openclaw-barnacle openclaw-barnacle Bot added the triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. label May 14, 2026
@clawsweeper

clawsweeper Bot commented May 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:

@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Updated the PR body with a required Real behavior proof section and post-patch mixed-budget threshold terminal output.

@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 May 14, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 14, 2026
@pfrederiksen pfrederiksen force-pushed the fix/compaction-tool-heavy-precheck branch from 62819fa to 720ad06 Compare May 16, 2026 22:52
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 16, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. P2 Normal backlog priority with limited blast radius. labels May 16, 2026
@clawsweeper

clawsweeper Bot commented May 16, 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:

@pfrederiksen pfrederiksen force-pushed the fix/compaction-tool-heavy-precheck branch from 720ad06 to a170370 Compare May 16, 2026 23:19
@openclaw-barnacle openclaw-barnacle Bot added the gateway Gateway runtime label May 16, 2026
@clawsweeper clawsweeper Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 16, 2026
@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Addressed the P2 by passing the resolved active caller context budget into compaction instead of stale session metadata, added the stale-budget assertion, and updated the PR body with current-head compaction plus gateway/pairing proof.

@clawsweeper

clawsweeper Bot commented May 16, 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:

@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Addressed the new P2 by preserving reserve semantics for ordinary queued compactions: only a distinct explicit callerContextTokenBudget is now treated as caller-supplied. Re-ran the focused compaction shards, typecheck, and changelog attribution.

@clawsweeper

clawsweeper Bot commented May 16, 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:

@pfrederiksen pfrederiksen force-pushed the fix/compaction-tool-heavy-precheck branch from f495948 to 417d7df Compare May 16, 2026 23:57
@openclaw-barnacle openclaw-barnacle Bot added the scripts Repository scripts label May 17, 2026
@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Rebased onto fresh upstream main and added the small run-node declaration fix needed for current-main CI. Please re-check latest head.

@clawsweeper

clawsweeper Bot commented May 17, 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:

@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Rebased/current-main CI follow-up: fixed the run-node declaration/test break and pushed latest head. Please re-check.

@clawsweeper

clawsweeper Bot commented May 17, 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:

@pfrederiksen pfrederiksen force-pushed the fix/compaction-tool-heavy-precheck branch from 47cac0f to 9d5b3bf Compare May 17, 2026 00:35
@openclaw-barnacle openclaw-barnacle Bot removed the gateway Gateway runtime label May 17, 2026
@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review\n\nRebased onto latest upstream main at head ; addressed both compaction P2s: manual now passes the resolved active caller budget, and ordinary queued compactions preserve reserve semantics by only treating the distinct explicit caller budget as caller-supplied. PR body has updated exact-head proof. Please re-check latest head.

@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Correction to the previous comment formatting: rebased onto latest upstream main at head 9d5b3bf. Addressed both compaction P2s: manual compact now passes the resolved active caller budget, and ordinary queued compactions preserve reserve semantics by only treating the distinct explicit caller budget as caller-supplied. PR body has updated exact-head proof. Please re-check latest head.

@clawsweeper

clawsweeper Bot commented May 17, 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:

@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Added additional manual compact threshold replay proof to the PR body at latest head 9d5b3bf. It shows the production decision gate now proceeds for the reported external caller high-usage shape while preserving ordinary queued reserve semantics. Please re-check latest head.

@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 17, 2026
@pfrederiksen pfrederiksen force-pushed the fix/compaction-tool-heavy-precheck branch from 9d5b3bf to b1b4cdb Compare May 17, 2026 01:14
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 17, 2026
@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Rebased onto latest upstream main at head b1b4cdb. PR body exact-head proof was refreshed; the previously accepted manual compact threshold proof is unchanged except for the rebased head SHA. Please re-check latest head.

@clawsweeper

clawsweeper Bot commented May 17, 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 the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 17, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 17, 2026
@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Fixed the P3 changelog reference: the release note now says Fixes #73056 instead of pointing at the PR. Latest head is 7cb3988. Acceptance checks passed locally: git diff --check and pnpm check:changelog-attributions. Please re-check latest head.

@clawsweeper

clawsweeper Bot commented May 17, 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 the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 17, 2026
@pfrederiksen

Copy link
Copy Markdown
Contributor Author

Closing as superseded by current upstream main.\n\nEvidence checked on origin/main:\n- Current main contains the caller context token budget / active runtime config compaction coverage.\n- Focused validation passed:\n - pnpm exec vitest run --config test/vitest/vitest.agents-core.config.ts src/agents/embedded-agent-runner/compact.hooks.test.ts -t 'uses the caller context token budget during runtime compaction'\n - pnpm exec vitest run --config test/vitest/vitest.auto-reply.config.ts src/auto-reply/reply/commands-compact.test.ts -t 'resolves /compact context budget from the active Codex runtime config instead of stale session metadata'\n\nThe standalone PR is no longer needed.

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

Labels

agents Agent runtime and tooling 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. scripts Repository scripts size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant