Verify Plutonium revisions during provisioning

This commit is contained in:
2026-09-28 14:50:06 -04:00
parent 3fb59cd598
commit a4a5298408
19 changed files with 414 additions and 43 deletions
+16
View File
@@ -54,6 +54,22 @@ describe('provisioning evidence persistence', () => {
expect(handle.prepare("SELECT message FROM server_deployment_events WHERE kind = 'command'").get()).toEqual({ message: 'Reply was lost' });
});
it('preserves Plutonium release and runtime evidence when later progress is recorded', async () => {
const { recordProgress, read } = await setup();
recordProgress('operation', { phase: 'verify-plutonium',
checks: [
{ key: 'plutonium-release', label: 'Production Plutonium release', result: 'pass', source: 'manifest', actual: 5200 },
{ key: 'plutonium-version', label: 'Running Plutonium revision', result: 'pass', source: 'rcon', expected: 5200, actual: 5200 }
], checkpoint: { key: 'verify-plutonium', label: 'Plutonium revision verified' } });
vi.setSystemTime(Date.now() + 15_000);
recordProgress('operation', { blocker: null });
expect(read()).toMatchObject({ phase: 'verify-plutonium', phaseStartedAt: '2026-09-28T12:00:00.000Z',
checks: [
{ key: 'plutonium-release', result: 'pass', source: 'manifest', actual: 5200 },
{ key: 'plutonium-version', result: 'pass', source: 'rcon', expected: 5200, actual: 5200 }
], checkpoints: [{ key: 'verify-plutonium', phase: 'verify-plutonium' }] });
});
it('keeps operation-owned recovery evidence after slot/server removal and does not rewrite the failed outcome', async () => {
const { handle, recordProgress, read } = await setup();
handle.prepare("UPDATE server_deployments SET state = 'failed', finished_at = '2026-09-28T12:00:00Z' WHERE id = 'operation'").run();