Merge pull request #2127 from deepseek-harness/fix/subagent-empty-terminal-message-output

fix(subagent): keep output past an empty terminal message with one selection rule
This commit is contained in:
hypatiamay
2026-08-11 11:19:44 +08:00
committed by GitHub
47 changed files with 530 additions and 100 deletions
@@ -106,6 +106,8 @@ describe.skipIf(!existsSync(jsonrpcBundle))('dsh-jsonrpc BUILT scope carrier', (
})
expect(stderr).not.toContain('listener threw')
// A result without output omits lastAssistantMessage from the wire; it
// never sends `[]`.
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: [],
},
}])
})
@@ -736,6 +736,8 @@ describe('HarnessSdkServer', () => {
stopReason: 'error',
})
// A result without output omits lastAssistantMessage from the wire; it
// never sends `[]`.
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({