test(telegram): keep live polling leases protected#93378
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed June 20, 2026, 3:37 PM ET / 19:37 UTC. Summary PR surface: Source +9. Total +9 across 1 file. Reproducibility: yes. for the PR-introduced regression at source level: current main lets a healthy Telegram poller hold a non-aborted lease indefinitely, so this PR would replace it after five minutes. The original transient-timeout crash loop still needs live or equivalent proof for the exact recovery path. Review metrics: 1 noteworthy metric.
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 guidance:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Preserve active duplicate-poller protection and solve recovery through explicit stopped or aborted lifecycle state, or through the gateway stale-task recovery path, with redacted real Telegram or equivalent runtime proof. Do we have a high-confidence way to reproduce the issue? Yes for the PR-introduced regression at source level: current main lets a healthy Telegram poller hold a non-aborted lease indefinitely, so this PR would replace it after five minutes. The original transient-timeout crash loop still needs live or equivalent proof for the exact recovery path. Is this the best way to solve the issue? No. Lease age is not a safe owner-death signal for a long-running poller; explicit stopped/aborted lifecycle state or gateway-owned stale-task recovery is the safer fix boundary. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 7b9ddbda997a. Label changesLabel justifications:
Evidence reviewedPR surface: Source +9. Total +9 across 1 file. 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
|
94e2c6b to
2c0bddd
Compare
|
Landed via rebase onto main.
Thanks @mmyzwl! |
Summary
Keep Telegram's same-token polling lease protection intact and add regression coverage for the reviewed failure mode.
This no longer claims to fix #93375. The attempted lease-age recovery was removed because a healthy Telegram poller can hold a non-aborted lease for longer than five minutes, so lease age is not a safe owner-death signal.
What changed
Verification
node scripts/run-vitest.mjs extensions/telegram/src/polling-lease.test.ts./node_modules/.bin/oxfmt --check --threads=1 extensions/telegram/src/polling-lease.ts extensions/telegram/src/polling-lease.test.tsnode scripts/run-oxlint.mjs --tsconfig config/tsconfig/oxlint.extensions.json extensions/telegram/src/polling-lease.ts extensions/telegram/src/polling-lease.test.ts.agents/skills/autoreview/scripts/autoreview --mode local --prompt "Scope: PR 93378 maintainer cleanup. Removed unsafe age-based Telegram polling lease replacement, added one focused regression test that old non-aborted same-token leases still reject duplicates. Please review only extensions/telegram/src/polling-lease.ts and polling-lease.test.ts changes."Not fixed
#93375 remains open. The recovery fix should use explicit stopped/aborted lifecycle state or gateway task cleanup, with real Telegram or equivalent runtime proof.