fix(googlechat): preserve thread targets through reply delivery#89790
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 30, 2026, 2:11 AM ET / 06:11 UTC. Summary PR surface: Source +25, Tests +80. Total +105 across 5 files. Reproducibility: yes. Current-main source shows typing messages and final delivery can still carry stale Google Chat thread metadata after replyToMode removes the intended final target, and the PR adds focused source-level regression coverage for those paths. Review metrics: none identified. Stored data model Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof path suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land one canonical Google Chat thread-routing fix after exact-head live proof or a maintainer proof override, then close the linked issue/source-PR cluster with the merged commit. Do we have a high-confidence way to reproduce the issue? Yes. Current-main source shows typing messages and final delivery can still carry stale Google Chat thread metadata after replyToMode removes the intended final target, and the PR adds focused source-level regression coverage for those paths. Is this the best way to solve the issue? Yes. This is the best focused fix I found because it stays inside the Google Chat plugin delivery boundary and uses the existing explicit-null durable reply contract instead of adding new config or broad core reply API surface. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 56c2d637d940. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +25, Tests +80. Total +105 across 5 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
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
Review history (1 earlier review cycle)
|
|
ClawSweeper status: this ClawSweeper-authored replacement PR is blocked on real behavior proof. Reviewed head: Maintainer decision needed:
Possible manual Mantis/desktop proof suggestion: |
|
Landed the current-main replacement in #104402 as The replacement keeps the useful direction from this branch, but refactors the current Google Chat monitor/durable-delivery paths so typing placeholder identity and location stay together, final targets are normalized once, mismatched placeholders are replaced rather than edited across surfaces, and explicit null suppresses stale inbound reply fallback. Focused Google Chat tests passed (26), the full plugin suite passed (199), changed checks and fresh autoreview were clean, and exact-head hosted CI passed: https://github.com/openclaw/openclaw/actions/runs/29149958216 This branch had drifted from current |
|
Awesome sauce thanks @steipete |
Summary
replyToModesemantics intact for implicit vs explicit reply targets.Verification
node scripts/run-vitest.mjs extensions/googlechat/src/monitor.reply-delivery.test.ts extensions/googlechat/src/monitor-durable.test.tspnpm check:changedRefs: #42510, #69422, #70041, #74235.
ClawSweeper 🐠 replacement reef notes:
Inherited issue-closing references from the source PR:
Fixes #52475
Closes #42510
Co-author credit kept:
fish notes: model gpt-5.5, reasoning high; reviewed against 9336240.