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,
|
bootstrapConfirmed: evidence?.bootstrapConfirmed === true,
|
||||||
hardFailure: evidence?.hardFailure === true || launchState === 'failed_to_start',
|
hardFailure: evidence?.hardFailure === true || launchState === 'failed_to_start',
|
||||||
hardFailureReason: evidence?.hardFailureReason,
|
hardFailureReason: evidence?.hardFailureReason,
|
||||||
|
pendingPermissionRequestIds: evidence?.pendingPermissionRequestIds?.length
|
||||||
|
? [...new Set(evidence.pendingPermissionRequestIds)]
|
||||||
|
: undefined,
|
||||||
firstSpawnAcceptedAt: evidence?.agentToolAccepted ? now : undefined,
|
firstSpawnAcceptedAt: evidence?.agentToolAccepted ? now : undefined,
|
||||||
lastHeartbeatAt: evidence?.bootstrapConfirmed ? now : undefined,
|
lastHeartbeatAt: evidence?.bootstrapConfirmed ? now : undefined,
|
||||||
lastRuntimeAliveAt: evidence?.runtimeAlive ? now : undefined,
|
lastRuntimeAliveAt: evidence?.runtimeAlive ? now : undefined,
|
||||||
|
|
|
||||||
|
|
@ -3014,6 +3014,41 @@ describe('TeamProvisioningService', () => {
|
||||||
).rejects.toThrow();
|
).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 () => {
|
it('fails early when the previous tmux pane does not exit before restart', async () => {
|
||||||
vi.useFakeTimers();
|
vi.useFakeTimers();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue