fix(agent-loop): route next-step input during admission
This commit is contained in:
@@ -2907,10 +2907,8 @@ export function createTuiChat(
|
||||
agent.followup({ content, source: { kind: 'user' } })
|
||||
return
|
||||
}
|
||||
// Idle: the snapshot rides the prompt's own admission transaction
|
||||
// (PromptDecision.additionalContexts), so a blocking hook discards the
|
||||
// prompt and its attached context together instead of stranding the
|
||||
// snapshot in history for the next unrelated prompt.
|
||||
// Idle: the snapshot rides the prompt's admission transaction so a
|
||||
// blocking hook discards both together.
|
||||
let cleanedUp = false
|
||||
const cleanup = (): void => {
|
||||
// Each trigger detaches both listeners, so a second call needs a
|
||||
|
||||
@@ -1384,7 +1384,7 @@ describe('pi-tui chat lifecycle and transcript', () => {
|
||||
// A steering queue for a different agent never touches this status line.
|
||||
const other = { ...result.agent, id: SessionId('other') } as unknown as Agent
|
||||
result.terminal.output = ''
|
||||
result.ctx.emit('agent/inbox/enqueue', other, { id: AgentMessageId('stub'), content: [{ type: 'text', text: 'elsewhere' }], source: { kind: 'user' } })
|
||||
result.ctx.emit('agent/inbox/enqueue', other, { id: AgentMessageId('stub'), content: [{ type: 'text', text: 'elsewhere' }], source: { kind: 'user' } }, 'queued')
|
||||
await tick()
|
||||
expect(result.terminal.output).not.toContain('queued')
|
||||
|
||||
@@ -1474,7 +1474,7 @@ describe('pi-tui chat lifecycle and transcript', () => {
|
||||
// A live event before the turn runs has no status controller to move.
|
||||
const idle = await setup()
|
||||
// Inbox notifications do not affect the status phase while idle.
|
||||
idle.ctx.emit('agent/inbox/enqueue', idle.agent, { id: AgentMessageId('stub'), content: [{ type: 'text', text: 'early' }], source: { kind: 'user' } })
|
||||
idle.ctx.emit('agent/inbox/enqueue', idle.agent, { id: AgentMessageId('stub'), content: [{ type: 'text', text: 'early' }], source: { kind: 'user' } }, 'queued')
|
||||
idle.session.append('tool/call', { turn: 1, step: 0, callId: 'pre' as never, name: 'bash', arguments: '{}' })
|
||||
await tick()
|
||||
expect(idle.terminal.output).not.toContain('Executing tools')
|
||||
|
||||
Reference in New Issue
Block a user