Why: Codex stop-time review 2026-05-10 — clipCardImageCorners was slotted between unwrapFakePhoneMockups and resolveTreeRoles in the post-streaming pipeline. Cards that don't carry an explicit cornerRadius from the sub-agent get one filled in by role-resolver (e.g. role='card' → default cornerRadius=12). Running clip before role defaults silently skipped every default-radius card — match policy required scalar cornerRadius > 0 and saw cornerRadius=undefined at that point. Net effect: the bug stayed for the most common case where the model wrote role='card' without a numeric radius. What: move the clipCardImageCorners call to the freshRoot block right after resolveTreeRoles + resolveTreePostPass. By that point the role-resolver has populated defaults, so a card without an explicit radius now correctly hits the predicate. Reuse the existing \`freshRoot\` reference (re-fetched after updateNode mutations earlier in the pipeline) so we don't double-fetch from the store. No new tests — the existing 9 unit tests already pin the predicate; the bug was placement-only. 1448 / 1448 pen-core tests, 1110 / 1110 AI service tests still pass. |
||
|---|---|---|
| .. | ||
| cli | ||
| desktop | ||
| web | ||