fix(tui): gate background shortcut by capability (#32837)

This commit is contained in:
Aiden Cline 2026-06-18 14:54:26 +02:00 committed by GitHub
commit 2892e97c57
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 148 additions and 20 deletions

View file

@ -65,6 +65,9 @@ export const {
provider_default: Record<string, string>
provider_next: ProviderListResponse
console_state: ConsoleState
capabilities: {
experimentalBackgroundSubagents: boolean
}
provider_auth: Record<string, ProviderAuthMethod[]>
agent: Agent[]
command: Command[]
@ -107,6 +110,9 @@ export const {
connected: [],
},
console_state: emptyConsoleState,
capabilities: {
experimentalBackgroundSubagents: false,
},
provider_auth: {},
config: {},
status: "loading",
@ -434,6 +440,10 @@ export const {
// blocking - include session.list when continuing a session
const providersPromise = sdk.client.config.providers({ workspace }, { throwOnError: true })
const providerListPromise = sdk.client.provider.list({ workspace }, { throwOnError: true })
const capabilitiesPromise = sdk.client.experimental.capabilities
.get({ workspace }, { throwOnError: true })
.then((x) => x.data)
.catch(() => undefined)
const consoleStatePromise = sdk.client.experimental.console
.get({ workspace }, { throwOnError: true })
.then((x) => x.data)
@ -443,6 +453,7 @@ export const {
await Promise.all([
providersPromise,
providerListPromise,
capabilitiesPromise,
agentsPromise,
configPromise,
projectPromise,
@ -451,6 +462,7 @@ export const {
.then(async () => {
const providersResponse = providersPromise.then((x) => x.data!)
const providerListResponse = providerListPromise.then((x) => x.data!)
const capabilitiesResponse = capabilitiesPromise
const consoleStateResponse = consoleStatePromise
const agentsResponse = agentsPromise.then((x) => x.data ?? [])
const configResponse = configPromise.then((x) => x.data!)
@ -459,6 +471,7 @@ export const {
return Promise.all([
providersResponse,
providerListResponse,
capabilitiesResponse,
consoleStateResponse,
agentsResponse,
configResponse,
@ -466,15 +479,21 @@ export const {
]).then((responses) => {
const providers = responses[0]
const providerList = responses[1]
const consoleState = responses[2]
const agents = responses[3]
const config = responses[4]
const sessions = responses[5]
const capabilities = responses[2]
const consoleState = responses[3]
const agents = responses[4]
const config = responses[5]
const sessions = responses[6]
batch(() => {
setStore("provider", reconcile(providers.providers))
setStore("provider_default", reconcile(providers.default))
setStore("provider_next", reconcile(providerList))
setStore(
"capabilities",
"experimentalBackgroundSubagents",
capabilities?.backgroundSubagents === true,
)
setStore("console_state", reconcile(consoleState))
setStore("agent", reconcile(agents))
setStore("config", reconcile(config))