Two related issues from the GPT-5.5 food-app run: 1. Bottom navigation rendered without its surface fill, blending into the cream root background. The strip-redundant-section-fills pass didn't have any of the navigation roles (`navbar`, `nav`, `tab-bar`, `bottom-tab-bar`, `top-nav-bar`) in PROTECTED_ROLES, so a navbar carrying `fill: #FFFFFF` (or any SAFE_LIGHT tint) hit the "safe-light hedge" branch and got stripped. Real-world navs intentionally use a white surface to separate from a tinted root — that fill is intended, not a hedge. Fix: add the five navigation role names to PROTECTED_ROLES. New test asserts a `role: navbar` frame with `fill: #FFFFFF` on a `#FFF8F0` cream root keeps its fill. 2. Empty-src image placeholders inserted by the dispatcher's JSONL fallback only got auto-filled at the orchestrator's tail (line ~1219, after every subtask completes). On a long brief that's a visible lag; on an aborted/throwing brief the tail never runs and images stay placeholder forever. Fire-and-forget `scanAndFillImages(parentId)` from the dispatcher's applied path so each subtask's image set starts searching as soon as it lands. The orchestrator-tail scan still runs and dedups through `queuedNodeIds`, so this is purely a latency / robustness improvement (no double fetch). |
||
|---|---|---|
| .. | ||
| public | ||
| server | ||
| src | ||
| CLAUDE.md | ||
| components.json | ||
| dev.ts | ||
| package.json | ||
| tsconfig.json | ||
| vite.config.ts | ||