Skip to content

fix: allow stopping manual compaction#90821

Merged
steipete merged 2 commits into
openclaw:mainfrom
Pick-cat:fix/66535-compact-cancelable
Jul 10, 2026
Merged

fix: allow stopping manual compaction#90821
steipete merged 2 commits into
openclaw:mainfrom
Pick-cat:fix/66535-compact-cancelable

Conversation

@Pick-cat

@Pick-cat Pick-cat commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Closes #66535

What Problem This Solves

Fixes an issue where users running manual /compact could not stop a slow or stuck compaction with /stop. The work was not discoverable through the active-run lifecycle, so cancellation was a no-op until compaction completed or timed out.

Why This Change Was Made

Manual compaction now owns one exact embedded-run handle before setup, native compaction, or lane waiting begins. The handle preserves any existing embedded writer, merges caller and lifecycle abort signals, carries cancellation through context-engine and native-harness compaction, and clears itself on every exit. The command also refuses to start a second writer when a previously aborted run does not drain within 15 seconds.

Budget and preflight compaction keep their existing owner and behavior.

User Impact

Users can stop an in-progress manual compaction through the same /stop path used for other active agent work. A stop issued before the queued compaction begins also prevents hooks and compaction work from starting.

Evidence

Exact reviewed head: ce88c48092afd6cca9e537477311d84cbf666b3b.

  • CI run 29107478969, attempt 2: success. Attempt 1's only failure was an unrelated Telegram proof process-timing flake; the failed job rerun succeeded.
  • Real behavior proof: success.
  • Focused coverage proves cancellation before the queued task starts; context-engine cancellation; primary and secondary native-harness cancellation; coexistence with the command reply operation; active session-key/session-file rejection; setup-failure cleanup; and abort-drain timeout refusal.
  • Fresh gpt-5.5 xhigh autoreview against current origin/main: no accepted or actionable findings.

Direct Codex contract review confirms the native path is cancellable through this signal:

  • codex-rs/app-server/src/request_processors/thread_processor.rs:1820-1831 submits Op::Compact from thread/compact/start and returns.
  • codex-rs/app-server/src/request_processors/turn_processor.rs:1346-1408 submits Op::Interrupt and holds a normal interrupt response until terminal abort handling.
  • extensions/codex/src/app-server/compact.ts:117-159,268-278 issues turn/interrupt when the passed signal aborts and retains its terminal/retirement lifecycle fence.
  • extensions/codex/harness.ts:92-105 routes both primary and post-context-engine native compaction through that bridge.

Remaining gap: no live Control UI or TUI /stop trace against a controllably slow queued or Codex-native compaction. The production cancellation lifecycle and native bridge are covered at source and exact-head CI/Real-proof level.

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

clawsweeper Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed July 9, 2026, 4:18 AM ET / 08:18 UTC.

Summary
The branch adds a queued manual-compaction abort controller, registers it as a synthetic active embedded-run handle during the queued task, clears it in finally, and adds a drain-timeout guard plus regression coverage.

PR surface: Source +62, Tests +128. Total +190 across 4 files.

Reproducibility: yes. source-reproducible: current main routes /stop to abortEmbeddedAgentRun, and that primitive cannot abort manual queued compaction because the compaction is not registered in ACTIVE_EMBEDDED_RUNS. I did not run a live slow compaction locally, but the PR includes a negative-control test and Mantis proof for the chat surface.

Review metrics: 2 noteworthy metrics.

  • Synthetic active-run handles: 1 added lifecycle. The PR adds one new active-run registration/cleanup path, which is the core session-state behavior maintainers should review before merge.
  • Compaction drain guard: 1 added timeout branch. The command now refuses to start compaction when the prior run has not drained, changing the user-visible availability behavior during stop/compact races.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #66535
Summary: This PR is the active candidate fix for the open /compact cancellation bug; two earlier PRs for the same issue closed unmerged, and the merged delegate abort bridge is a prerequisite/overlap rather than a replacement.

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 ✨ media proof bonus
Patch quality: 🦞 diamond lobster
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:

  • none.

Risk before merge

  • [P1] The patch intentionally adds synthetic active-run bookkeeping around queued manual compaction; if that lifecycle ever misses cleanup, a session could look active or unavailable after compaction, though this diff uses handle-identity clearing in finally.
  • [P1] The PR is currently behind latest main while still reported mergeable, so final landing should use exact-head merge-queue or refreshed CI to catch any current-main drift.

Maintainer options:

  1. Land with lifecycle proof (recommended)
    Accept the bounded session-state and availability risk because the active-run handle lifecycle, drain guard, CI, and Mantis proof now cover the changed behavior.
  2. Ask for another live diagnostic pass
    Require a fresh exact-head live /compact plus /stop capture with logs if maintainers want transport-layer proof beyond the current source-level and Mantis evidence.

Next step before merge

  • No automated repair is needed because the current review found no actionable patch defect; the remaining action is normal exact-head maintainer merge review.

Security
Cleared: The diff changes in-process active-run cancellation and tests only; it does not alter CI, dependencies, secrets, package metadata, or external code execution surfaces.

Review details

Best possible solution:

Land this focused lifecycle fix after normal exact-head maintainer merge review, then close the canonical /compact cancellation issue when the merge reaches main.

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

Yes, source-reproducible: current main routes /stop to abortEmbeddedAgentRun, and that primitive cannot abort manual queued compaction because the compaction is not registered in ACTIVE_EMBEDDED_RUNS. I did not run a live slow compaction locally, but the PR includes a negative-control test and Mantis proof for the chat surface.

Is this the best way to solve the issue?

Yes, this is the best inspected fix shape: registering the synthetic handle inside the queued manual compaction task keeps the handle scoped to the actual in-flight work and avoids replacing existing budget or reply-run handles. A command-entry registration would cover the wrong lifetime and create more session-state risk.

AGENTS.md: found and applied where relevant.

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

Label changes

Label justifications:

  • P2: This is a normal-priority bug fix for a bounded /compact cancellation workflow with limited blast radius and current proof.
  • merge-risk: 🚨 session-state: Merging changes how manual compaction is represented in active embedded-run state and must clear that state correctly after abort or completion.
  • merge-risk: 🚨 availability: Merging changes command behavior when a previous run does not drain and could leave users temporarily unable to start manual compaction if the lifecycle regresses.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🦞 diamond lobster.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (recording): The PR has sufficient proof: production-function tests exercise the abort lifecycle and negative control, and Mantis attached Telegram Desktop before/after recording metadata and screenshots for the /compact plus /stop surface.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR has sufficient proof: production-function tests exercise the abort lifecycle and negative control, and Mantis attached Telegram Desktop before/after recording metadata and screenshots for the /compact plus /stop surface.
  • proof: 🎥 video: Contributor real behavior proof includes video or recording evidence. The PR has sufficient proof: production-function tests exercise the abort lifecycle and negative control, and Mantis attached Telegram Desktop before/after recording metadata and screenshots for the /compact plus /stop surface.
  • mantis: telegram-visible-proof: Mantis should capture Telegram visible proof. The /compact plus /stop behavior is visible in Telegram chat, and the needed Mantis Telegram Desktop proof is already attached.
Evidence reviewed

PR surface:

Source +62, Tests +128. Total +190 across 4 files.

View PR surface stats
Area Files Added Removed Net
Source 2 64 2 +62
Tests 2 134 6 +128
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 4 198 8 +190

What I checked:

  • Repository policy read: Root and scoped agent policy were read; the review applied the OpenClaw guidance to inspect the full command/runtime path, sibling abort surfaces, tests, proof, and history rather than doing a diff-only pass. (AGENTS.md:1, 9566aded5cf8)
  • Current main still misses the active-run registration: Current main queues manual compaction and passes params.abortSignal into compactContextEngineWithSafetyTimeout, but there is no active embedded-run registration around the queued manual compaction body, so /stop cannot discover that compaction as an active run. (src/agents/embedded-agent-runner/compact.queued.ts:344, 9566aded5cf8)
  • Abort primitive depends on active-run state: abortEmbeddedAgentRun(sessionId) only aborts an entry from ACTIVE_EMBEDDED_RUNS or a reply-run fallback; absent a registered compaction handle it logs no_active_run and returns false. (src/agents/embedded-agent-runner/runs.ts:517, 9566aded5cf8)
  • Stop command reaches the same primitive: /stop resolves the target session and calls abortSessionRunTargetWithOutcome, which delegates to abortEmbeddedAgentRun(sessionId), so registering the compaction in active-run state is the right chokepoint for this command path. (src/auto-reply/reply/commands-session-abort.ts:130, 9566aded5cf8)
  • PR diff implements the focused handle lifecycle: The PR adds createQueuedCompactionAbort, forwards caller aborts into a new controller, registers only when requested and no active run already exists, and clears the exact handle during disposal. (src/agents/embedded-agent-runner/compact.queued.ts:91, 202ef682c9a0)
  • PR diff avoids replacing stuck active runs before compacting: The command now checks the boolean result from waitForEmbeddedAgentRunEnd(sessionId, 15_000) and returns a status notice instead of starting compaction when the previous run has not drained. (src/auto-reply/reply/commands-compact.ts:207, 202ef682c9a0)

Likely related people:

  • openperf: Authored the merged fix(context-engine): forward abortSignal through delegation bridge to runtime compaction #89886 abort-signal delegate bridge that this PR now relies on for the queued compaction abort chain. (role: adjacent owner; confidence: high; commits: e0d7776fff86; files: src/context-engine/delegate.ts, src/context-engine/context-engine.test.ts)
  • vincentkoc: Merged the delegate abort forwarding prerequisite and appears in recent release/current-main provenance around the compaction area. (role: merger and adjacent release owner; confidence: medium; commits: e0d7776fff86, e085fa1a3ffd; files: src/context-engine/delegate.ts, src/agents/embedded-agent-runner/compact.queued.ts)
  • Peter Steinberger: The available history points to the auto-reply pipeline split as older provenance for the command path that now hosts /compact and /stop handling. (role: pipeline refactor author; confidence: medium; commits: ea018a68ccb9; files: src/auto-reply/reply/commands-compact.ts, src/auto-reply/reply/commands-session-abort.ts)
  • zw-xysk: Current checked-out blame for the central compact command and queued compaction files is dominated by a recent main commit touching those files, though that commit title is not specific to this feature. (role: recent area contributor; confidence: low; commits: cc961001f3c5; files: src/agents/embedded-agent-runner/compact.queued.ts, src/auto-reply/reply/commands-compact.ts, src/agents/embedded-agent-runner/runs.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.
Review history (2 earlier review cycles)
  • reviewed 2026-06-28T15:12:51.813Z sha 7cb7d21 :: needs real behavior proof before merge. :: none
  • reviewed 2026-07-09T07:41:02.086Z sha 311dae9 :: needs maintainer review before merge. :: none

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jun 6, 2026
@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 6, 2026
@clawsweeper clawsweeper Bot added P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. labels Jun 6, 2026
@openclaw-barnacle openclaw-barnacle Bot added triage: mock-only-proof Candidate: PR proof only shows tests, mocks, snapshots, lint, typecheck, or CI. proof: supplied External PR includes structured after-fix real behavior proof. and removed proof: supplied External PR includes structured after-fix real behavior proof. triage: mock-only-proof Candidate: PR proof only shows tests, mocks, snapshots, lint, typecheck, or CI. labels Jun 6, 2026
@clawsweeper clawsweeper Bot added rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jun 6, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the agents Agent runtime and tooling label Jun 6, 2026
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. labels Jun 6, 2026
@Pick-cat

Pick-cat commented Jun 6, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

RBP check is now passing (success). The proof section has been updated with real behavior evidence. Please refresh the review verdict and labels.

@clawsweeper

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

@Pick-cat
Pick-cat force-pushed the fix/66535-compact-cancelable branch from c6622ec to e65c409 Compare June 9, 2026 04:12
@openclaw-barnacle openclaw-barnacle Bot added the agents Agent runtime and tooling label Jun 9, 2026
@Pick-cat
Pick-cat force-pushed the fix/66535-compact-cancelable branch from e65c409 to 0406f05 Compare June 9, 2026 04:22
@clawsweeper clawsweeper Bot added status: 🛠️ actively grinding The PR author has acted after the latest ClawSweeper review and work remains. and removed status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jun 9, 2026
@clawsweeper clawsweeper Bot added the status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. label Jun 26, 2026
@Pick-cat

Copy link
Copy Markdown
Contributor Author

@openperf @vincentkoc — requesting a maintainer proof decision on this one. ClawSweeper's verdict is explicit that the remaining blocker is a human judgment, not a code repair:

"the remaining blocker is whether to require live gateway proof or accept the source-level chokepoint proof, not a narrow mechanical code repair."

Patch quality is already 🦞 diamond lobster; only the proof tier holds the overall at krab. A live gateway /compact + /stop transport round-trip (option 1) is not reproducible in a contributor environment — it needs a running gateway with a slow live LLM compaction to interrupt mid-flight. The full abort chain is instead proven at the real exported-function layer with a negative control, driving the production compactEmbeddedAgentSession + the same abortEmbeddedAgentRun primitive /stop calls:

  • with fix (registers queued context-engine compaction as an abortable active run): manual /compact registers the active-run handle → abortEmbeddedAgentRun aborts the compaction signal → handle cleared in finally.
  • negative control (does not replace an existing active run handle during budget compaction): without the manual-trigger registration, /stop cannot reach the compaction signal (aborted === false) — i.e. the pre-fix behavior.

The full chain is command → runtime.abortEmbeddedAgentRun → queued task signal → engine.compact(abortSignal) → delegate → runtime → abortCompaction(); the delegate hop is the merged #89886 fix (thanks @openperf). The PR body Evidence is refreshed on head c49f0cc (hooks suite 71/71).

Requesting option 2 — accept the source-level chokepoint proof for this bounded renderer-of-lifecycle fix, consistent with the #94154 precedent. If you'd rather require the live transport layer, that needs a maintainer Mantis capture (the only actor that can run it):

@openclaw-mantis telegram live proof: verify a real manual /compact in progress is stopped by /stop, with redacted gateway logs showing compaction abort and active-run cleanup.

@Pick-cat

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Updated the PR body with a Maintainer Decision Requested section. The runtime cancellation lifecycle (compactEmbeddedAgentSession → real abortEmbeddedAgentRun /stop primitive → in-flight engine.compact(abortSignal)finally cleanup) is proven end-to-end at the real-function layer, with a negative control reproducing the pre-fix behavior. The only remaining item is the live gateway transport round-trip, which is maintainer-owned: accept the source-level chokepoint proof (option 2) or capture the live leg via Mantis (comment included in the body).

@Pick-cat
Pick-cat force-pushed the fix/66535-compact-cancelable branch from c49f0cc to 7cb7d21 Compare June 28, 2026 14:37
@Pick-cat

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Rebased onto current main (head 7cb7d21cb7; the branch was 381 commits behind). The delegate.ts abort-forward hunk is dropped — that forwarding landed upstream via #89886, so this PR is now just the manual-compaction active-run registration (compact.queued.ts) + the drain-timeout guard (commands-compact.ts), and the abort chain still completes through main's delegate. Verified the core fix is still absent on current main (so it is not superseded). Touched lanes green on the rebased head (compact.hooks.test.ts + commands-compact.test.ts), oxlint + tsgo clean. The live-transport proof item is unchanged and remains the maintainer-owned decision noted in the body.

@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 rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. mantis: telegram-visible-proof Mantis should capture Telegram visible proof. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Jun 28, 2026
@clawsweeper
clawsweeper Bot temporarily deployed to qa-live-shared June 28, 2026 14:45 Inactive
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Jun 28, 2026
@openclaw-mantis

Copy link
Copy Markdown
Contributor

Mantis Telegram Desktop Proof

Summary: Mantis captured native Telegram Desktop before/after GIF evidence for /compact and /stop.

Main screenshot This PR screenshot
Baseline native Telegram Desktop screenshot Candidate native Telegram Desktop screenshot
Main This PR
Baseline native Telegram Desktop proof GIF Candidate native Telegram Desktop proof GIF

Motion-trimmed clips:

Raw QA files: https://artifacts.openclaw.ai/mantis/telegram-desktop/pr-90821/run-28325796472-1/index.json

@Pick-cat
Pick-cat force-pushed the fix/66535-compact-cancelable branch from 7cb7d21 to 311dae9 Compare July 9, 2026 07:26
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 🎥 video Contributor real behavior proof includes video or recording evidence. 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: 🦐 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. labels Jul 9, 2026
@steipete
steipete force-pushed the fix/66535-compact-cancelable branch from 202ef68 to ce88c48 Compare July 10, 2026 16:27
@steipete steipete self-assigned this Jul 10, 2026
@steipete steipete changed the title fix(compact): make /compact command cancelable via abortEmbeddedAgentRun fix: allow stopping manual compaction Jul 10, 2026
@steipete

Copy link
Copy Markdown
Contributor

Maintainer review complete: no blocking findings; this is the best owner-boundary fix for #66535.

Land-ready proof on exact head ce88c48092afd6cca9e537477311d84cbf666b3b:

  • CI run 29107478969, attempt 2 succeeded. Attempt 1's sole failure was an unrelated Telegram proof process-timing flake; job 86413906108 passed on rerun.
  • Real behavior proof succeeded.
  • Focused regression coverage exercises pre-queue cancellation, context-engine cancellation, both native-harness positions, reply-operation coexistence, identity aliases, setup cleanup, and the abort-drain timeout guard.
  • Fresh gpt-5.5 xhigh autoreview against origin/main reported no accepted or actionable findings.
  • scripts/pr review-validate-artifacts 90821 passed.
  • OPENCLAW_TESTBOX=1 scripts/pr prepare-run 90821 passed with hosted exact-head/recent-rebase gates.

Direct Codex contract review: thread_compact_start_inner submits Op::Compact; normal turn_interrupt_inner holds its response for terminal abort; OpenClaw's Codex bridge maps the merged abort signal to turn/interrupt and retains the terminal/retirement fence. Both primary and post-context-engine native compaction use that bridge.

Known proof gap: no live Control UI or TUI /stop trace during a controllably slow queued or Codex-native compaction. The production lifecycle below that transport call is covered on the exact head.

@steipete
steipete merged commit 586df58 into openclaw:main Jul 10, 2026
157 of 158 checks passed
@steipete

Copy link
Copy Markdown
Contributor

Merged via squash.

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 11, 2026
* fix(compact): make queued manual compaction abortable

* fix(compact): own manual compaction lifecycle

---------

Co-authored-by: Peter Steinberger <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling mantis: telegram-visible-proof Mantis should capture Telegram visible proof. merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. 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. proof: 🎥 video Contributor real behavior proof includes video or recording evidence. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: M 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.

[Bug]: /compact command cannot be canceled while in progress

2 participants