7851052634
The "agent still being set up" submit gate was triggering on every session that briefly transitions through STARTING — including local quick-chat, which has no prepare phase and has its agent live within ~100ms. The eager-init quick-chat e2e tests (chat/quick-chat.spec.ts and chat/message-queue.spec.ts) wait for the editor to become editable, then press Cmd+Enter. The race made wrappedSubmit a no-op exactly when the test was firing — message dropped, agent never saw it, downstream assertions failed. Split the merged isStarting flag in useSessionState: keep the broad flag (still used for the workspace-prep loading UI), and expose isPreparingEnvironment as a separate signal that's only true while prepareProgress.status === "preparing". Thread it through chat-input- area → chat-input-container → useChatInputContainer and gate the submit-disabled tooltip on it instead of the broad isStarting. Net: Docker / Sprites bootstrap still surfaces the "agent still being set up" message and disables submit; quick-chat / local sessions stop silently dropping in-flight messages.