RocketChat / RocketChat/Rocket.Chat.js.SDK
Coordinate one Scheduled Reopen
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 146
- Forks
- 99
- Avg merge
- 7h 59m
- Merged PRs (30d)
- 17
Description
Parent
#412
What to build
Give unexpected Transport loss one coordinated delayed Reopen. Recovery requests share the existing schedule without postponing it, and each recovery attempt has a clear success or failure outcome.
Acceptance criteria
- Unexpected loss of the currently owned Transport schedules exactly one delayed Reopen.
- Repeated delayed-recovery requests share the existing schedule and do not reset its deadline.
- A scheduled Reopen is consumed before its Connection attempt begins; Scheduled Reopen and active attempt never coexist.
- A failed recovery attempt creates exactly one fresh Scheduled Reopen at the configured fixed delay.
- Successful recovery leaves no pending schedule and retains the established Transport.
- Stale or duplicate Transport callbacks cannot create recovery intent or duplicate timers.
- Recovery lifecycle events occur once per authoritative attempt and joined recovery requests do not multiply them.
- Deterministic timing tests cover scheduling, repeated requests, failure, success, and stale callbacks.
Blocked by
- #413
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read parent issue #412 and blocker #413 first to understand the recovery lifecycle and existing scheduling behavior. Then identify the Transport loss and Connection attempt entry points and add deterministic timing tests for scheduling, repeated requests, failure, success, and stale callbacks. Done means all listed acceptance criteria hold without duplicate schedules or lifecycle events.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100