Skip to content

Commit 0453db0

Browse files
committed
chore: update progress for US-107
1 parent e14d21c commit 0453db0

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

scripts/ralph/prd.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2089,7 +2089,7 @@
20892089
"Tests pass"
20902090
],
20912091
"priority": 124,
2092-
"passes": false,
2092+
"passes": true,
20932093
"notes": "Audit H3 (partial gap). US-117 handles cleanup on disposal but does not cap concurrent active timers. Sandbox code can create millions of pending host timers exhausting event loop and memory. Also covers audit M4 (isolate-side timer maps)."
20942094
},
20952095
{

scripts/ralph/progress.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1584,3 +1584,15 @@ PRD: ralph/kernel-hardening (46 stories)
15841584
- Internal require system writes need a captured local reference (`__internalModuleCache`) since the globalThis property gets replaced with a Proxy that rejects writes.
15851585
- `proc.run()` returns `{ code, exports }` not just exports — test assertions must use `result.exports`.
15861586
---
1587+
1588+
## 2026-03-18 - US-107
1589+
- What was implemented: Added default concurrent host timer cap (10,000) and missing test coverage
1590+
- Changes:
1591+
- packages/secure-exec-node/src/isolate-bootstrap.ts — added DEFAULT_MAX_TIMERS = 10_000 constant
1592+
- packages/secure-exec-node/src/execution-driver.ts — imported constant, applied as default via ?? operator
1593+
- packages/secure-exec/tests/runtime-driver/node/resource-budgets.test.ts — added "cleared timers free slots for new ones" and "normal code with fewer than 100 timers works fine" tests
1594+
- **Learnings for future iterations:**
1595+
- Timer budget was already mostly implemented (bridge-side _checkTimerBudget, host injection of _maxTimers, two existing tests) — the gap was only the default value and two specific test scenarios
1596+
- Budget defaults live in isolate-bootstrap.ts alongside other constants; undefined means unlimited for all budget fields
1597+
- The "normal code" test intentionally omits resourceBudgets to exercise the default value path
1598+
---

0 commit comments

Comments
 (0)