You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AgentSessionScanner + AgentSessionImporter (apps/server/src/project/) only ever get invoked from the onboarding WelcomeWizard (apps/web/src/components/onboarding/WelcomeWizard.tsx → apps/web/src/onboarding/projectImport.logic.ts). Once a workspace exists, "Existing workspaces skip this flow" (per docs/user/welcome-wizard.md), and there is no other route, button, or settings action anywhere in the codebase that re-invokes the scanner/importer for a project that's already set up.
In practice this means: any Claude Code / Codex CLI session started after your initial T3 onboarding — or in a directory that wasn't offered as an import candidate the first time — never becomes visible in T3, ever. There's no re-scan, no periodic sync, nothing.
How I found this
Diagnosing a stuck-thread bug (#11681) I ended up cross-referencing ~/.t3/userdata/state.sqlite's projection_threads against the real ~/.claude/projects/**/*.jsonl session files on disk. For one project alone (my home directory, ~/, added as a project on 2026-09-05), I found:
101 separate CLI session transcripts on disk spanning 2026-08-15 → today
0 imported (import:claudeAgent:*-prefixed) threads for that project — the only 12 threads present were started natively inside T3 after 2026-09-05
Real work sitting in those un-imported sessions: an Immich backup setup, a Jellyfin/Tailscale fix, an OpenCLI install, homelab SSH work, and more — none of it visible from T3 at all
I suspect the git-repo bias in the scanner's candidate list (docs/user/welcome-wizard.md: "Directories that are not git repositories sit under 'Other folders'") is part of why a bare home directory like ~/ never surfaces good import candidates even on the first run, compounding the fact that there's no way to go back and re-scan later regardless of project type.
Proposed idea
Expose the existing scanner + importer as an on-demand action in Project Settings — something like "Check for CLI conversations to import", scoped to the current project's workspace_root, reusing the same 30-day-window / 200-message-cap / best-effort semantics the onboarding flow already uses. The hard part (the actual scan + import logic) is already built and working; this would just be wiring an existing, tested capability to a reachable entry point instead of a one-shot onboarding step.
Happy to help test/verify a PR from the maintainers' side if useful, but per CONTRIBUTING.md I'm posting this as an idea rather than opening a PR myself, since it's new capability rather than a fix to broken behavior.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
What's missing
AgentSessionScanner+AgentSessionImporter(apps/server/src/project/) only ever get invoked from the onboardingWelcomeWizard(apps/web/src/components/onboarding/WelcomeWizard.tsx→apps/web/src/onboarding/projectImport.logic.ts). Once a workspace exists, "Existing workspaces skip this flow" (perdocs/user/welcome-wizard.md), and there is no other route, button, or settings action anywhere in the codebase that re-invokes the scanner/importer for a project that's already set up.In practice this means: any Claude Code / Codex CLI session started after your initial T3 onboarding — or in a directory that wasn't offered as an import candidate the first time — never becomes visible in T3, ever. There's no re-scan, no periodic sync, nothing.
How I found this
Diagnosing a stuck-thread bug (#11681) I ended up cross-referencing
~/.t3/userdata/state.sqlite'sprojection_threadsagainst the real~/.claude/projects/**/*.jsonlsession files on disk. For one project alone (my home directory,~/, added as a project on 2026-09-05), I found:import:claudeAgent:*-prefixed) threads for that project — the only 12 threads present were started natively inside T3 after 2026-09-05I suspect the git-repo bias in the scanner's candidate list (
docs/user/welcome-wizard.md: "Directories that are not git repositories sit under 'Other folders'") is part of why a bare home directory like~/never surfaces good import candidates even on the first run, compounding the fact that there's no way to go back and re-scan later regardless of project type.Proposed idea
Expose the existing scanner + importer as an on-demand action in Project Settings — something like "Check for CLI conversations to import", scoped to the current project's
workspace_root, reusing the same 30-day-window / 200-message-cap / best-effort semantics the onboarding flow already uses. The hard part (the actual scan + import logic) is already built and working; this would just be wiring an existing, tested capability to a reachable entry point instead of a one-shot onboarding step.Happy to help test/verify a PR from the maintainers' side if useful, but per CONTRIBUTING.md I'm posting this as an idea rather than opening a PR myself, since it's new capability rather than a fix to broken behavior.
All reactions