pingdotgg / pingdotgg/t3code

[Bug]: Session import is unreachable after onboarding, so externally started sessions can never be imported

Open
#10,961 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/web

Steps to reproduce

  1. Complete onboarding in the desktop app, importing recent sessions for a project (onboardingCompletedAt is now set).
  2. In a terminal, run claude from that project's workspace root and hold a short conversation.
  3. Return to the desktop app and look for that session: sidebar, search, and the Settled shelf.
  4. Try to import it.

Expected behavior

A session that satisfies every documented eligibility rule should be importable after onboarding, through some reachable action. This is not a request for automatic discovery, which was declined in #7748.

Actual behavior

The session never appears, and there is no way to import it.

The eligibility rules are all satisfied. The transcript is minutes old, well inside the 30 day RECENT_THREAD_WINDOW_MS, and its recorded cwd is exactly the project's workspace root, so directoryIdentity matches. The importer would accept it.

The problem is reachability. agentSessions.import has one caller in the web app, WelcomeWizard.tsx. WelcomeWizard renders only on the /welcome route. The only navigation to /welcome is FirstRunGate.tsx:185, which fires only when the gate decides the user is on a first run, and that decision does not recur once onboardingCompletedAt is set. There is no sidebar entry, settings action, or command palette item for it, so on desktop, where there is no address bar, the import capability becomes unreachable the moment onboarding finishes.

Search does not help, because it only covers threads the app already holds, so an unimported session is absent rather than merely hard to find.

For contrast, /usage is reached from a SidebarChrome control. /welcome has no equivalent.

The effect is that every session started outside the app after onboarding is permanently invisible to it, even one started seconds ago in the right directory. PR #10631 adds an on demand import entry point on the new thread screen and its description notes that import "is currently part of onboarding", so the gap looks known.

Impact

Major degradation or frequent failure

Version or commit

0.0.40 (Homebrew cask), verified against main at 4664c572a

Environment

macOS desktop app. The web client is not affected in the same way, since /welcome can be typed there directly.

Workaround

Start sessions inside the app, or continue outside ones with claude --resume in a terminal. On the web client, navigate to /welcome to re-run the wizard.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the agentSessions.import caller in WelcomeWizard.tsx and the first-run navigation in FirstRunGate.tsx around line 185, then compare the reachable control used for /usage in SidebarChrome. Confirm how the new-thread import entry point in PR #10631 relates to this gap. Done means an eligible externally started session can be imported after onboarding through a reachable desktop action.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
desktop-dev, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.