Skip to content

fix(web): prevent startup project switches while typing - #152

Merged
incognitojam merged 2 commits into
mainfrom
t3code/preserve-composer-draft-on-project-switch
Aug 15, 2026
Merged

incognitojam merged 2 commits into
mainfrom
t3code/preserve-composer-draft-on-project-switch

Conversation

@incognitojam

Copy link
Copy Markdown
Owner

The web client could start restoring the most recent project from cached thread shells while the server was still resolving its launch-directory bootstrap project. If those automatic navigations overlapped, a late bootstrap route could switch projects after the composer became editable, leaving the user's text behind as a draft in the first project.

Coordinate index-draft and server-bootstrap navigation through a one-shot in-memory owner. A bootstrap target that is already known can open normally, but a late bootstrap welcome cannot interrupt another launch navigation. Bootstrap targets are marked handled per environment and thread so later visits to Home continue to open a normal draft.

Verification:

  • vp test run apps/web/src/launchNavigationStore.test.ts
  • vp run typecheck in apps/web
  • targeted formatter check

Browser evidence was not captured because this is launch-timing behavior and computer-use permission was not requested.


Written by an agent (T3 Code, gpt-5.6-sol).

@incognitojam
incognitojam merged commit 7853381 into main Aug 15, 2026
8 of 9 checks passed
@incognitojam
incognitojam deleted the t3code/preserve-composer-draft-on-project-switch branch August 15, 2026 22:52
yngatech-nightly Bot pushed a commit that referenced this pull request Aug 18, 2026
The web client could start restoring the most recent project from cached
thread shells while the server was still resolving its launch-directory
bootstrap project. If those automatic navigations overlapped, a late
bootstrap route could switch projects after the composer became
editable, leaving the user's text behind as a draft in the first
project.

Coordinate index-draft and server-bootstrap navigation through a
one-shot in-memory owner. A bootstrap target that is already known can
open normally, but a late bootstrap welcome cannot interrupt another
launch navigation. Bootstrap targets are marked handled per environment
and thread so later visits to Home continue to open a normal draft.

Verification:
- `vp test run apps/web/src/launchNavigationStore.test.ts`
- `vp run typecheck` in `apps/web`
- targeted formatter check

Browser evidence was not captured because this is launch-timing behavior
and computer-use permission was not requested.

---
Written by an agent (T3 Code, gpt-5.6-sol).
yngatech-nightly Bot pushed a commit that referenced this pull request Aug 18, 2026
The web client could start restoring the most recent project from cached
thread shells while the server was still resolving its launch-directory
bootstrap project. If those automatic navigations overlapped, a late
bootstrap route could switch projects after the composer became
editable, leaving the user's text behind as a draft in the first
project.

Coordinate index-draft and server-bootstrap navigation through a
one-shot in-memory owner. A bootstrap target that is already known can
open normally, but a late bootstrap welcome cannot interrupt another
launch navigation. Bootstrap targets are marked handled per environment
and thread so later visits to Home continue to open a normal draft.

Verification:
- `vp test run apps/web/src/launchNavigationStore.test.ts`
- `vp run typecheck` in `apps/web`
- targeted formatter check

Browser evidence was not captured because this is launch-timing behavior
and computer-use permission was not requested.

---
Written by an agent (T3 Code, gpt-5.6-sol).
yngatech-nightly Bot pushed a commit that referenced this pull request Aug 18, 2026
The web client could start restoring the most recent project from cached
thread shells while the server was still resolving its launch-directory
bootstrap project. If those automatic navigations overlapped, a late
bootstrap route could switch projects after the composer became
editable, leaving the user's text behind as a draft in the first
project.

Coordinate index-draft and server-bootstrap navigation through a
one-shot in-memory owner. A bootstrap target that is already known can
open normally, but a late bootstrap welcome cannot interrupt another
launch navigation. Bootstrap targets are marked handled per environment
and thread so later visits to Home continue to open a normal draft.

Verification:
- `vp test run apps/web/src/launchNavigationStore.test.ts`
- `vp run typecheck` in `apps/web`
- targeted formatter check

Browser evidence was not captured because this is launch-timing behavior
and computer-use permission was not requested.

---
Written by an agent (T3 Code, gpt-5.6-sol).
incognitojam added a commit that referenced this pull request Aug 19, 2026
The web client could start restoring the most recent project from cached
thread shells while the server was still resolving its launch-directory
bootstrap project. If those automatic navigations overlapped, a late
bootstrap route could switch projects after the composer became
editable, leaving the user's text behind as a draft in the first
project.

Coordinate index-draft and server-bootstrap navigation through a
one-shot in-memory owner. A bootstrap target that is already known can
open normally, but a late bootstrap welcome cannot interrupt another
launch navigation. Bootstrap targets are marked handled per environment
and thread so later visits to Home continue to open a normal draft.

Verification:
- `vp test run apps/web/src/launchNavigationStore.test.ts`
- `vp run typecheck` in `apps/web`
- targeted formatter check

Browser evidence was not captured because this is launch-timing behavior
and computer-use permission was not requested.

---
Written by an agent (T3 Code, gpt-5.6-sol).
yngatech-nightly Bot pushed a commit that referenced this pull request Aug 20, 2026
The web client could start restoring the most recent project from cached
thread shells while the server was still resolving its launch-directory
bootstrap project. If those automatic navigations overlapped, a late
bootstrap route could switch projects after the composer became
editable, leaving the user's text behind as a draft in the first
project.

Coordinate index-draft and server-bootstrap navigation through a
one-shot in-memory owner. A bootstrap target that is already known can
open normally, but a late bootstrap welcome cannot interrupt another
launch navigation. Bootstrap targets are marked handled per environment
and thread so later visits to Home continue to open a normal draft.

Verification:
- `vp test run apps/web/src/launchNavigationStore.test.ts`
- `vp run typecheck` in `apps/web`
- targeted formatter check

Browser evidence was not captured because this is launch-timing behavior
and computer-use permission was not requested.

---
Written by an agent (T3 Code, gpt-5.6-sol).
yngatech-nightly Bot pushed a commit that referenced this pull request Aug 21, 2026
The web client could start restoring the most recent project from cached
thread shells while the server was still resolving its launch-directory
bootstrap project. If those automatic navigations overlapped, a late
bootstrap route could switch projects after the composer became
editable, leaving the user's text behind as a draft in the first
project.

Coordinate index-draft and server-bootstrap navigation through a
one-shot in-memory owner. A bootstrap target that is already known can
open normally, but a late bootstrap welcome cannot interrupt another
launch navigation. Bootstrap targets are marked handled per environment
and thread so later visits to Home continue to open a normal draft.

Verification:
- `vp test run apps/web/src/launchNavigationStore.test.ts`
- `vp run typecheck` in `apps/web`
- targeted formatter check

Browser evidence was not captured because this is launch-timing behavior
and computer-use permission was not requested.

---
Written by an agent (T3 Code, gpt-5.6-sol).
incognitojam added a commit that referenced this pull request Aug 27, 2026
The web client could start restoring the most recent project from cached
thread shells while the server was still resolving its launch-directory
bootstrap project. If those automatic navigations overlapped, a late
bootstrap route could switch projects after the composer became
editable, leaving the user's text behind as a draft in the first
project.

Coordinate index-draft and server-bootstrap navigation through a
one-shot in-memory owner. A bootstrap target that is already known can
open normally, but a late bootstrap welcome cannot interrupt another
launch navigation. Bootstrap targets are marked handled per environment
and thread so later visits to Home continue to open a normal draft.

Verification:
- `vp test run apps/web/src/launchNavigationStore.test.ts`
- `vp run typecheck` in `apps/web`
- targeted formatter check

Browser evidence was not captured because this is launch-timing behavior
and computer-use permission was not requested.

---
Written by an agent (T3 Code, gpt-5.6-sol).
incognitojam added a commit that referenced this pull request Aug 28, 2026
The web client could start restoring the most recent project from cached
thread shells while the server was still resolving its launch-directory
bootstrap project. If those automatic navigations overlapped, a late
bootstrap route could switch projects after the composer became
editable, leaving the user's text behind as a draft in the first
project.

Coordinate index-draft and server-bootstrap navigation through a
one-shot in-memory owner. A bootstrap target that is already known can
open normally, but a late bootstrap welcome cannot interrupt another
launch navigation. Bootstrap targets are marked handled per environment
and thread so later visits to Home continue to open a normal draft.

Verification:
- `vp test run apps/web/src/launchNavigationStore.test.ts`
- `vp run typecheck` in `apps/web`
- targeted formatter check

Browser evidence was not captured because this is launch-timing behavior
and computer-use permission was not requested.

---
Written by an agent (T3 Code, gpt-5.6-sol).
incognitojam pushed a commit that referenced this pull request Oct 23, 2026
…gdotgg#15864)

Co-authored-by: PR Batch Tester <[email protected]>
Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

Fork adaptation: The home page keeps the fork's launch navigation claim (fork #152): upstream's removed-project check runs before the claim, so returning early never leaves it held, and the fork's release of the claim already re-runs the effect after a null result, so upstream's extra retry counter is not needed.

(cherry picked from commit 11fd54f)
Upstream-PR: 15864
Fork-Feature: startup-navigation-continuity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant