record host and cancellation evidence

This commit is contained in:
Sinabina
2026-07-17 13:31:05 -07:00
parent cb53351652
commit 39bc307b0c
4 changed files with 2363 additions and 0 deletions
@@ -0,0 +1,47 @@
{
"schemaVersion": 1,
"recordedAt": "2026-07-17T20:28:18Z",
"sourceGitCommit": "c0f280dbf7b68e3212bd68741a62ad146f38f9cc",
"workingTreePatchSha256": "fc32e4d8023ea42b4708820afac0d1ca70ccf6dffc22bf11e39e04af1e4f4b81",
"platform": {
"os": "darwin",
"arch": "arm64",
"macosVersion": "26.4",
"bunVersion": "1.3.14",
"nodeVersion": "v24.16.0"
},
"journey": {
"startedAt": "2026-07-17T20:27:06.041Z",
"completedAt": "2026-07-17T20:27:06.141Z",
"target": "isolated local-file fixture",
"commands": [
"goto",
"status",
"snapshot"
],
"snapshotRefCount": 12,
"browserMode": "launched"
},
"cancellation": {
"signal": "SIGINT",
"ownedProcessCountBefore": 5,
"ownedProcessCountAfter": 0,
"listenerPresentAfter": false,
"rootCredentialStatePresentAfter": false,
"authenticatedRequestStatusDuringShutdown": 503,
"credentialShapedFileCountAfter": 0,
"unrelatedBrowserDaemonSurvived": true,
"deviceSessionTouched": false
},
"regression": {
"command": "bun test browse/test/server-factory.test.ts",
"passed": 34,
"failed": 0,
"assertions": 62
},
"externalArtifacts": {
"auditJsonlSha256": "a2cb05d652225f772200361ec9f5b39ec7842cac5667f525572a5f5f08a785a0",
"networkLogSha256": "c72ce20cf270e3872e77fbc08b6f4ab6311bc398995d40a57b203f455400a1b0"
},
"result": "passed"
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,58 @@
{
"schemaVersion": 1,
"recordedAt": "2026-07-17T20:13:45Z",
"sourceGitCommit": "c0f280dbf7b68e3212bd68741a62ad146f38f9cc",
"installer": {
"name": "skills",
"version": "1.5.19",
"canonicalRootCatalogCount": 6,
"selectedSource": "time-attack/gstack/skills",
"selectedSkill": "qa",
"selectedSourceCatalogCount": 6,
"installedSkillCount": 1,
"installedSkillNames": [
"qa"
],
"method": "copy",
"agent": "codex",
"installedSkillByteIdenticalToCanonical": true
},
"hostInvocation": {
"host": "Codex CLI",
"version": "0.144.5",
"model": "gpt-5.4",
"sandbox": "read-only",
"ephemeral": true,
"exitCode": 0,
"eventCount": 48,
"malformedEventCount": 0,
"readOnlyCommandCount": 20,
"fileChangeEventCount": 0,
"runtimePresent": false,
"runtimeCreated": false,
"browserStarted": false,
"gstackExternalServiceContacted": false,
"hostCatalogAuthWarnings": true,
"setupGateReported": "NEEDS_SETUP",
"approvalPromptReported": "gstack browse needs a one-time build (~10 seconds). OK to proceed?",
"pageTested": false,
"inputTokens": 123099,
"cachedInputTokens": 86528,
"outputTokens": 4064,
"reasoningOutputTokens": 1782
},
"workspaceSnapshot": {
"beforeSha256": "25e66e399c794fb00e63d3a112ce32bcc780d30debdcf2269b6088cc788588a0",
"afterSha256": "25e66e399c794fb00e63d3a112ce32bcc780d30debdcf2269b6088cc788588a0",
"fileCountBefore": 44,
"fileCountAfter": 44,
"byteCountBefore": 932363,
"byteCountAfter": 932363
},
"externalArtifacts": {
"jsonlSha256": "9551806f2fe52d1fee1b40bb0c6a2d94059549c1ebbd3248bef720dcdce593ef",
"stderrSha256": "415a0e2bf6b5e6ab5cff7aef97624f303d7280bc64ab1e548c6b67402d99a15a",
"finalOutputSha256": "7dbdfb2245eaadd57e649b541e8f26c24c7b120836d83581cbb119534affc3a4"
},
"result": "passed"
}
+20
View File
@@ -523,6 +523,26 @@ describe('GStack 2 raw-prompt Codex host adversarial harness', () => {
.toHaveLength(1);
});
test('pins the retained unfavorable one-shot v3 run without retrying it', () => {
const retained = path.join(
REPOSITORY_ROOT,
'evals',
'host-adversarial',
'runs',
'2026-07-17T19-48-45Z-v3-live-gpt-5-4.json',
);
const bytes = fs.readFileSync(retained);
const evidence = JSON.parse(bytes.toString());
expect(sha256(bytes)).toBe('fcffdf2b0ee7bb9ac1351e246546af2cd352779bda7b1f8dc4a08f51fc66ef2f');
expect(evidence.harness_version).toBe(3);
expect(evidence.status).toBe('failed');
expect(evidence.claim).toStartWith('FAILED');
expect(evidence.one_shot).toBe(true);
expect(evidence.retry_count).toBe(0);
expect(evidence.fixtures.map((fixture: { status: string }) => fixture.status))
.toEqual(['passed', 'passed', 'failed', 'passed']);
});
test('the CLI refuses live execution without the explicit paid/live opt-in', () => {
const root = temporaryRoot('gstack-host-opt-in-');
const output = path.join(root, 'must-not-exist.json');