test(scaffold-server): expect absent lastAssistantMessage for a childless result

The subagent/end edge now encodes 'no output' as an absent field, never
an empty array; the wire projection forwards only present fields.
This commit is contained in:
Hypatia May
2026-08-10 16:29:55 +08:00
parent b2b0f663d5
commit ccbaedc8a8
2 changed files with 4 additions and 2 deletions

View File

@@ -106,6 +106,8 @@ describe.skipIf(!existsSync(jsonrpcBundle))('dsh-jsonrpc BUILT scope carrier', (
})
expect(stderr).not.toContain('listener threw')
// A childless result carries NO lastAssistantMessage on the wire: the end
// edge encodes "no output" as an absent field, never `[]`.
expect(JSON.parse(stdout) as unknown).toEqual([{
method: 'subagent.finished',
params: {
@@ -115,7 +117,6 @@ describe.skipIf(!existsSync(jsonrpcBundle))('dsh-jsonrpc BUILT scope carrier', (
childSessionId: 'built-child',
status: 'ok',
stopReason: 'completed',
lastAssistantMessage: [],
},
}])
})

View File

@@ -736,6 +736,8 @@ describe('HarnessSdkServer', () => {
stopReason: 'error',
})
// A childless result carries NO lastAssistantMessage on the wire: the
// end edge encodes "no output" as an absent field, never `[]`.
expect(transport.notifications).toContainEqual({
method: 'subagent.finished',
params: {
@@ -745,7 +747,6 @@ describe('HarnessSdkServer', () => {
childSessionId: 'fallback-child-session',
status: 'ok',
stopReason: 'max-tokens',
lastAssistantMessage: [],
},
})
expect(transport.notifications).toContainEqual({