Skip to content

fix(gateway): reduce WebChat ingress latency#80670

Open
AndyTane wants to merge 3 commits into
openclaw:mainfrom
AndyTane:codex/fix-webchat-eager-transcript-main
Open

fix(gateway): reduce WebChat ingress latency#80670
AndyTane wants to merge 3 commits into
openclaw:mainfrom
AndyTane:codex/fix-webchat-eager-transcript-main

Conversation

@AndyTane

@AndyTane AndyTane commented May 11, 2026

Copy link
Copy Markdown

Summary

  • Persist WebChat user turns to the active session JSONL immediately after chat.send ACK and before agent dispatch enters the serialized session lane.
  • Pass an entry-scoped suppression marker through reply options, queued followups, and the embedded Pi runner so Pi does not append the same current user turn again.
  • Handle session rollover, stale session-store cache, hooks, reset commands, active same-session runs, and trailing user history repair without changing normal assistant persistence.

Verification

  • corepack pnpm exec oxfmt --check --threads=1 CHANGELOG.md docs/web/webchat.md src/agents/pi-embedded-runner/run.ts src/agents/pi-embedded-runner/run/attempt.prompt-helpers.test.ts src/agents/pi-embedded-runner/run/attempt.prompt-helpers.ts src/agents/pi-embedded-runner/run/attempt.ts src/agents/pi-embedded-runner/run/params.ts src/agents/session-tool-result-guard-wrapper.ts src/auto-reply/get-reply-options.types.ts src/auto-reply/reply/agent-runner-run-params.ts src/auto-reply/reply/followup-runner.ts src/auto-reply/reply/get-reply-run.ts src/auto-reply/reply/queue/types.ts src/gateway/server-methods/chat.ts src/gateway/server-methods/chat-user-transcript-persistence.ts src/gateway/server.chat.gateway-server-chat-b.test.ts src/gateway/session-utils.ts
  • corepack pnpm test src/agents/pi-embedded-runner/run/attempt.prompt-helpers.test.ts src/gateway/server.chat.gateway-server-chat.test.ts src/gateway/server.chat.gateway-server-chat-b.test.ts src/auto-reply/reply/agent-runner-utils.test.ts src/auto-reply/reply/agent-runner-execution.test.ts src/auto-reply/reply/followup-runner.test.ts src/agents/pi-embedded-runner/run.overflow-compaction.loop.test.ts
  • corepack pnpm tsgo:core
  • corepack pnpm tsgo:core:test
  • corepack pnpm check:changed
  • corepack pnpm build
  • git diff --check

Real behavior proof

  • Behavior or issue addressed: WebChat direct messages submitted through the gateway could wait behind a stuck or cleaning same-session agent lane before the user turn was written to the active session JSONL. In the reproduced case, the message arrived through the ClawStation WebSocket path around 22:10 but was not visible through WebChat history until about 22:13.
  • Real environment tested: Windows local OpenClaw gateway with the existing ClawStation configuration, direct/private WebChat delivery from ClawStation to an OpenClaw agent, local session JSONL storage, and the user's configured model/provider setup. Runtime logs and private identifiers were redacted before inclusion here.
  • Exact steps or command run after this patch: Built and started the patched local OpenClaw gateway, sent a private message from ClawStation to an agent, watched gateway/session logs, checked WebChat visibility, then repeated after triggering the session rollover edge case that previously logged ignored eager user transcript suppression after session rollover.
  • Evidence after fix: Redacted runtime log / copied live output from the local setup:
before: websocket receive ~=22:10, lane diagnostic active=1 queued=1 last=run:completed, user transcript append ~=22:13:07, chat.history visible ~=22:13:16
after: ClawStation private message submitted through WebSocket, WebChat displayed the user turn immediately after gateway ACK, before the agent lane finished; no duplicate user turn appeared in OpenClaw WebUI
rollover retest: eager user transcript was written to the active rolled session, Pi suppression matched the persisted entry id, and the agent response continued normally
health check while preparing PR: Invoke-RestMethod http://127.0.0.1:18790/health -> {"ok":true,"status":"live"}
  • Observed result after fix: The user turn is visible in WebChat as soon as the gateway eagerly appends it to the active session transcript, instead of waiting for the serialized agent lane. The Pi runner does not append the same current user turn a second time, reset commands are not written as durable user transcript entries, hook-gated paths still use fallback persistence, and session rollover uses the active session rather than the stale pre-rollover session.
  • What was not tested: I did not test a freshly built main Control UI against the user's running 5.7 gateway because the gateway protocol versions differ; that combination previously produced a protocol mismatch. The PR branch was validated with targeted gateway/Pi tests and pnpm build instead.

AI-assisted disclosure

  • This PR was developed with Codex assistance. I reviewed the code paths manually, ran the verification above, and understand the change.
  • I attempted the repository-requested local Codex review with codex review --base origin/main, codex review --uncommitted, and codex review --commit HEAD; each attempt timed out locally without producing findings.

@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation app: web-ui App: web-ui gateway Gateway runtime agents Agent runtime and tooling size: XL triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels May 11, 2026
@clawsweeper

clawsweeper Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

Codex review: found issues before merge. Reviewed July 4, 2026, 12:32 AM ET / 04:32 UTC.

Summary
The PR adds eager Gateway/WebChat user-turn transcript persistence, Pi suppression metadata, and tests/docs for avoiding duplicate persistence across rollover, media, and fallback paths.

PR surface: Source +519, Tests +916, Docs +1. Total +1436 across 17 files.

Reproducibility: no. high-confidence live current-main reproduction was run in this read-only review. Source inspection plus the canonical issue show the timing class around chat.send ACK before durable user-turn visibility, and the PR branch still skips the busy same-session case.

Review metrics: 2 noteworthy metrics.

  • Internal persistence handoff fields: 3 added. The PR adds suppression, session-id, and entry-id fields through internal reply/runner contracts, so maintainers need the handoff aligned with current recorder ownership before merge.
  • Live mergeability: dirty, rebaseable=false. The current branch cannot land as-is and needs a current-main port before functional review can become a land-ready verdict.

Stored data model
Persistent data-model change detected: persistent cache schema: src/gateway/server.chat.gateway-server-chat-b.test.ts, serialized state: src/agents/pi-embedded-runner/run/attempt.prompt-helpers.test.ts, serialized state: src/agents/session-tool-result-guard-wrapper.ts, serialized state: src/gateway/server.chat.gateway-server-chat-b.test.ts, serialized state: src/gateway/session-utils.ts. Confirm migration or upgrade compatibility proof before merge.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🦞 diamond lobster
Patch quality: 🧂 unranked krab
Result: blocked by patch quality or review findings.

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

Rank-up moves:

  • Port the implementation onto current main's shared user-turn recorder/session-accessor boundary.
  • [P2] Add or preserve a focused test for the busy same-session path before chat.send dispatch.
  • Refresh mergeability and rerun the targeted Gateway/embedded-runner checks.

Mantis proof suggestion
A short WebChat proof would help confirm visible send latency and duplicate suppression after a current-main port. A maintainer can ask Mantis to capture proof by posting this exact PR comment:

@openclaw-mantis visual task: verify a WebChat user message appears immediately after chat.send ACK while an existing same-session run is busy, and that the transcript has no duplicate user turn.

Risk before merge

  • [P1] The branch is dirty and rebaseable=false, so maintainers cannot land it without a current-main port.
  • [P1] The PR's eager persistence gate skips active same-session runs, leaving the highest-risk stuck/queued lane timing class unresolved.
  • [P1] Merging an older parallel transcript-persistence design could duplicate, stale, or misorder user turns against the current shared recorder path.
  • [P1] Changing the chat.send ACK/durable boundary affects latency, hooks, rollover behavior, duplicate suppression, and message delivery semantics.

Maintainer options:

  1. Port Through Shared Recorder (recommended)
    Rebase onto current main and route durable WebChat user-turn persistence through the shared recorder/session-accessor boundary instead of the branch's parallel eager append path.
  2. Pause For Contract Decision
    If maintainers have not settled whether chat.send ACK should require durable user-turn persistence, pause this branch and review the canonical issue first.
  3. Accept Runtime-Owned Durability
    Maintainers could intentionally keep delayed runtime-owned persistence, but then this PR should not claim to fix the remaining WebChat send durability issue.

Next step before merge

  • [P2] The blocker is maintainer/author rework around the durable chat.send contract and current-main port, not a safe narrow automation repair.

Security
Cleared: No concrete security or supply-chain concern is visible from the diff; remaining blockers are session/message correctness and upgrade safety.

Review findings

  • [P1] Cover the busy same-session path — src/gateway/server-methods/chat.ts:2350-2353
Review details

Best possible solution:

Port the useful WebChat durability goal onto the current shared user-turn recorder/session-accessor path and prove busy same-session, rollover, media, hook, and failure paths there.

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

No high-confidence live current-main reproduction was run in this read-only review. Source inspection plus the canonical issue show the timing class around chat.send ACK before durable user-turn visibility, and the PR branch still skips the busy same-session case.

Is this the best way to solve the issue?

No, not as written. The direction is plausible, but current main now has a shared user-turn recorder boundary and this branch needs a port plus busy same-session proof before it is the best fix.

Full review comments:

  • [P1] Cover the busy same-session path — src/gateway/server-methods/chat.ts:2350-2353
    The PR is meant to make WebChat user turns visible before they wait behind a stuck or busy same-session lane, but the new eager path returns false when another run for that same session is active. That leaves the highest-risk timing class waiting for later runtime/fallback persistence, so the user turn can still be absent from history in the scenario this PR is trying to fix.
    Confidence: 0.86

Overall correctness: patch is incorrect
Overall confidence: 0.86

AGENTS.md: found and applied where relevant.

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

Label changes

Label justifications:

  • P1: The PR targets a high-impact WebChat send path where accepted user messages can disappear or be delayed on the primary control surface.
  • merge-risk: 🚨 session-state: The patch changes transcript persistence, session rollover handling, and runtime suppression markers.
  • merge-risk: 🚨 message-delivery: The patch changes when WebChat user turns become durable and visible after chat.send.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🦞 diamond lobster and patch quality is 🧂 unranked krab.
  • status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Sufficient (logs): The PR body includes redacted runtime log/live-output proof from a local Windows Gateway/WebChat setup showing after-fix immediate WebChat visibility, no duplicate user turn, and a rollover retest.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes redacted runtime log/live-output proof from a local Windows Gateway/WebChat setup showing after-fix immediate WebChat visibility, no duplicate user turn, and a rollover retest.
Evidence reviewed

PR surface:

Source +519, Tests +916, Docs +1. Total +1436 across 17 files.

View PR surface stats
Area Files Added Removed Net
Source 13 549 30 +519
Tests 3 917 1 +916
Docs 1 1 0 +1
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 17 1467 31 +1436

What I checked:

  • Repository policy applied: Root policy requires whole decision-surface review for Gateway/session changes and treats session state, fallback behavior, and message delivery as compatibility-sensitive. (AGENTS.md:27, 26cb189276af)
  • Scoped Gateway transcript rule: Gateway server methods are instructed not to append raw message JSONL entries and to use SessionManager.appendMessage(...) or a wrapper that preserves transcript linkage. (src/gateway/server-methods/AGENTS.md:3, 26cb189276af)
  • Maintainer notes check: No .agents/maintainer-notes directory exists in this checkout, so there were no matching internal notes to apply.
  • Live mergeability: GitHub reports the PR head as mergeable=false, mergeable_state=dirty, and rebaseable=false, so it cannot land without a current-main port. (c3f576d54342)
  • PR branch busy-session gap: The PR's eager persistence gate returns false when another same-session chat or embedded run is active, leaving the stuck/queued lane timing class without eager durability. (src/gateway/server-methods/chat.ts:2350, c3f576d54342)
  • Current main ACK boundary: Current main sends the chat.send started ACK before constructing the user-turn recorder, so durable-before-ACK behavior is not already implemented on main. (src/gateway/server-methods/chat.ts:3868, 26cb189276af)

Likely related people:

  • shakkernerd: Authored the merged shared user-turn recorder work that current main uses for Gateway, runtime, and fallback transcript persistence. (role: user-turn transcript persistence owner by history; confidence: high; commits: 223655dfc473; files: src/sessions/user-turn-transcript.ts, src/gateway/server-methods/chat.ts, src/auto-reply/get-reply-options.types.ts)
  • BunsDev: Authored the merged WebChat queued/pending send preservation PR adjacent to this user-send visibility problem. (role: adjacent WebChat pending-send contributor; confidence: medium; commits: 96635c7c27e3; files: ui/src/ui/app-chat.ts, ui/src/ui/controllers/chat.ts, ui/src/ui/e2e/chat-flow.e2e.test.ts)
  • fuller-stack-dev: Introduced earlier Gateway WebChat inbound media persistence changes in the same chat.send area that this PR also touches. (role: adjacent Gateway/WebChat media contributor; confidence: low; commits: c9449d77b40a; files: src/gateway/server-methods/chat.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 the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@openclaw-barnacle openclaw-barnacle Bot added proof: supplied External PR includes structured after-fix real behavior proof. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels May 11, 2026
@AndyTane
AndyTane force-pushed the codex/fix-webchat-eager-transcript-main branch 2 times, most recently from 1153e45 to 240fc10 Compare May 11, 2026 16:21
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@AndyTane

Copy link
Copy Markdown
Author

Maintainer merge request for head $sha.

Summary:

  • Kept the WebChat eager user transcript fix, so chat.send persists the user turn before entering the agent/session lane.
  • Fixed the attachment regression from the eager path: attachment media persistence no longer blocks dispatch, and the live session.message is emitted with media metadata only after the media rewrite completes.

After-fix verification from local OpenClaw source checkout:

ode scripts/test-projects.mjs src/gateway/server-methods/chat.directive-tags.test.ts -> 73 passed.

ode scripts/test-projects.mjs src/agents/pi-embedded-runner/run/attempt.prompt-helpers.test.ts src/gateway/server.chat.gateway-server-chat.test.ts src/gateway/server.chat.gateway-server-chat-b.test.ts src/auto-reply/reply/agent-runner-utils.test.ts src/auto-reply/reply/agent-runner-execution.test.ts src/auto-reply/reply/followup-runner.test.ts src/agents/pi-embedded-runner/run.overflow-compaction.loop.test.ts -> 7 files / 195 tests passed.

ode_modules.bin\oxfmt.CMD --check --threads=1 src\gateway\server-methods\chat.ts -> passed.

  • corepack pnpm tsgo:core -> passed.
  • corepack pnpm tsgo:core:test -> passed.
  • corepack pnpm check:changed -> passed.
  • git diff --check and git diff --check origin/main..HEAD -> passed.

GitHub checks observed on the latest SHA:

  • Real behavior proof -> success.
  • label, label-issues, and dispatch -> success.
  • One �uto-response check was cancelled for the superseded push; the rerun on the latest SHA completed successfully.

Please merge when maintainer-required CI/review is satisfied.

@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@AndyTane
AndyTane force-pushed the codex/fix-webchat-eager-transcript-main branch from e88e845 to 5367508 Compare May 11, 2026 17:19
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@AndyTane

AndyTane commented May 11, 2026

Copy link
Copy Markdown
Author

Update after rebasing onto latest origin/main (839e9e9): head is now $sha.

Mergeability:

  • Rebased cleanly after resolving the only conflict in CHANGELOG.md by dropping the contributor changelog entry, per repository guidance that maintainer/AI handles changelog during landing.
  • GitHub now reports the PR as mergeable (mergeable=true); current unstable state is pending CI on the new SHA.

Re-run local verification after rebase:

ode scripts/test-projects.mjs src/gateway/server-methods/chat.directive-tags.test.ts -> 73 passed.

ode scripts/test-projects.mjs src/agents/pi-embedded-runner/run/attempt.prompt-helpers.test.ts src/gateway/server.chat.gateway-server-chat.test.ts src/gateway/server.chat.gateway-server-chat-b.test.ts src/auto-reply/reply/agent-runner-utils.test.ts src/auto-reply/reply/agent-runner-execution.test.ts src/auto-reply/reply/followup-runner.test.ts src/agents/pi-embedded-runner/run.overflow-compaction.loop.test.ts -> 7 files / 195 tests passed.

ode_modules.bin\oxfmt.CMD --check --threads=1 src\gateway\server-methods\chat.ts src\gateway\server-methods\chat-user-transcript-persistence.ts src\gateway\server.chat.gateway-server-chat-b.test.ts src\agents\pi-embedded-runner\run\attempt.prompt-helpers.ts src\agents\pi-embedded-runner\run\attempt.prompt-helpers.test.ts -> passed.

  • corepack pnpm tsgo:core -> passed.
  • corepack pnpm check:changed -> passed.
  • git diff --check origin/main..HEAD -> passed.

Known local check gap:

  • corepack pnpm tsgo:core:test currently fails on latest main in unrelated ACP tests: src/acp/translator.session-rate-limit.test.ts and src/acp/translator.stop-reason.test.ts. This PR has no src/acp/** changes, so I did not expand this latency fix into ACP test typing cleanup.

Please merge once required CI/review is satisfied.

Re-review progress:

@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@AndyTane

Copy link
Copy Markdown
Author

CI follow-up for the latest head (c3f576d54342c54cfffcddcdb3d1051cc8860971):

  • Fixed the checks-node-agentic-gateway-methods failure in chat.directive-tags.test.ts by waiting for the intentionally backgrounded eager media transcript path to drain before the test exits. The previous assertion only waited for media saves, so a late transcript update from "serial please" could leak into the following "quick command" test on CI.
  • This is test-only; the gateway behavior remains the same.

Local verification after the fix:

node scripts/test-projects.mjs src/gateway/server-methods/chat.directive-tags.test.ts
# 1 file / 73 tests passed

node scripts/test-projects.mjs src/gateway/server-methods/chat.directive-tags.test.ts src/gateway/server.chat.gateway-server-chat.test.ts src/gateway/server.chat.gateway-server-chat-b.test.ts
# 3 files / 122 tests passed

node_modules\.bin\oxfmt.CMD --check --threads=1 src/gateway/server-methods/chat.directive-tags.test.ts
# passed

corepack pnpm check:changed
# passed

git diff --check origin/main..HEAD
git diff --check
# passed

I also attempted the full CI shard locally with test/vitest/vitest.gateway-methods.config.ts, but the Windows local run exceeded a 5 minute timeout before producing a result, so I am relying on the targeted gateway-method tests above plus the GitHub shard rerun.

@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@AndyTane

Copy link
Copy Markdown
Author

Maintainer merge request update:

  • The previous Real behavior proof blocker is fixed and passing on the latest head.
  • The follow-up checks-node-agentic-gateway-methods failure is fixed by c3f576d54342c54cfffcddcdb3d1051cc8860971; the GitHub shard is now passing.
  • Current state has no failed checks; remaining checks are still queued in GitHub Actions.

Please merge once the required queued checks complete, unless another maintainer concern comes up.

@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 May 26, 2026
@clawsweeper clawsweeper Bot added rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. labels May 26, 2026
@clawsweeper

clawsweeper Bot commented May 26, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper PR egg

✨ Hatched: 🥚 common Pearl Diff Drake

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: 🥚 common.
Trait: polishes edge cases.
Image traits: location green-check meadow; accessory tiny test log scroll; palette violet, aqua, and starlight; mood watchful; pose leaning over a miniature review desk; shell starlit enamel shell; lighting moonlit rim light; background small green status lights.
Share on X: post this hatch
Copy: My PR egg hatched a 🥚 common Pearl Diff Drake 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.

@openclaw-barnacle openclaw-barnacle Bot removed the stale Marked as stale due to inactivity label May 27, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. and removed rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. labels May 27, 2026
@clawsweeper clawsweeper Bot added 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. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jun 14, 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 19, 2026
@clawsweeper

clawsweeper Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper status: review started.

I am starting a fresh review of this pull request: fix(gateway): reduce WebChat ingress latency This is item 1/1 in the current shard. Shard 8/20.

This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking.

Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted.

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

Labels

agents Agent runtime and tooling app: web-ui App: web-ui docs Improvements or additions to documentation gateway Gateway runtime merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. 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: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: XL stale Marked as stale due to inactivity status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant