[Bug]: Embedded browser tabs are not restored after quitting or crashing the app
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/desktop
Steps to reproduce
- Open a project and open one or more embedded browser / web preview tabs in the right panel (for example a dev server at
http://localhost:3000plus a docs page). - Quit the app normally (Cmd+Q), or let it crash / get force-killed.
- Reopen the app and return to the same thread.
Expected behavior
Embedded browser tabs are part of the workspace state and should survive an app restart the same way threads and open files do. On relaunch the previously open browser tabs should be restored (URL, tab order, active tab), or at minimum be recoverable from a "recently open previews" list so nothing has to be retyped.
Ideally this also holds for an unclean exit: state is persisted as tabs change, not only on graceful shutdown, so a crash does not lose it.
Actual behavior
Every embedded browser tab is gone after relaunch. The right panel comes back empty and each preview URL has to be found and reopened by hand. This is the same whether the app is quit cleanly or crashes, so it looks like browser tab state is only held in memory and never written to disk.
The cost scales with how much you had open: multi-service projects with several preview tabs need several manual reopens per restart, and any URL that was reached by navigating (deep links, an authed page, a specific route) has to be navigated to again from scratch.
Impact
Minor bug or occasional failure
Version or commit
0.0.31 (T3 Code Alpha, macOS desktop app)
Environment
macOS 14.6.1 (Sonoma), Apple Silicon, T3 Code Alpha desktop app 0.0.31
Logs or stack traces
n/a, no error is surfaced. Tabs are silently absent on relaunch.
Workaround
Keep preview URLs somewhere outside the app (notes, bookmarks, a README) and reopen them manually after every restart.
Related
- #5117 (pin browser/terminal tabs across chats) is adjacent but scoped to moving between chats within one session, not surviving an app restart. Persisting tab state to disk would likely serve both.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in apps/desktop and trace how embedded browser or web preview tabs are created, associated with a thread, and represented in workspace state. Check how state is saved during tab changes and restored after relaunch, including the unclean-exit case. Done means the URL, tab order, and active tab return after a normal restart and remain recoverable after a crash.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100