fix(tui): pin queued compaction below output (#36738)

This commit is contained in:
Kit Langton 2026-07-13 15:45:27 -04:00 committed by GitHub
commit af8480b2e2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 18 additions and 1 deletions

View file

@ -177,7 +177,9 @@ export function createSessionRows(sessionID: Accessor<string>) {
}
const queuedStart = (rows: SessionRow[]) => {
const index = rows.findIndex((row) => row.type === "message" && isPending(row.messageID))
const index = rows.findIndex(
(row) => row.type === "compaction-queued" || (row.type === "message" && isPending(row.messageID)),
)
return index === -1 ? rows.length : index
}

View file

@ -1202,6 +1202,21 @@ test("restores queued compaction from durable pending input", async () => {
{ type: "compaction-queued", inputID: "message-compaction-later" },
])
emitEvent(events, {
id: "evt_text_ended",
created: 2,
type: "session.text.ended",
durable: durable(sessionID, 5),
data: {
sessionID,
assistantMessageID: "message-assistant",
ordinal: 0,
text: "Active output",
},
})
await wait(() => rows.some((row) => row.type === "part"))
expect(rows.map((row) => row.type)).toEqual(["part", "compaction-queued", "compaction-queued"])
emitEvent(events, {
id: "evt_compaction_started",
created: 2,