Repository navigation
fix: show full-pane Unable to load session for inaccessible sessions (AGE-2563) - #1092
govindavashishtha wants to merge 6 commits into
Conversation
Keep the session URL and replace toast/redirect with EmptyScreen so access failures are visible in the chat and sessions detail panes. Co-authored-by: Cursor <cursoragent@cursor.com>
🦋 Changeset detectedLatest commit: 9ee6434 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 |
… stale load failures Co-authored-by: Cursor <cursoragent@cursor.com>
… is abandoned Skipping a stale getSession failure left shell-to-URL sync waiting on the deep link, so the address bar never moved again. Co-authored-by: Cursor <cursoragent@cursor.com>
…show-full-page-unable-to-load
…oned Prefer the inaccessible deep link over a stale thread id, and release the boot URL wait when a newer session supersedes the load. Co-authored-by: Cursor <cursoragent@cursor.com>
Prior live threads skip openSession, so pendingSessionId stays unset. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 9ee6434. Configure here.
| const sessionId = | ||
| snapshot.sessionAccessError != null | ||
| ? snapshot.pendingSessionId | ||
| : (snapshot.activeRemoteId ?? snapshot.pendingSessionId); |
There was a problem hiding this comment.
Back cannot restore prior session
Medium Severity
Preferring pendingSessionId while sessionAccessError is set keeps the error URL, but applyPlace still treats a stale activeRemoteId as already open. Browser Back or a typed /sessions/:id to that live thread returns without clearing the error, so the pane stays on the inaccessible session even when the URL is the prior one.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 9ee6434. Configure here.
| ...(toaster != null ? { showError: toaster.showError } : {}), | ||
| if (requestedSessionRef.current !== sessionId) { | ||
| releaseAbandonedBootSession(sessionId); | ||
| return; |
There was a problem hiding this comment.
Superseded boot wait navigates home
Medium Severity
Calling releaseAbandonedBootSession when a superseded boot getSession settles unblocks shell→URL before the replacement session is bound. Derived place is still root, so the nonce bump navigates to / and pushes an extra history entry until the in-flight session resolves.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 9ee6434. Configure here.


Summary
EmptyScreeninstead of toasting and redirecting.openInaccessibleSession+ Thread gate; sessions browser / shared-session detail uses the same EmptyScreen and no longer closes on failure.reportSessionAccessErrortoast helper.Test plan
pnpm --filter @truefoundry/trueforge-ui exec vitest run test/routing/ShellRouteSync.test.tsx test/atoms/SessionsPage.test.tsx test/routing/withRouter.integration.test.tsx/sessions/:idfor a session you cannot access — stay on the URL, see full-pane message (no toast)Made with Cursor
Note
Medium Risk
Changes session deep-link boot, shell↔URL sync, and thread runtime binding; behavior is well covered by routing and integration tests but touches core navigation paths.
Reviewed by Cursor Bugbot for commit 9ee6434. Bugbot is set up for automated code reviews on this repo. Configure here.