fix(team): preserve opencode member diagnostics

This commit is contained in:
777genius 2026-04-23 02:08:56 +03:00
parent 3f8276147e
commit 55021880e0
3 changed files with 13 additions and 1 deletions

View file

@ -64,6 +64,7 @@ export interface OpenCodeTeamMemberLaunchCommandData {
sessionId: string;
launchState: OpenCodeTeamMemberLaunchBridgeState;
pendingPermissionRequestIds?: string[];
diagnostics?: string[];
model: string;
runtimePid?: number;
evidence: Array<{ kind: string; observedAt: string }>;

View file

@ -393,6 +393,7 @@ function mapOpenCodeLaunchDataToRuntimeResult(
: [
`OpenCode bridge response did not include ${member.name}; keeping the member pending until lane state materializes.`,
]),
...(bridgeMember?.diagnostics ?? []),
...(bridgeMember?.evidence ?? []).map(
(evidence) => `${evidence.kind} at ${evidence.observedAt}`
),

View file

@ -252,6 +252,7 @@ describe('OpenCodeTeamRuntimeAdapter', () => {
sessionId: 'oc-session-1',
launchState: 'permission_blocked',
pendingPermissionRequestIds: ['perm-1', 'perm-1', 'perm-2'],
diagnostics: ['waiting for permission approval'],
runtimePid: 123,
model: 'openai/gpt-5.4-mini',
evidence: [
@ -278,7 +279,9 @@ describe('OpenCodeTeamRuntimeAdapter', () => {
{ launchMode: 'dogfood' }
);
await expect(adapter.launch(launchInput())).resolves.toMatchObject({
const result = await adapter.launch(launchInput());
expect(result).toMatchObject({
teamLaunchState: 'partial_pending',
members: {
alice: {
@ -292,6 +295,13 @@ describe('OpenCodeTeamRuntimeAdapter', () => {
},
},
});
expect(result).toMatchObject({
members: {
alice: {
diagnostics: expect.arrayContaining(['waiting for permission approval']),
},
},
});
});
});