Skip to content

Commit 1303bf1

Browse files
NathanFlurryclaude
andcommitted
chore: update progress for US-054
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent fe00d12 commit 1303bf1

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

progress.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2687,3 +2687,22 @@ PRD: ralph/kernel-hardening (46 stories)
26872687
- v8::StartupData contains *const i8 raw pointer — not Send/Sync. Store snapshot blobs as Arc<Vec<u8>> (via .to_vec()) for cross-thread sharing
26882688
- SnapshotCache holds mutex during snapshot creation (~20ms) — acceptable since it happens once per bridge code variant
26892689
---
2690+
2691+
## 2026-03-19 - US-054
2692+
- Added WarmSnapshot IPC message type (0x09) to both Rust ipc_binary.rs and TypeScript ipc-binary.ts
2693+
- Wire format: [msg_type=0x09][sid_len=0][u32 bridge_code_len][bridge_code bytes] — no session_id (like Authenticate)
2694+
- Updated extract_session_id / extractSessionId to return None/null for WarmSnapshot
2695+
- Added BinaryFrame::WarmSnapshot { bridge_code } variant in Rust and { type: "WarmSnapshot"; bridgeCode: string } in TypeScript
2696+
- 4 new Rust tests: roundtrip, empty bridge code, large bridge code, extract_session_id returns None
2697+
- 5 new TypeScript tests: roundtrip, empty, large, extractSessionId null, wire format byte verification
2698+
- Updated wire_format_message_type_bytes test in both Rust and TypeScript to include 0x09
2699+
- Files changed:
2700+
- crates/v8-runtime/src/ipc_binary.rs — WarmSnapshot variant, encode/decode, extract_session_id, tests
2701+
- packages/secure-exec-v8/src/ipc-binary.ts — WarmSnapshot type, encodeBody, decodeFrame, extractSessionId
2702+
- packages/secure-exec-v8/test/ipc-binary.test.ts — 5 new tests
2703+
- scripts/ralph/prd.json — marked US-054 passes: true
2704+
- **Learnings for future iterations:**
2705+
- Connection-level messages (no session_id) use sid_len=0 in the wire format, same as Authenticate
2706+
- extract_session_id must be updated whenever a new connection-level message type is added
2707+
- WarmSnapshot is fire-and-forget — host sends it and continues without waiting for response
2708+
---

scripts/ralph/prd.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -914,8 +914,8 @@
914914
"Tests pass"
915915
],
916916
"priority": 54,
917-
"passes": false,
918-
"notes": "Spec: docs-internal/specs/v8-startup-snapshot.md. Fire-and-forget message — no response from Rust side."
917+
"passes": true,
918+
"notes": "Spec: docs-internal/specs/v8-startup-snapshot.md. Fire-and-forget message — no response from Rust side. Message type 0x09 with sid_len=0 (like Authenticate). Wire format: [msg_type][sid_len=0][u32 bridge_code_len][bridge_code]. 4 Rust tests + 5 TS tests added."
919919
},
920920
{
921921
"id": "US-055",

0 commit comments

Comments
 (0)