42 builders × 2 budget checks + 1 full-batch check: 1. Average over 100 runs < 5ms per builder (post-warm-up). Generous enough to absorb CI noise; tight enough to catch a regression that adds a synchronous font round-trip, icon lookup, or N² layout pre-pass. 2. Cold first call < 50ms per builder (JIT amortization allowance). 3. Full 42-builder batch < 100ms — simulates a realistic "AI emits a whole screen" where the orchestrator builds 40+ trees in a single streaming turn. Stuttering > 100ms would be visible. Background: element tools fire inside streaming AI generation, so every builder sits on the hot path. A builder slipping from O(n) to O(n²) wouldn't fail correctness tests but would ruin the streaming experience. This floor catches that early. If a builder legitimately needs more budget (e.g. a real-time vector-graphics computation), bump the constant explicitly and document why in the commit — the explicit bump is the deliberate signal the budget has shifted. |
||
|---|---|---|
| .. | ||
| agent-native@e1f90cab96 | ||
| pen-acp | ||
| pen-ai-skills | ||
| pen-core | ||
| pen-engine | ||
| pen-figma | ||
| pen-mcp | ||
| pen-react | ||
| pen-renderer | ||
| pen-sdk | ||
| pen-types | ||
| CLAUDE.md | ||