fix(desktop): resolve Bot tiles on their owner

This commit is contained in:
David Dudok de Wit
2026-08-23 11:52:02 +02:00
committed by Teknium
parent 8523819fcf
commit 7ead9b93de
2 changed files with 16 additions and 2 deletions
@@ -0,0 +1,13 @@
import { readFileSync } from 'node:fs'
import { resolve } from 'node:path'
import { describe, expect, it } from 'vitest'
const source = readFileSync(resolve(process.cwd(), 'src/app/chat/session-tile.tsx'), 'utf8')
describe('SessionTilePane owner-scoped listing', () => {
it('resolves a newly active tile on its persisted owner route', () => {
expect(source).toContain('void resolveStoredSession(storedSessionId, ownerRoute)')
expect(source).not.toMatch(/void resolveStoredSession\(storedSessionId\)\s*\n/)
})
})
+3 -2
View File
@@ -256,6 +256,7 @@ function TileChat({
export function SessionTilePane({ storedSessionId }: { storedSessionId: string }) {
const tiles = useStore($sessionTiles)
const tile = tiles.find(t => t.storedSessionId === storedSessionId)
const ownerRoute = tile?.ownerRoute
const runtimeId = tile?.runtimeId ?? null
const gatewayOpen = useStore($gatewayState) === 'open'
const delegateRevision = useStore($sessionTileDelegateRevision)
@@ -287,7 +288,7 @@ export function SessionTilePane({ storedSessionId }: { storedSessionId: string }
return
}
void resolveStoredSession(storedSessionId)
void resolveStoredSession(storedSessionId, ownerRoute)
.then(resolved => {
if (cancelled || resolved || remaining <= 0) {
return
@@ -307,7 +308,7 @@ export function SessionTilePane({ storedSessionId }: { storedSessionId: string }
window.clearTimeout(timer)
}
}
}, [hasMessages, runtimeId, storedSessionId])
}, [hasMessages, ownerRoute, runtimeId, storedSessionId])
// Same gating as the primary's route resume (use-route-resume): never fire
// session.resume before the gateway is OPEN. Persisted tiles mount at boot