Skip to content

fix(voice-call): preserve live Twilio streams in stale reaper#90812

Merged
clawsweeper[bot] merged 5 commits into
mainfrom
clawsweeper/automerge-openclaw-openclaw-90620
Jun 15, 2026
Merged

fix(voice-call): preserve live Twilio streams in stale reaper#90812
clawsweeper[bot] merged 5 commits into
mainfrom
clawsweeper/automerge-openclaw-openclaw-90620

Conversation

@clawsweeper

@clawsweeper clawsweeper Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Makes #90620 merge-ready for the ClawSweeper automerge loop.
The edit pass should inspect the live PR diff, review comments, and failing checks; rebase if needed; keep the contributor branch credited; and stop only when validation is green or an external blocker is proven.

ClawSweeper 🐠 replacement reef notes:

  • Repair fallback: GitHub rejected the repair branch push because it updates workflow files and the ClawSweeper app token does not have workflows permission

Inherited issue-closing references from the source PR:
Fixes #79121

Co-author credit kept:

fish notes: model gpt-5.5, reasoning high; reviewed against 060f3de.

@clawsweeper clawsweeper Bot added channel: voice-call Channel integration: voice-call clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge clawsweeper Tracked by ClawSweeper automation labels Jun 6, 2026
@clawsweeper

clawsweeper Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor Author

Codex review: passed. Reviewed June 14, 2026, 3:57 AM ET / 07:57 UTC.

Summary
The PR updates the voice-call plugin to preserve live speaking/listening calls without answeredAt, backfill max-duration enforcement for live/restored call paths, and add regression tests.

PR surface: Source +90, Tests +223. Total +313 across 9 files.

Reproducibility: yes. source-level: current main and v2026.6.6 still reap aged non-terminal calls solely because answeredAt is absent, while live speech paths can reach speaking or listening without setting it. I did not run a live Twilio carrier call in this read-only review.

Review metrics: none identified.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🐚 platinum hermit
Patch quality: 🐚 platinum hermit
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] No live Twilio phone call was placed for this replacement; the supplied proof exercises the production stale-reaper helper and voice-call tests rather than a carrier call.
  • [P1] The replacement branch predates current main and GitHub reported mergeability as unknown in live metadata, so exact-head merge gates should refresh or rebase before landing.

Maintainer options:

  1. Decide the mitigation before merge
    Land the replacement after exact-head mergeability and checks refresh, preserving stale cleanup for non-live calls while enforcing max duration for live and restored calls.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • [P2] No repair lane is needed; the remaining action is normal maintainer/automerge gating on the exact head with mergeability refreshed.

Security
Cleared: The diff changes voice-call runtime logic and tests only; it does not add dependencies, workflow execution, credential handling, or supply-chain surface.

Review details

Best possible solution:

Land the replacement after exact-head mergeability and checks refresh, preserving stale cleanup for non-live calls while enforcing max duration for live and restored calls.

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

Yes, source-level: current main and v2026.6.6 still reap aged non-terminal calls solely because answeredAt is absent, while live speech paths can reach speaking or listening without setting it. I did not run a live Twilio carrier call in this read-only review.

Is this the best way to solve the issue?

Yes. The PR fixes the owner plugin path directly and is better than disabling the reaper or adding another config knob because it preserves stuck-call cleanup while backfilling max-duration enforcement for live calls.

AGENTS.md: found and applied where relevant.

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

Label changes

Label changes:

  • add proof: sufficient: Contributor real behavior proof is sufficient. The source PR and replacement check include terminal before/after output for the production stale-reaper helper plus focused/full voice-call validation, which is sufficient for this non-visual runtime bug fix.
  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit.
  • remove rating: 🌊 off-meta tidepool: Current PR rating is rating: 🐚 platinum hermit, so this older rating label is no longer current.
  • remove merge-risk: 🚨 availability: Current PR review selected no merge-risk labels.

Label justifications:

  • P1: The PR fixes a linked user-facing voice-call workflow where active Twilio conversations can be terminated mid-call.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit.
  • status: 🚀 automerge armed: This PR is in ClawSweeper's automerge lane. Sufficient (terminal): The source PR and replacement check include terminal before/after output for the production stale-reaper helper plus focused/full voice-call validation, which is sufficient for this non-visual runtime bug fix.
  • proof: sufficient: Contributor real behavior proof is sufficient. The source PR and replacement check include terminal before/after output for the production stale-reaper helper plus focused/full voice-call validation, which is sufficient for this non-visual runtime bug fix.
Evidence reviewed

PR surface:

Source +90, Tests +223. Total +313 across 9 files.

View PR surface stats
Area Files Added Removed Net
Source 5 98 8 +90
Tests 4 224 1 +223
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 9 322 9 +313

What I checked:

Likely related people:

  • JayMishra-source: PR 18437 added the configurable stale call reaper behavior that this PR narrows for live conversation states. (role: introduced behavior; confidence: high; commits: 5db2d83bbfdd, 31d45f2b2d83; files: extensions/voice-call/src/config.ts, extensions/voice-call/src/webhook.ts)
  • steipete: GitHub PR metadata shows this account merged the original stale-reaper PR, and current local history shows Peter Steinberger recently touched the central voice-call files in commit 1d9b9ef. (role: merger and recent area contributor; confidence: medium; commits: 1d9b9ef48f84, 5db2d83bbfdd; files: extensions/voice-call/src/webhook/stale-call-reaper.ts, extensions/voice-call/src/manager/events.ts, extensions/voice-call/src/manager/outbound.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 proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 🚀 automerge armed This PR is in ClawSweeper's automerge lane. P1 High-priority user-facing bug, regression, or broken workflow. labels Jun 6, 2026
@clawsweeper

clawsweeper Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor Author

🦞✅
ClawSweeper merged this PR after the passing review.

Source: clawsweeper[bot]
Feedback: structured ClawSweeper verdict: pass (sha=5fee2ff7a132eec5f777494e2fd71673789dce83)
Merge status: merged by ClawSweeper automerge
Merged at: 2026-06-15T02:39:30Z
Merge commit: ac1042b09b5c

What merged:

  • The PR updates the voice-call plugin to preserve live speaking/listening calls without answeredAt, backfill max-duration enforcement for live/restored call paths, and add regression tests.
  • PR surface: Source +90, Tests +223. Total +313 across 9 files.
  • Reproducibility: yes. source-level: current main and v2026.6.6 still reap aged non-terminal calls solely bec ... kingorlistening` without setting it. I did not run a live Twilio carrier call in this read-only review.

Automerge notes:

  • Ran the ClawSweeper repair loop before final review.
  • Included post-review commit in the final squash: fix(voice-call): preserve live Twilio streams in stale reaper
  • Included post-review commit in the final squash: fix(clawsweeper): address review for automerge-openclaw-openclaw-9062…

The automerge loop is complete.

Automerge progress:

  • 2026-06-06 04:07:24 UTC review requested repair 02bd1b821dbd (structured ClawSweeper marker: fix-required (finding=review-feedback sha=02bd1b...)
  • 2026-06-06 05:05:54 UTC review requested repair bd4861d737af (structured ClawSweeper marker: fix-required (finding=review-feedback sha=bd4861...)
  • 2026-06-06 04:20:25 UTC merge check queued bd4861d737af (checks and exact-head review are ready)
  • 2026-06-06 04:58:09 UTC review queued bd4861d737af (queued)
  • 2026-06-15 01:40:45 UTC review passed 5fee2ff7a132 (structured ClawSweeper verdict: pass (sha=5fee2ff7a132eec5f777494e2fd71673789dc...)
  • 2026-06-15 02:39:33 UTC merged 5fee2ff7a132 (merged by ClawSweeper automerge)

@clawsweeper

clawsweeper Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor Author

🦞👀
ClawSweeper picked this up.

Command router queued. I will update this comment with the next step.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. labels Jun 6, 2026
@clawsweeper
clawsweeper Bot force-pushed the clawsweeper/automerge-openclaw-openclaw-90620 branch from 060f3de to 02bd1b8 Compare June 6, 2026 04:00
@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. labels Jun 6, 2026
clawsweeper Bot added 3 commits June 6, 2026 05:15
Co-authored-by: Sahibzada <[email protected]>

Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
…0 (1)

Co-authored-by: Sahibzada <[email protected]>

Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Sahibzada <[email protected]>

Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
@clawsweeper
clawsweeper Bot force-pushed the clawsweeper/automerge-openclaw-openclaw-90620 branch from bd4861d to 5fee2ff Compare June 6, 2026 05:20
@clawsweeper clawsweeper Bot added rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. clawsweeper:human-review Needs maintainer review before ClawSweeper can continue and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Jun 6, 2026
@clawsweeper

clawsweeper Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor Author

🦞✅
ClawSweeper is pausing this repair loop for human review.

Source: clawsweeper[bot]
Reason: - Review did not complete, so no work-lane recommendation was made. (sha=5fee2ff7a132eec5f777494e2fd71673789dce83)

Why human review is needed:
ClawSweeper found a blocker that should be resolved or accepted by a maintainer before the repair or automerge loop continues.

What the maintainer can do as a next step:
If the maintainer accepts the current risk and wants ClawSweeper to continue merge gates, comment @clawsweeper approve. If more work is needed, resolve the blocker first, then comment @clawsweeper automerge to re-review and continue. If automation should stay paused, leave clawsweeper:human-review in place or comment @clawsweeper stop.

I added clawsweeper:human-review and left the final call with a maintainer.

@sahibzada-allahyar

Copy link
Copy Markdown
Contributor

@Takhoffman hi you approved my high priority PR with a P1 label earlier which made the clawsweeper then open this PR; but it's now asking for human review. Since you previously approved my pr which was basically the same as this could you approve this again? Thank you.

@sahibzada-allahyar

Copy link
Copy Markdown
Contributor

@Takhoffman please could you review once again and check my comment above

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. and removed rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. clawsweeper:human-review Needs maintainer review before ClawSweeper can continue labels Jun 15, 2026
@clawsweeper
clawsweeper Bot merged commit ac1042b into main Jun 15, 2026
191 of 199 checks passed
@clawsweeper
clawsweeper Bot deleted the clawsweeper/automerge-openclaw-openclaw-90620 branch June 15, 2026 02:39
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jun 15, 2026
…aw#90812)

Summary:
- The PR updates the voice-call plugin to preserve live `speaking`/`listening` calls without `answeredAt`, backfill max-duration enforcement for live/restored call paths, and add regression tests.
- PR surface: Source +90, Tests +223. Total +313 across 9 files.
- Reproducibility: yes. source-level: current main and v2026.6.6 still reap aged non-terminal calls solely bec ... king` or `listening` without setting it. I did not run a live Twilio carrier call in this read-only review.

Automerge notes:
- Ran the ClawSweeper repair loop before final review.
- Included post-review commit in the final squash: fix(voice-call): preserve live Twilio streams in stale reaper
- Included post-review commit in the final squash: fix(clawsweeper): address review for automerge-openclaw-openclaw-9062…

Validation:
- ClawSweeper review passed for head 5fee2ff.
- Required merge gates passed before the squash merge.

Prepared head SHA: 5fee2ff
Review: openclaw#90812 (comment)

Co-authored-by: Sahibzada Allahyar <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
wangmiao0668000666 pushed a commit to wangmiao0668000666/openclaw that referenced this pull request Jun 17, 2026
…aw#90812)

Summary:
- The PR updates the voice-call plugin to preserve live `speaking`/`listening` calls without `answeredAt`, backfill max-duration enforcement for live/restored call paths, and add regression tests.
- PR surface: Source +90, Tests +223. Total +313 across 9 files.
- Reproducibility: yes. source-level: current main and v2026.6.6 still reap aged non-terminal calls solely bec ... king` or `listening` without setting it. I did not run a live Twilio carrier call in this read-only review.

Automerge notes:
- Ran the ClawSweeper repair loop before final review.
- Included post-review commit in the final squash: fix(voice-call): preserve live Twilio streams in stale reaper
- Included post-review commit in the final squash: fix(clawsweeper): address review for automerge-openclaw-openclaw-9062…

Validation:
- ClawSweeper review passed for head 5fee2ff.
- Required merge gates passed before the squash merge.

Prepared head SHA: 5fee2ff
Review: openclaw#90812 (comment)

Co-authored-by: Sahibzada Allahyar <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
crh-code pushed a commit to crh-code/openclaw that referenced this pull request Jun 18, 2026
…aw#90812)

Summary:
- The PR updates the voice-call plugin to preserve live `speaking`/`listening` calls without `answeredAt`, backfill max-duration enforcement for live/restored call paths, and add regression tests.
- PR surface: Source +90, Tests +223. Total +313 across 9 files.
- Reproducibility: yes. source-level: current main and v2026.6.6 still reap aged non-terminal calls solely bec ... king` or `listening` without setting it. I did not run a live Twilio carrier call in this read-only review.

Automerge notes:
- Ran the ClawSweeper repair loop before final review.
- Included post-review commit in the final squash: fix(voice-call): preserve live Twilio streams in stale reaper
- Included post-review commit in the final squash: fix(clawsweeper): address review for automerge-openclaw-openclaw-9062…

Validation:
- ClawSweeper review passed for head 5fee2ff.
- Required merge gates passed before the squash merge.

Prepared head SHA: 5fee2ff
Review: openclaw#90812 (comment)

Co-authored-by: Sahibzada Allahyar <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
badgerbees pushed a commit to badgerbees/openclaw that referenced this pull request Jul 8, 2026
…aw#90812)

Summary:
- The PR updates the voice-call plugin to preserve live `speaking`/`listening` calls without `answeredAt`, backfill max-duration enforcement for live/restored call paths, and add regression tests.
- PR surface: Source +90, Tests +223. Total +313 across 9 files.
- Reproducibility: yes. source-level: current main and v2026.6.6 still reap aged non-terminal calls solely bec ... king` or `listening` without setting it. I did not run a live Twilio carrier call in this read-only review.

Automerge notes:
- Ran the ClawSweeper repair loop before final review.
- Included post-review commit in the final squash: fix(voice-call): preserve live Twilio streams in stale reaper
- Included post-review commit in the final squash: fix(clawsweeper): address review for automerge-openclaw-openclaw-9062…

Validation:
- ClawSweeper review passed for head 5fee2ff.
- Required merge gates passed before the squash merge.

Prepared head SHA: 5fee2ff
Review: openclaw#90812 (comment)

Co-authored-by: Sahibzada Allahyar <[email protected]>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel: voice-call Channel integration: voice-call clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge clawsweeper Tracked by ClawSweeper automation P1 High-priority user-facing bug, regression, or broken workflow. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: M status: 🚀 automerge armed This PR is in ClawSweeper's automerge lane.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: voice-call stale reaper ends active Twilio conversation after ~120s

1 participant