feat(desktop): let every chat surface float its composer

popoutAllowed was hardcoded false for session tiles, so only the primary
thread could pop out — a tab or a split had no way to undock its composer.
Secondary windows stay docked; that gate was the load-bearing one.
This commit is contained in:
Brooklyn Nicholson 2026-07-28 02:49:51 -05:00
parent 73e3e0860e
commit 25ff775136
2 changed files with 0 additions and 4 deletions

View File

@ -23,8 +23,6 @@ export interface ComposerScope {
/** This scope's "turn parked on user input" edge — gates Esc-to-stop. */
$awaitingInput: ReadableAtom<boolean>
attachments: ComposerAttachmentScope
/** Only the main scope may pop out (the floating composer is a singleton). */
popoutAllowed: boolean
/** This scope's transcript. Read it imperatively (input-history browse) to
* keep streaming out of the composer's renders; subscribe only off-render
* (auto-speak) where the reply edge is the whole point. */
@ -37,7 +35,6 @@ export const MAIN_COMPOSER_SCOPE: ComposerScope = {
$awaitingInput: $activeSessionAwaitingInput,
$messages,
attachments: mainComposerScope,
popoutAllowed: true,
target: 'main'
}

View File

@ -128,7 +128,6 @@ function TileChat({
$awaitingInput: sessionAwaitingInput(runtimeId),
$messages: view.$messages,
attachments,
popoutAllowed: false,
target: `tile:${storedSessionId}`
}),
[attachments, runtimeId, storedSessionId, view.$messages]