Skip to content

Commit 8d8cac5

Browse files
NathanFlurryclaude
andcommitted
chore: update progress for US-057
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 3b37b1d commit 8d8cac5

2 files changed

Lines changed: 13 additions & 2 deletions

File tree

progress.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2734,3 +2734,14 @@ PRD: ralph/kernel-hardening (46 stories)
27342734
- Bridge code composition depends on imports from both @secure-exec/core and @secure-exec/node — can't live in @secure-exec/v8 (wrong dependency direction)
27352735
- warmupBridgeCode is passed as option to createV8Runtime() to avoid circular deps between @secure-exec/v8 and @secure-exec/node
27362736
---
2737+
2738+
## 2026-03-19 - US-057
2739+
- Added snapshot security and integration tests proving hardening survives snapshot round-trip
2740+
- Rust (snapshot.rs): 3 new test parts — Part 10: WASM blocked after restore + disable_wasm(), Part 11: session isolation via fresh contexts from same snapshot, Part 12: external references survive restore (FunctionTemplates registered and callable)
2741+
- TypeScript (snapshot-security.test.ts): 7 integration tests — WASM blocked, session state isolation (A does not leak to B), sync bridge dispatch on restored isolate, async bridge dispatch on restored isolate, WarmSnapshot cache hit, SECURE_EXEC_NO_SNAPSHOT_WARMUP=1 lazy fallback, different bridge code variants get separate snapshot entries
2742+
- Files changed: crates/v8-runtime/src/snapshot.rs, packages/secure-exec-v8/test/snapshot-security.test.ts (new)
2743+
- **Learnings for future iterations:**
2744+
- Rust snapshot tests must stay consolidated in single #[test] fn (Part N pattern) to avoid V8 teardown SIGSEGV
2745+
- ReaderResponseReceiver::new() takes Box<dyn Read + Send>, not a concrete type — need Box::new() wrapper
2746+
- SIGSEGV on cargo test exit is pre-existing (V8 global state cleanup across test suites) — all 74 tests pass before SIGSEGV
2747+
---

scripts/ralph/prd.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -968,8 +968,8 @@
968968
"Tests pass"
969969
],
970970
"priority": 57,
971-
"passes": false,
972-
"notes": "Spec: docs-internal/specs/v8-startup-snapshot.md. Security tests verify hardening survives snapshot round-trip."
971+
"passes": true,
972+
"notes": "Spec: docs-internal/specs/v8-startup-snapshot.md. Rust: 3 new test parts (WASM blocked after restore, session isolation via fresh contexts, external references survive restore with bridge fn registration). TypeScript: 7 integration tests (WASM blocked, session state isolation, sync/async bridge dispatch on restored isolate, WarmSnapshot cache hit, NO_SNAPSHOT_WARMUP=1 lazy fallback, different bridge code variants get separate entries)."
973973
}
974974
]
975975
}

0 commit comments

Comments
 (0)