Files
Genarrative/apps
lhk229 763f4b5b4c
Project CI / Repository checks (pull_request) Successful in 4m24s
Project CI / Frontend tests (pull_request) Successful in 4m55s
Project CI / Backend tests (pull_request) Successful in 6m15s
Project CI / Native shell tests (pull_request) Successful in 14m53s
策划列布局的命中判据补上窄条,hydrate 还没回来时澄清卡不再被裁
上一笔只用 `:has(.plan-gdd-surface)` 认策划链路,漏了一格:`PlanGddSurface` 在
`planGddState === null` 时整个返回 null,而 `planGddState` 初值就是 null,要靠
`hydrate_game_creator_plan_gdd_state` 这一次独立 IPC 才填上。首帧竞态、以及 hydrate
持续失败(非写锁争用的错误会把 state 留在 null)这两种情形下,策划 run 照跑、
`PlanningLaneRuntimeStrip` 照渲染澄清卡,但容器上的 `:has()` 不命中,#193 那套
`display: block` + 列表 `height: 100%` + `overflow: hidden` 原样回来,卡片又被静默裁到
可视区外。

判据改成 `.plan-gdd-surface` 与 `.planning-lane-runtime-strip` 的并集。两个类都只属于
策划链路,做游戏与做素材仍走 master 的 block 列。窄条在场本身就等价于「有东西要用户
动手」,并进来之后「卡片存在」和「列布局生效」是同一件事,不再依赖另一条异步链路的
时序。

守门加在已有的策划样式测试里(同一处已经钉着 #193 误删的几条规则):断言这条 flex 列
规则的 `:has()` 必须包含窄条类。已验证非空转——把并集改回单一类,这条断言变红。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 10:03:24 +00:00
..