fix(team): preserve pure opencode permission state
This commit is contained in:
parent
a123b2e247
commit
65fa117626
2 changed files with 38 additions and 0 deletions
|
|
@ -9333,6 +9333,9 @@ export class TeamProvisioningService {
|
|||
bootstrapConfirmed: evidence?.bootstrapConfirmed === true,
|
||||
hardFailure: evidence?.hardFailure === true || launchState === 'failed_to_start',
|
||||
hardFailureReason: evidence?.hardFailureReason,
|
||||
pendingPermissionRequestIds: evidence?.pendingPermissionRequestIds?.length
|
||||
? [...new Set(evidence.pendingPermissionRequestIds)]
|
||||
: undefined,
|
||||
firstSpawnAcceptedAt: evidence?.agentToolAccepted ? now : undefined,
|
||||
lastHeartbeatAt: evidence?.bootstrapConfirmed ? now : undefined,
|
||||
lastRuntimeAliveAt: evidence?.runtimeAlive ? now : undefined,
|
||||
|
|
|
|||
|
|
@ -3014,6 +3014,41 @@ describe('TeamProvisioningService', () => {
|
|||
).rejects.toThrow();
|
||||
});
|
||||
|
||||
it('preserves pending permission request ids for pure OpenCode launch-state members', () => {
|
||||
const svc = new TeamProvisioningService();
|
||||
|
||||
const member = (svc as any).toOpenCodePersistedLaunchMember(
|
||||
{
|
||||
name: 'alice',
|
||||
providerId: 'opencode',
|
||||
model: 'minimax-m2.5-free',
|
||||
effort: 'medium',
|
||||
},
|
||||
{
|
||||
launchState: 'runtime_pending_permission',
|
||||
agentToolAccepted: true,
|
||||
runtimeAlive: true,
|
||||
bootstrapConfirmed: false,
|
||||
hardFailure: false,
|
||||
hardFailureReason: undefined,
|
||||
pendingPermissionRequestIds: [
|
||||
'opencode:run-1:perm-1',
|
||||
'opencode:run-1:perm-1',
|
||||
'opencode:run-1:perm-2',
|
||||
],
|
||||
diagnostics: ['waiting for permission approval'],
|
||||
}
|
||||
);
|
||||
|
||||
expect(member).toMatchObject({
|
||||
name: 'alice',
|
||||
providerId: 'opencode',
|
||||
launchState: 'runtime_pending_permission',
|
||||
pendingPermissionRequestIds: ['opencode:run-1:perm-1', 'opencode:run-1:perm-2'],
|
||||
diagnostics: ['waiting for permission approval'],
|
||||
});
|
||||
});
|
||||
|
||||
it('fails early when the previous tmux pane does not exit before restart', async () => {
|
||||
vi.useFakeTimers();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue