0482d08a69
做方案在拿到第一个产物之前,左边的资源画布是空的(文档 0 项、项目版本 0 项),而澄清 问答、决定卡和 GDD 审批全挤在右边 360px 那一列里,屏幕上七成面积空着。 planningStartMode && resources.length === 0 时给工作台加 is-conversation-only,收成单栏。 画布是 display: none 不是不渲染——页签、缩放和选中状态都留着,出现第一个已登记资源后自动 恢复双栏。planningStartMode 只影响这一处布局,不参与任何 runtime 分流。 同时修重叠。.project-supervisor-conversation 的成员数量随链路变化:做游戏时 PlanGddStageProgress 与 GddApprovalCard 都返回 null,做方案时它们出现,pendingCommand / pendingConfirmation 也各自条件渲染,最多能到八个。原先按位置分配五条轨道,只对做游戏那几 个成员成立——做方案一进来整列后移两格:可伸缩的轨道被阶段进度条占走,审批卡落到能被压到 0 的 minmax(0, auto) 上,末尾成员溢出到隐式行再被容器的 overflow: hidden 裁掉,界面上就是 审批卡截在半句话、消息列表和运行时面板糊在一起。这也是为什么只有做方案会重叠。 改成弹性列后「谁伸缩」由类名决定而不是由出现顺序决定,加减成员不再移位。审批卡另外加了 自己的天花板与内部滚动:它是这一列里唯一没有上限的成员,Fast GDD 的决定项越多它越高,能 把消息列表和运行时面板一起挤出可视区。 原契约用例钉死了旧的轨道字符串,改成断言新的不变量:flex 列、不再出现 grid-template-rows、 消息列表是伸缩的那个、审批卡有上限。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>