Repository navigation
fix(periodic-report): preserve overview and index opaque sources - #7432
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
精确评审提交:62c1a0ca0152d76143909a63e4fc6bf339a0dd36;基线:e20e4b684d04e4faed8ca3437880c9bbd70070a0。结论 APPROVE,属于可独立交付的呈现增量;正式 GitHub 状态为 COMMENTED,合并资格另行核对。
动机
已有定期报告的读者,以及通过同一冻结报告读取文字正文和 HTML 的用户。
同一份十条事项、两种重复来源的报告,旧文字版遗漏已有概览数值,并在正文重复九次长摘要;现在保留概览,正文使用来源编号,两个完整标识各在索引出现一次。
同输入文字由 2,875 变为 2,420 字符,每条标题、摘要、详情和下一步均保留;HTML 可展开来源、定位并打印完整标识,390 像素展开态无横向溢出。
本次不改模型生成内容、任务接入、调度、来源权限或投递授权,也不重新生成历史报告。
自然语言任务配置、真实新报告的内容质量和原会话自动投递验收仍由原报告任务继续承担,本 PR 只交付可复用的呈现修复。
读者已经有读取报告的授权和内容,不需要再次配置或确认才能获得这些改进:额外准备/确认轮次仍为零。来源详情是可选访问动作。旧报告重开时仍读取原内容;本次不会借“升级”重新生成或重复投递。没有必要为这项呈现工作新增来源服务或要求用户手工压缩报告。
改动思路
呈现留在已有格式器,来源编号由一个共享局部投影生成;历史兼容留在原冻结读取 owner,以完整内容相等作为准入,避免新增持久状态、生成通道和权限。
当前边界是文字/HTML 呈现、冻结读取兼容及其测试与公开对照图;不扩展为任务配置、调度器或模型质量重构。
| 已有输入/行为 | 当前行为 | 保留的边界 |
|---|---|---|
| 有 authored highlights,但文字不显示 | 文字/HTML 使用已有概览,省略重复的标题串开场 | 编译概览仍生成并验证;没有 highlights 仍显示原 summary |
| 同一不透明来源反复占正文 | 正文使用稳定编号,索引保留完整脱敏标识 | HTTPS 等原有效链接不变;不会联网查来源 |
| 旧冻结报告必须与原产物相等 | 当前、安全内联旧版、旧链接版按顺序精确重建 | 完整 bundle/source/response/body 仍需相等;没有迁移写入 |
这是当前提交的行为对照表,依据代码和真实执行记录,不作为单独的测试证据。已接受的 renderer/compiled-summary 约定仍由原 owner 承担:输入归一化与内容验证没有移入 HTML,投递授权没有移入格式器。现有 共享来源编号承担完整文档顺序和去重,HTML 沿已有 Markdown 依赖复用它,避免两个编号规则逐渐偏离。
具体改动
- 文字格式器显示已有 label/value/detail;每条 title、summary、details、next action 仍按原顺序输出。索引遍历全部 sections/items,包含仅出现在 supporting 部分的来源,两个不同身份不会合并。无 highlights、纯网页来源的反例保留旧摘要和原链接。非 HTTP 值继续作为安全惰性文本,既不产生私有地址链接,也不赋予新来源权限。
- HTML 格式器嵌入同一文字产物。编号跳转打开既有附录并将焦点交给来源条目;hash 恢复同样工作。打印包含附录,打印后还原 disclosure。新增 CSS 只约束网格最小宽度和长标识换行,正文不缩字号。真实浏览器曾暴露窄屏展开宽436px,修复后390/390;保留失败历史而没有删减来源来“通过”。
- 冻结校验增加精确的旧布局候选;旧 source-link 模式隐含旧布局。只有整个候选与现存 bundle 一致才继续,最终 source、response、candidate、正文校验仍执行。实际基线生成目录读回成功,Markdown/HTML 和所有文件哈希不变;不是以重新生成的新版产物替换历史。
- 两个测试文件覆盖中英文概览、重复/不同/支持项来源、URL eligibility、无 highlights、两代历史布局及 report/HTML/source/response 篡改。历史文字的期望 SHA 来源于独立旧源码,避免只用新版兼容开关生成自己的 oracle。产品文档说明新默认、历史边界和合成夹具的限制;9张图的像素、来源与元数据均已检查,无私有业务记录。
验证记录:最终两个受影响测试文件 61 passed;既有 native/Lark 报告回归批次 143 passed,该批在最终 CSS/print 调整前运行,最终呈现路径另由61项和浏览器/PDF覆盖,没有声称143项在最后调整后重跑。changed Ruff、前端 typecheck/Vite 构建通过。标准 premerge 的自动检查通过;exit1 为9张二进制图的人工审核要求,逐张核对后记录人工结论,并没有把 exit1 描述为全绿。
实际浏览器检查了1440×1000、390×844,默认与展开态、复制 companion 内容、来源焦点与 hash 路径;真实 Page.printToPDF 输出5页,读取到了两个完整来源和概览,打印后附录状态还原。图片和具体夹具边界见完整对照记录。同输入字符数下降不是模型成本或现场报告质量的证据。
逐项映射规范 docs/reference/protocols/periodic-report-v0.md:pure_projection 对应纯呈现且没有外部效果,linear_and_html 对应完整线性正文与 HTML companion,compiled_summary 对应保留编译校验和拒绝 authored/tampered summary;各项均由上面的实际路径与用例验证。
对主干的风险
最重风险是把展示变化误判为历史生成损坏,或把“折叠”变成来源丢失。当前证据针对这两个风险:独立旧源码摘要、实际冻结目录字节相等、10个历史/篡改变体,以及完整浏览器打印读回。错误候选仍被原校验拒绝;没有清空记录、强制认可历史或重放投递的恢复捷径。兼容成本是原校验 owner 的一个额外候选,持久合同存在时合理;若未来退出历史支持,应在同 owner 明确迁移决定,而不是继续复制格式器版本。
全局 loopx check 仍有两个既有 legacy canonical-authority 错误和85条既有非字面量警告;已在不可变安装基线与当前源码核对相同失败身份/详情,触发 owner 不在本次改动。公开扫描完成5831个文件,无缺失或不可读根;通用 sk- 模式命中的是原文中未改的 task 单词片段,没有发现新增敏感内容。这些问题保留,未通过调低检查门槛掩盖。wait_for_ci=false,本评审没有获取、轮询或等待远端 CI。
HTML 脚本的范围是本地附录导航、焦点、打印状态,无网络、外部持久状态或宿主效果。当前 App 组件的预览不代表完整安装旅程;服务安装与空闲窗口、原会话队列和监听恢复还需独立操作读回,不从截图推断采用完成。回滚只需恢复代码,保留冻结报告原文件;来源、调度、授权与投递 owner 维持原边界。
我的整体评价
实际查看了十条长内容和重复来源的整页桌面、窄屏及展开图:概览数值与失败/未验证事项更容易找到,正文字号保持,完整来源留在可展开索引;另以 DOM 与真实打印 PDF 核对访问和完整性。
这些是生产格式器和当前 App Markdown 组件/样式的合成输入验收,尚未证明安装后完整 App 旅程、真实模型内容质量或下一次自然调度投递。
呈现留在已有格式器,来源编号由一个共享局部投影生成;历史兼容留在原冻结读取 owner,以完整内容相等作为准入,避免新增持久状态、生成通道和权限。
当前边界是文字/HTML 呈现、冻结读取兼容及其测试与公开对照图;不扩展为任务配置、调度器或模型质量重构。
本次符合 justified_increment:已经在现有调用路径交付了有用、可复测、可回退的差异,且没有以扩大状态、配置或授权代价换取局部改善。完整报告质量任务继续保留,不能把字符变少、构建通过或附录可访问当作内容质量与用户最终收到结论的证明。下一步由安装采用验收和原报告 owner 的真实新报告闭环继续收敛,避免 Root 代办业务或改写原结论。
没有发现本提交的阻断项。采用 APPROVE / author-owned COMMENTED,保留上述现场验收缺口和既有全局错误;授权合并必须再通过当前 exact-head merge-readiness,评审结论本身不授予合并、重启其他工作负载或代发消息的权限。
English verdict: APPROVE 62c1a0ca0152d76143909a63e4fc6bf339a0dd36. Existing report renderers now preserve authored overview and losslessly index repeated opaque sources; exact historical frozen generations remain readable without rewriting. Final61 focused tests, existing143 native-report regressions (before final CSS refinement), actual responsive/expanded browser and PDF checks support this bounded increment. Nine binary captures were manually inspected; unrelated legacy registry failures and live end-to-end content/delivery qualification remain explicit. No CI was fetched. GitHub publication uses COMMENTED for this author-owned PR.
Text reports omitted the authored overview already present in the report document, while both formats repeated long internal source identities in their main rows. Reports now lead with their authored overview and share numbered, lossless source references. Full item content, valid web destinations and the original normalized document remain intact.
HTML opens the existing source appendix and focuses the selected reference. The expanded index wraps at 390 px, is included in printed output, and restores its previous disclosure state after printing. Frozen reports retain their original bytes through exact reconstruction of the two earlier presentations; source, response, bundle, candidate and body tampering still fail validation.
Validation
Visual evidence
Revision
62c1a0ca0152d76143909a63e4fc6bf339a0dd36. Text views use the compiled production App Markdown component and the current built stylesheet; HTML views use the production standalone formatter. All records are synthetic. Desktop 1440×1000; narrow 390×844. Browser checks cover default/expanded source views, keyboard focus, full-text parity and a five-page PDF with both complete identifiers. This qualifies report presentation separately from a full installed App journey.Remaining before/after and expanded captures.
Delivery boundary
This is a reusable renderer increment in the existing periodic-report capability. Source collection, typed admission, scheduling, recipients and publication remain with their existing owners. Remaining acceptance includes natural-language periodic-task configuration, the full managed-task frontend journey, substantive live-report quality and natural original-channel delivery. Installation and production adoption are tracked separately from these source and artifact checks.