fix: reject invalid history parents on Windows and give questions exclusive composer

This commit is contained in:
Codex committed 2026-10-21 18:39:29 +09:00
1 parent a4e77cacbe
commit 23537aaf28
9 files changed
+218 -18

No files matched your search

+10 -1
View File
@@ -26,7 +26,7 @@ for (const kind of ['question', 'approval', 'plan', 'mcp'] as const) {
running: true
})
assert.equal(result.interaction?.kind, kind)
assert.equal(result.input.visible, kind !== 'approval', 'only actual approval replaces normal input')
assert.equal(result.input.visible, kind !== 'approval' && kind !== 'question', 'active question and approval replace normal input')
assert.equal(result.input.blockedByInteraction, true)
assert.equal(result.input.destination, 'blocked')
assert.equal(result.input.preservesDraft, true, 'takeover never clears the draft')
@@ -75,3 +75,12 @@ const secondLayout = composeComposer({ queueCount: 1, queueRevision: 2 }).layout
assert.notEqual(firstLayout, secondLayout, 'layout key changes when queue height may change')
console.log('input-composition-regression: precedence, takeover, queue preservation, task placement, toolbar and escape rules passed')
for (const kind of ['question', 'approval'] as const) {
for (const status of ['pending', 'responding', 'error', 'answered', 'rejected', 'cancelled'] as const) {
const active = ['pending', 'responding', 'error'].includes(status)
const state = composeComposer({ interaction: { id: kind, kind, status } })
assert.equal(state.input.visible, !active, `${kind}/${status} input exclusivity`)
assert.equal(state.input.mounted, true, 'draft editor always remains mounted')
}
}