# PROGRESS-staging-gate-red-20260923 ## 基线与授权 - 用户要求执行已推到 staging 的修复单;范围为 H1~H5,包含推送后读取 Gitea 门禁,不包含 BUG-1011 修复、workflow、DNS 或 main。 - fetch 后实际基线 `93cd01dbf9631557d747ea04966c963e3a1fc2dc`;独立工作树 `.worktrees/staging-gate-red-20260923`,分支 `codex/staging-gate-red-20260923`。 - 开工核对最大 Bug 编号为 BUG-1011,本单使用预留的 BUG-1012~1014。 - 基线全量测试在既有干净 `a12f2c0d` 工作树运行:已核对到本轮基线的差异仅为五个文档文件,没有产品或测试代码差异。Node 22.23.2。新树独立复制同一锁文件依赖,不安装或升级依赖,不使用链接依赖。 - 不读受保护 pending packets,不运行跨库 quick/隐私扫描,不清理其他会话 Docker 网络,不借用登录账号。此次是纯前端与测试修复,沿用已读预检台账及本轮 fetch/远端验证,不把未运行的综合预检写成通过。 ## 修复前真实门禁证据 使用用户已配置并授权的 Gitea token,仅在请求头内使用,不输出或落盘。实际 API:`a12f2c0d` 对应 run **2856**(run_number 1451)、validate job **6345**,不是任务书所写 run 6294。publish job 6346 为 skipped。 | 项 | Linux 门禁实测 | | --- | --- | | Node 测试 | 3,760 tests / 3,756 pass / 4 fail | | 失败 1 | `generating does not disable the textarea; Enter queues instead of dropping`(H3) | | 失败 2 | `the guard covers every component that renders inside the panel today`(H2) | | 失败 3 | `personal report sections enforce owner-read RLS and service-owned durable transitions`(BUG-1011,另单) | | 失败 4 | `CSS width breakpoints stay on the published allowlist`(H1) | B 类工具相关测试不能依据诊断机推断:已实际读取该 job 日志,其余测试均通过,包括 health deployment、工作流、身份集成、管理数据库和其他数据库测试;仅上述四条失败。修复后的新 run 须另验,旧 run 不能充当本轮成功证据。 ## 实现与断言三栏 H1~H3 已定稿。`page.tsx` 业务、断点白名单、scroll guard 豁免、postgres-fixture 和 workflow 均未修改。 | 原值 | 新值 | 原因 | | --- | --- | --- | | `inputDisabled={sessionMessagesLoading || rectificationSurfaceOpen || activeRectificationSession || (!profileComplete && ...)}` 的整串正则 | 开头增加既有业务的 `subjectDeleted ||` | BUG-1000 已删除资料的历史会话只读;本单只修合同,不改行为 | | picker 焦点合同匹配 `triggerRef.current?.focus()` | 匹配 `focus({ preventScroll: true })` | 仍回到同一按钮,只禁止浏览器连带滚动 | | starter-entry-soften 合同要求防溢出规则在375px媒体块 | 同一规则要求在480px媒体块 | H1明确合并断点,首次全量发现遗漏的相关源码合同;不删测试、不改按钮/悬停/3px焦点等其他断言 | 新增两个测试名称:picker 两条关闭路径的焦点恢复;所有 ChatComposer inputDisabled 表达式不含 isLoading/cancellationPending。后者使用 TypeScript AST 读取完整 JSX 表达式,不受变量顺序、换行或嵌套花括号影响。原测试名和其他断言保留。 执行代理隔离变异:正常表达式通过;isLoading/cancellationPending 前缀及换行、嵌套对象后变量等五种变异均被新断言拒绝。没有改共享 page.tsx,其 SHA256 前后不变。 ## 本轮验证 | 检查 | 状态 | | --- | --- | | 同机全量基线 | Node22:3,704 tests / 3,613 pass / 91 fail;Windows 环境,不冒充 Linux 门禁 | | H1~H3 定向 / 变异 | 主会话最终独立33/33通过(含Home增长、首屏与starter-entry-soften合同);执行代理最终五文件26/26,五种隔离变异均变红 | | 五宽度真实组件 Chrome / 焦点 | Chrome153 共145项通过、0运行异常;360/375/390/414/480,两种入口模式共10场景无溢出;390/414/480共6对基线几何与整页PNG字节完全相同。Escape/换人/重选/外点四条路径均返回触发按钮,对话滚动420→420,panel/document/window均0→0。仅隔离组件,不是登录E2E | | TypeScript / lint / build | tsc0错,lint0error/119既有warning;webpack与构建内tsc通过,页面数据阶段因 Windows SKILL.md symlink EPERM 退出1,Static/gzip未完成,不能记构建通过 | | 修复版首次全量名称对比 | 3,706 tests / 3,617 pass / 89 fail;名称消失0、新增2均通过。原三项转绿,88项旧失败完整诊断归一后逐项一致;新增1失败为 starter-entry-soften 仍要求375px,属于H1漏同步合同,待补修复验 | | 修复版最终全量名称对比 | 3,706 tests / 3,618 pass / 88 fail;相对基线名称消失0、增加2均通过,原三项转绿、新失败0,88项完整失败诊断归一后逐项一致。相对首次候选仅starter-entry-soften转绿,其余不变;cancelled/skipped/todo均0 | | 提交 / staging / 新 Gitea run | 代码与记录提交 `36a737616c67a251610662ccab76845b193993fb`;默认Git认证首次失败,使用用户已授权的环境变量令牌仅在子进程内存注入后快进推送成功,ls-remote已核对同SHA;run 2857(run_number1452)已完成但失败,validate job 6347 唯一失败为 BUG-1011 的 `personal report sections enforce owner-read RLS and service-owned durable transitions`,日志为 `spawnSync docker E2BIG`(`postgres-fixture.ts:251`);测试总数 3,762 / 3,761 pass / 1 fail,publish job 6348 skipped,H1~H3 未失败,当前未部署 | 本轮失败、环境缺口和部署状态将按实际证据更新,不预写门禁全绿。 提交后独立只读终审:未发现 `36a73761` 引入的具体正确性问题或硬红线违规;确认未改 page.tsx、postgres-fixture、workflow、断点白名单或 scroll-guard 豁免,未删测试或加 skip。终审没有重跑测试,不替代 H4 新门禁、部署、Static/gzip 或登录 E2E。 隐私检查限定本轮11个变更文件,调用既有仓库 marker 规则,0命中;未加载可选本地规则,没有读取保护目录,也不是全库隐私门通过。完整门以 Gitea 新 run 为准。 浏览器证据位于忽略目录 `scratch/browser-h1-h2-20260923-acceptance/`,含可复跑 `verify.mjs`、`browser-evidence.json`、24张截图;不提交浏览器 profile 或临时资产。