Skip to content

fix: show full-pane Unable to load session for inaccessible sessions (AGE-2563) - #1092

Open
govindavashishtha wants to merge 6 commits into
mainfrom
govinda/age-2563-for-inaccessilble-sessions-show-full-page-unable-to-load
Open

govindavashishtha wants to merge 6 commits into
mainfrom
govinda/age-2563-for-inaccessilble-sessions-show-full-page-unable-to-load

Conversation

@govindavashishtha

@govindavashishtha govindavashishtha commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Fixes AGE-2563: inaccessible sessions now keep their URL and show a full-pane Unable to load session EmptyScreen instead of toasting and redirecting.
  • Chat deep links use openInaccessibleSession + Thread gate; sessions browser / shared-session detail uses the same EmptyScreen and no longer closes on failure.
  • Removes the unused reportSessionAccessError toast 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
  • Open /sessions/:id for a session you cannot access — stay on the URL, see full-pane message (no toast)
  • Open a shared-session URL you cannot access — stay on share URL with the same pane
  • In Sessions browser, select an inaccessible session — right pane shows Unable to load session
  • New Chat / another session clears the error and restores normal chat

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.

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-bot

changeset-bot Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9ee6434

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@truefoundry/trueforge-ui Patch

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

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread packages/trueforge-ui/src/server/ShellModeContext.tsx
Comment thread packages/trueforge-ui/src/routing/ShellRouteSync.tsx
… stale load failures

Co-authored-by: Cursor <cursoragent@cursor.com>

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread packages/trueforge-ui/src/routing/ShellRouteSync.tsx Outdated
govindavashishtha and others added 2 commits October 19, 2026 16:10
… 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>

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread packages/trueforge-ui/src/containers/TrueForgeUIShell.tsx
Comment thread packages/trueforge-ui/src/routing/ShellRouteSync.tsx
govindavashishtha and others added 2 commits October 19, 2026 17:38
…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>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ 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);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 9ee6434. Configure here.

...(toaster != null ? { showError: toaster.showError } : {}),
if (requestedSessionRef.current !== sessionId) {
releaseAbandonedBootSession(sessionId);
return;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 9ee6434. Configure here.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants