Repository navigation
Conversation
🦋 Changeset detectedLatest commit: c7bad48 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Ignore settlements after abort packages/core/src/actors/promise.ts, packages/xstate-react/test/useActorRef.test.tsx, .changeset/silly-eagles-try.md |
Resolution and rejection handlers skip relaying events when the abort signal is set. The regression test covers abort handlers that resolve or reject and checks that the displayed result is current. The changeset records the patch. |
Priority:
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix
Suggested reviewers: davidkpiano
Merge Risk: 
Minimal · up to c7bad
-
Cancelled promise results are ignored while the current invocation can complete. No identified issue prevents merging after normal checks.
Pre-merge checks: 
5
-
Full details: Docstring Coverage
-
Explanation
Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. (1 skipped: 1 unsupported.)
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands.
Add home-based registration and reconnection, isolated room captions and AI context, and confirmation for reset and leaving unsaved work. Keep settings across restarts, store private editing links with 0600 permissions, and reject stale tabs and retired utterance replays. Preserve hidden state on reconnect and start only the configured input. Integrate with main at de2898a. Retain the current AI model selection, contextual correction and inspector controls. Apply the cancellation fix submitted in statelyai/xstate#5823 during locked dependency installation. Validation: bash scripts/check.sh passes (141 frontend tests, 194 backend tests, generated API agreement, type checks and build). A clean npm ci applies the dependency patch and passes its StrictMode regression. Real browser tests use a dedicated local API and synthetic captions for registration, reconnect, reset/cancel, stale saves, restart persistence, and desktop/mobile layouts. The UI review was an independent pass in the same conversation because separate sessions are unavailable. Final disposition: ship. Usage docs and screenshots are updated; the completed temporary implementation plan is removed. No live UD Talk, microphone or LLM connection was used for this change. The upstream fix passes its workspace tests and remote checks. Upstream GitHub permissions prevent assigning its PR to Eotel. No implementation work remains on this isolated branch; integration into the active checkout is separate.
Summary
React Strict Mode can reconnect a promise actor before its aborted invocation settles. That invocation can replace the current result or fail a newly started request.
Evidence
2 failed | 2 passed | 36 skipped.After:
useActorRef.test.tsx:40 passed.2434 passed | 16 skipped | 1 todo.pnpm lint,pnpm format:check, andpnpm typecheckpass.Merge Danger
Door: two-way
Blast Radius: core
Only invocations whose abort signal has fired are ignored. Active promise results retain the existing behavior.
Session: /root
Summary by CodeRabbit