Skip to content

fix(reports): preserve recorded citations in frozen portfolio inputs - #7512

Merged
huangruiteng merged 2 commits into
mainfrom
codex/report-recorded-citations-20261028
Oct 27, 2026
Merged

huangruiteng merged 2 commits into
mainfrom
codex/report-recorded-citations-20261028

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

原有精确交付读取遗漏 Turn 记录的出处,导致私有周期报告只能引用摘要标识。现在保留符合既有格式及脱敏规则的 HTTP(S) 记录出处,与原摘要一起绑定进冻结 facts,明确标为未读取、可达性及公开许可未核验;不抓取远端、不新增发布权限。

旧 v1 冻结内容及普通 managed Session 输入保持原合同。验证:125 项来源、冻结、File/SQLite 与原读取回归通过;同一最终测试在基线上,两个原生来源用例和新引用冻结用例能检出缺陷。其余本地标准合并检查在精确提交上执行;完整自然报告质量和外部来源可达性仍独立验收。

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · max

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机 / Motivation

没有阻塞发现。周期报告的读者在查看具体成果时,往往只能看到内部摘要,无法沿原记录打开出处。同一条交付已记录一个网页出处:旧链路只给报告摘要标识;新链路给出原地址及原摘要,并明确出处尚未读取。同一组 File/SQLite 原生读取与真实冻结入口保留原出处,Markdown 和 HTML 都能使用原地址,旧冻结内容保持可验。本 PR 不证明地址可达、资料公开、模型内容全部正确或自然报告已经送达。完整自然报告的内容质量、真实来源访问及原受众送达仍需原服务独立验收。

这里修的是已经写在原 Turn 中的引用被来源读模型遗漏的问题。继续调整排版不能恢复没有输入的资料;让报告作者从摘要猜地址则会制造错误出处。旧源码上的两个真实存储后端用例和一个冻结引用用例都能检出这个缺陷,因此这不是只增加字段或只让新测试自洽的改动。

改动思路 / Approach

入口仍是原有 ManagerInspection 精确交付读取。读取器从同一 Core 索引的 path_delta.evidence_refs 保留符合既有格式和脱敏规则的网页地址,同时保留摘要;并不请求远端。普通分页预览不增加这个字段。之后仍由 collect_manager_report_source 收集原授权范围,prepare_private_report 将记录出处投影到本窗口冻结的 facts,原报告作者和原返回 owner 继续负责分析与投递。

来源保真与冻结一致性属于现有 IO/投影边界,不需要新增来源权威、网络访问器或发布控制面。当前只交付原记录出处到原私有报告的完整冻结链,公开资格、模型判断和真实投递仍由原服务另验。复用现有引用语法、隐私校验和唯一的来源到 facts 映射,比另建链接解析器或来源服务更小,也没有把 Python IO 扩展成第二套授权状态机。

最强的反对理由是“可点击”容易被理解为“可访问且可公开”。本实现把新事实标为 unverified,在事实描述和编辑合同中保留未读取、可达性和公开许可未知的边界;原私有受众及 scope witness 不变。它不把地址格式作为公开许可,外部可达性和模型是否完整采用说明仍保留为后续验收。

具体改动 / Changes

判断依据是改动前的 docs/product/periodic-reports.md,固定 revision 4b87417637126856ff23b5230c215201d278875a。SOURCE-1:保留来源收集、脱敏和原受众责任,新字段只在原授权精确读取中派生,没有新增网络访问或发信权限。FROZEN-1:旧窗口保留字节和 generation identity,以 v1 兼容测试及四个原冻结窗口逐项只读验证支持。SOURCE-2:新引用来自原记录,仍为未读的主张;缺失时不由摘要拼装 URL。

关键代码讲解

  1. loopx/chat_manager_history.py:36 的 _recorded_details 保留原 evidence_refs 摘要行为,再为完整读取投影原记录网页出处。共享 reference pattern、隐私校验和 HTTP(S) 解析过滤本地路径、凭据、内部标记、脚本与错误地址。没有抓取、重新发现或解摘要的副作用。
  2. loopx/capabilities/periodic_report/private_generation.py:34 的 _source_facts 只为新 v2 私有组合输入追加引用事实,事实保留原记录、冻结行和出处摘要三层身份,并明确状态未核验。普通 managed Session 与 v1 继续原映射,两个真实 formatter 复用原有链接规则。
  3. 同文件 :65 的 _verify_source_facts 要求 request/source 的版本、source digest、revision、destination 和完整 facts 同时相符。准备复用、冻结和独立验证都经过此边界,重新计算一组被替换 facts 的自摘要仍不能绕过原冻结来源。这里保留 v1 是历史数据兼容,不是再留一个独立决策 owner。

五文件 diff 为 +136/-5,生产改动集中在两个原 owner,其余是针对真实调用的测试和当前文档。新格式见证由原准备入口自动生成,不需要用户维护第二份同步状态,也没有新增 CLI、后台任务、调度器或模型 worker。

对主干的风险 / Risks

主要风险是错误的引用披露、旧冻结输入语义漂移,以及把地址误称已验证来源。正向用例通过原 ManagerInspection 和实际 File/SQLite authority 读取,并经真实 prepare、freeze、validator、Markdown 与 HTML 验证数据链。反向用例覆盖本地、凭据、内部标记、query、脚本、控制字符、错误端口和缺失主机,以及更换受众、来源 revision、输入标记和重算 facts 的拒绝。原读取中的 partial、unknown 和未读取产物声明仍保留。

PASS:125 项来源/冻结/inspection 回归;最后仅合成内部主机字符串的构造方式调整后,22 项原来源及边界用例再次通过,运行时和被测字符串不变。相同测试在不可变基线下,两个 File/SQLite 正向用例和新的冻结引用用例失败,53 个旧控制通过;其余十个失败仅是基线没有新增字段,并非证明旧隐私边界有漏洞。四个原冻结窗口通过独立只读验证且每个文件摘要不变。标准本地门在精确头上 6 个直接检查、11 个选择检查全部通过,首轮合成主机字面量触发的公开边界失败及修复记录保留,没有放宽扫描器。Goal 当前质量 receipt 策略关闭,不伪造 receipt。

语义与 CI 对齐

新版本只表达冻结映射,不代表新权限或已公开的来源。没有改变原周期、scope、原返回 owner、失败恢复或配额义务。目标 main 后续变化未修改本次来源、映射、inspection 和 pending-intent 合同,已检查失效条件,保留实际使用的基线标识。按当前 wait_for_ci=false 使用仓库本地证据,未查询 CI;原始失败和目标分支推进不能被“最后一次绿”替代。实际网络访问、全量打包 App、模型文案和自然原受众送达不属于本次代码通过结论。

我的整体评价 / Verdict

这是有真实调用链和反例支持的 justified_increment。长期推进 improved:出处不再每窗丢失,且旧冻结事实和后续周期 owner 保留;使用体验 improved:原用户无需重填地址或增加确认,报告作者可以沿既有信息给出出处。新增可点击引用仍只是原记录数据,不能升级为独立验证或公开发布资格。

兼容层 retain:v1 是已持久化输入,不宜无迁移地改变其映射;当前用一个函数中的显式版本变体保留语义,范围和成本 proportionate。没有新 opt-in 承诺或额外激活开关,原授权和订阅继续负责是否执行。检查五文件全 diff:变更为来源读模型、冻结输入及文档,未改 renderer、页面、CSS 或导航。两格式仅消费既有 source_ref 链接规则;本次未声称视觉改版。完整打包 App 的页面旅程、自然模型文案、网络可达性和自然投递未据此验收。

对整个报告需求仍保留独立验收;本次 approve 只覆盖精确头 51e3769eeefddecf3c0309c13ca9ab85d46816b1 的来源保真切口。安装采用和原服务实际返回仍应分别核验,不能用本评审替代。

English verdict: APPROVE — 51e3769; no blocking finding. Recorded citations retain scope and unverified access, frozen v1 remains readable, and exact-head local checks plus baseline counterexamples support this bounded source fix.

@huangruiteng
huangruiteng merged commit 15471f8 into main Oct 27, 2026
11 of 34 checks passed
@huangruiteng
huangruiteng deleted the codex/report-recorded-citations-20261028 branch October 27, 2026 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants