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
Flip from project-first to chat-first (bud-exact). A prompt creates a
project-less chat (/chats/{id}; v2_threads.project_id nullable +
launch_intent); the project is created lazily and atomically on the first
run (SELECT ... FOR UPDATE) and named from a prompt slug. Single
POST /v1/threads creation path + createChat() client. Removed
bootstrapProjectThread / createProjectThread / private createProject and
the /projects ?thread= workspace mode; deleted dead thread-header.tsx;
"New chat" naming throughout (no more "Untitled").
DB:
- 0009: v2_threads.project_id DROP NOT NULL + launch_intent jsonb
- startRunWithLazyProject (atomic create+attach+sandbox+run) + shared
active-project limit; full nullable-thread audit (projects/runs/search)
Web:
- app/(app)/chats/[chatId] route; ProjectsShell keyed by threadId with
refetch-after-attach (Computer panel appears once the project attaches)
- home-composer: authed -> createChat + /chats/{id}; unauthed -> in-place
AuthModal preserving the prompt handoff
- sidebar / command-palette / nav -> /chats; active-chat via pathname
- wired the dead ChatContextRow "New chat in {project}" button
Plus accumulated bud-parity workspace work (preview/Computer panel,
replay, settings, greeting) verified but previously uncommitted.
Verified end-to-end live on local + real Daytona.
0 commit comments