openpencil/packages/pen-core/src
Fini d9f8d2d40f fix: navbar fill protection + dispatcher fires image search at subtask level
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).
2026-05-05 02:29:17 +08:00
..
__tests__ fix: navbar fill protection + dispatcher fires image search at subtask level 2026-05-05 02:29:17 +08:00
element-builders Merge feat/rust-ification into v0.8.0 (Step 0 Rust workspace bootstrap) 2026-05-04 21:00:00 +08:00
layout fix: navbar fill protection + dispatcher fires image search at subtask level 2026-05-05 02:29:17 +08:00
merge V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
normalize V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
variables Merge feat/rust-ification into v0.8.0 (Step 0 Rust workspace bootstrap) 2026-05-04 21:00:00 +08:00
arc-path.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
boolean-ops.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
constants.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
design-md-parser.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
font-utils.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
id.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
index.ts Merge feat/rust-ification into v0.8.0 (Step 0 Rust workspace bootstrap) 2026-05-04 21:00:00 +08:00
node-helpers.ts fix(types): re-export isBadgeOverlayNode as deprecated alias 2026-04-16 21:09:56 +08:00
normalize.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
path-anchors.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
sync-lock.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
tree-utils.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00