-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathPROGRESS.json
More file actions
86 lines (86 loc) · 3.7 KB
/
PROGRESS.json
File metadata and controls
86 lines (86 loc) · 3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
{
"wave": "Wave 5.1: Validation Sprint",
"started": "2026-03-18",
"updatedAt": "2026-03-18",
"status": "complete",
"items": [
{
"id": "W5.1-T01",
"name": "IPC Round-Trip and Worker Lifecycle Integration Tests",
"status": "completed",
"files": ["src/test-fixtures/mock-worker.ts", "src/ipc-integration.test.ts"],
"validation": [
"Integration test: spawn real worker (fork), send init + message IPC, verify frames arrive and result resolves ✓",
"Integration test: SIGKILL mid-query — promise rejects (not hangs), mutex releases ✓",
"Integration test: worker exits code 0 after shutdown during query — promise resolves with result ✓",
"Integration test: worker exits non-zero — promise rejects ✓",
"Integration test: worker sends frame with type: 'evil_payload' — parent rejects, does NOT relay ✓",
"Integration test: worker sends valid frame types (token, tool_use_start, status) — all relay correctly ✓",
"Integration test: re-subscribe on same WS — previous worker killed before new one spawns ✓",
"Verify settled flag prevents double-resolve/double-reject ✓",
"All integration tests pass 5 consecutive runs without flakiness ✓"
]
},
{
"id": "W5.1-T02",
"name": "Mutex Queue Correctness Under Contention",
"status": "completed",
"files": ["src/session-worker.test.ts"],
"validation": [
"Stress test: 10+ concurrent acquires on same key — strict FIFO execution order ✓",
"Stress test: 5 keys × 3 acquires — cross-key concurrency verified ✓",
"Release while waiters queued — exactly one waiter wakes (not all) ✓",
"Double-release is no-op — mutex state clean ✓",
"Acquire-release-acquire cycle — no stale queue entries ✓",
"Existing mutex tests continue to pass ✓"
]
},
{
"id": "W5.1-T03",
"name": "Security Hardening Fixes Validation",
"status": "completed",
"files": ["src/session-worker.test.ts"],
"validation": [
"execArgv: --inspect stripped, --import=tsx preserved ✓",
"execArgv: --inspect-brk and --debug stripped ✓",
"Rate limit keyGenerator produces 64-char hex from bearer token ✓",
"Roster broadcast on config change filtered per user access ✓",
"Manual reload roster filtered per user access ✓",
"connectedClients stores tokenHash, not raw token ✓"
]
},
{
"id": "W5.1-T04",
"name": "Worker Behavior Validation",
"status": "completed",
"files": ["src/session-worker.test.ts", "src/ipc-integration.test.ts"],
"validation": [
"handleMessage calls buildSystemPrompt() with current time ✓",
"handleMessage reuses cached manifest from init ✓",
"Fork with tsx execArgv imports TS modules successfully ✓",
"Shutdown during query: result sent, exits within 5s ✓",
"Shutdown with no query: immediate exit ✓"
]
},
{
"id": "W5.1-T05",
"name": "Worker Environment Isolation",
"status": "completed",
"files": ["src/session-worker.test.ts"],
"validation": [
"Worker env contains only safe vars + ANTHROPIC_API_KEY + WORKER_* ✓",
"Parent DATABASE_URL does NOT appear in worker env ✓",
"ANTHROPIC_API_KEY passes through correctly ✓",
"Missing ANTHROPIC_API_KEY omitted (no empty string) ✓",
"Agent-specific env vars from loadAgentEnv appear via buildShellEnv ✓"
]
}
],
"testResults": {
"total": 332,
"pass": 332,
"fail": 0,
"skip": 0,
"flakiness": "0/5 runs — all 117 Wave 5.1 tests pass consistently"
}
}