Regeneration-Prompt: |
After refreshing dependencies in the PR #35474 prep worktree, the full test suite started failing in src/infra/net/proxy-fetch.test.ts even though the file passed in isolation once the env state was reset correctly. The helper gives lowercase proxy env vars precedence over uppercase ones, even when the lowercase values are explicitly empty, so the uppercase-only test cases must delete the lowercase vars instead of blanking them. Keep runtime code unchanged and tighten only the two affected tests so they model the intended env precedence accurately.
Regeneration-Prompt: |
Prepare openclaw/openclaw#35474 for merge after review identified two nits and a required changelog entry. Keep the runtime behavior intact. Update the Telegram config help text so the new messages.statusReactions.emojis.compacting key is documented, add focused regression coverage proving the compacting state is surfaced and the cancelPending race is handled in the shared status-reaction controller plus the Discord and Telegram dispatch paths, and append the required user-facing changelog entry for the current release block with (#35474) thanks @Cypherm. When touching tests, preserve the existing harness structure and make isolated Vitest runs stable under hoisted mocks.
Allow users to customize the compacting status reaction emoji via
messages.statusReactions.emojis.compacting in config.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When compaction finishes before the debounce window (700ms), the queued
setCompacting() emoji could fire after compaction ended, showing ✍
instead of 🤔. This adds cancelPending() to StatusReactionController
and calls it in onCompactionEnd before setThinking() to prevent the
race condition.
Addresses review feedback from chatgpt-codex-connector.
When context auto-compaction runs, the bot appears frozen for 10-30s
with no feedback. This adds a ✍ (writing) status reaction during
compaction so users know the bot is still working.
- Add `compacting` state to StatusReactionController with ✍ emoji
- Add `onCompactionStart`/`onCompactionEnd` callbacks to GetReplyOptions
- Wire existing compaction events to the status reaction system
- Apply to both Telegram and Discord channels
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Process messageData via handleDeltaEvent for both delta and final states
before resolving the turn, so ACP clients no longer drop the last visible
assistant text when the gateway sends the final message body on the
terminal chat event.
Closes#15377
Based on #17615
Co-authored-by: PJ Eby <3527052+pjeby@users.noreply.github.com>
Add shared native chat handling for /new, /reset, and /clear.
This also aligns main session key handling in the shared chat UI and includes follow-up test and CI fixes needed to keep the branch mergeable.
Co-authored-by: Nachx639 <71144023+Nachx639@users.noreply.github.com>
Co-authored-by: Luke <92253590+ImLukeF@users.noreply.github.com>