保留同一来源分批导入后的覆盖统计 #27

Merged
Zayden-Jung merged 2 commits from codex/incremental-coverage into main 2026-11-08 15:10:17 +00:00
Collaborator

同一会议目录先导入2条、后补1条时,现有快照导入会把edition_sources.imported_count覆盖成1,虽然原有记录仍在。此问题阻碍已核实身份的历史暂缓记录追加,且会误导后续覆盖审计。

新增显式coverage_mode=incremental:manifest绑定旧实际记录数、旧expected_count和完整来源预期数。写入前核对单一目录、partial父状态和真实来源数;事务内重新统计去重来源记录、检查总量边界并乐观更新,例子结果为预期4、已导入3。刷新同一记录不累加,文件records_written仍只记本文件行数。失败整文件回滚,旧已提交批次保留。

  • paper_atlas/ingestion/records.py:增量manifest验证、父状态与实际来源数检查、事务内聚合及条件更新、checkpoint记录。
  • tests/test_incremental_coverage.py:SQLite追加、刷新、过期父状态、越界回滚、歧义多目录、未对齐旧计数、首批和complete不降级等边界。
  • tests/test_postgres_ingestion.py:真实PostgreSQL计数/刷新、NUL/SOH文本、越界整文件回滚;另以第二个SQL连接提交父状态变更,验证增量文件失败回滚且保留对方已提交的变更。
  • docs/operations.md:字段意义、限制和独立前后验收要求。

范围:默认snapshot语义保持;增量模式仅适用于单一规范目录、已有partial来源,不能静默聚合多个目录或把小批次当完整覆盖,也不能缩小已知来源预期数。此修复不变更数据库表、改写决定或执行生产导入。

依赖PR #25的稳定身份保护,分支从9cc7b5b创建;完整差异包含该依赖,先由用户手动合并#25。与PR #26的离线curation命令独立:其输出文件可声明此manifest模式。

本机仅AST/diff检查,未运行测试或构建。精确head 71d3cf0590 的CI1035/job1132已通过225测试、wheel构建、安装和安装后CLI检查(日志SHA256 b49d4c1001d55f7a2f883fe0850d9d51b78c707c0dc45a7fbb44f0dc63904433),使用已授权ces-control:host/aliyun-ces-control。base main,head codex/incremental-coverage,等待用户手动合并,不自动合并。

阶段提交ee140cf实现功能,71d3cf0补充真实并发验证;head已通过指定远程CI。原3590条已验收数据不重放;新12条已完成单独生产导入和独立验收,见末节。

12条补充记录:生产独立验收通过(2026-11-08)

此前15条暂缓记录中的12条,已使用精确71d3cf0源码完成5文件原生增量导入及独立验收,新增1个论文实体、关联11个既有实体;11个arXiv链接和1个图书章节DOI核验一致。其余3条原始来源题名/页码冲突继续暂缓,未导入。

验收报告 /data/paper-index/collected/historical-held-import-v1/postgresql-postcheck-v1.json,2026-11-08T10:08:56.249Z,SHA256 07d3292f04cc279e49ad8ca19dd7f69eb53b43e772ccdc4d052412fd1e3a41b7。12条来源字段、投稿/决定/标签、5个checkpoint及聚合partial覆盖全部一致;其他覆盖行指纹未变。22个旧版本实体、22条旧来源、47条旧标签和22个旧标识映射未变;全部551546条原决定来源证据SHA256仍为 75ee59e66cba7f4f9bdc6d63ff770e44e6a70f298abcc1a4edca9961bc7eccce。639条状态冲突、已知跨会录用均保留,未发生实体/投稿/决定合并;GIN、实际全文查询、foundry-core readyz200及SQLite只读备份通过。

本批验收快照为论文实体3553225、来源3795317、投稿512006、决定551558;不是最终独立作品总数。原3590条和本12条均不可重放。26组其他版本关系、244条ICLR2017身份、639条状态冲突及类型/标签/覆盖/摘要/最终全库去重审计仍待完成。代码等待用户手动合并,生产批次验收不代表代码已合并主线。

同一会议目录先导入2条、后补1条时,现有快照导入会把edition_sources.imported_count覆盖成1,虽然原有记录仍在。此问题阻碍已核实身份的历史暂缓记录追加,且会误导后续覆盖审计。 新增显式coverage_mode=incremental:manifest绑定旧实际记录数、旧expected_count和完整来源预期数。写入前核对单一目录、partial父状态和真实来源数;事务内重新统计去重来源记录、检查总量边界并乐观更新,例子结果为预期4、已导入3。刷新同一记录不累加,文件records_written仍只记本文件行数。失败整文件回滚,旧已提交批次保留。 - paper_atlas/ingestion/records.py:增量manifest验证、父状态与实际来源数检查、事务内聚合及条件更新、checkpoint记录。 - tests/test_incremental_coverage.py:SQLite追加、刷新、过期父状态、越界回滚、歧义多目录、未对齐旧计数、首批和complete不降级等边界。 - tests/test_postgres_ingestion.py:真实PostgreSQL计数/刷新、NUL/SOH文本、越界整文件回滚;另以第二个SQL连接提交父状态变更,验证增量文件失败回滚且保留对方已提交的变更。 - docs/operations.md:字段意义、限制和独立前后验收要求。 范围:默认snapshot语义保持;增量模式仅适用于单一规范目录、已有partial来源,不能静默聚合多个目录或把小批次当完整覆盖,也不能缩小已知来源预期数。此修复不变更数据库表、改写决定或执行生产导入。 依赖PR #25的稳定身份保护,分支从9cc7b5b创建;完整差异包含该依赖,先由用户手动合并#25。与PR #26的离线curation命令独立:其输出文件可声明此manifest模式。 本机仅AST/diff检查,未运行测试或构建。精确head 71d3cf0590c0c6ea7a63a587e83a5a436fe59641 的CI1035/job1132已通过225测试、wheel构建、安装和安装后CLI检查(日志SHA256 b49d4c1001d55f7a2f883fe0850d9d51b78c707c0dc45a7fbb44f0dc63904433),使用已授权ces-control:host/aliyun-ces-control。base main,head codex/incremental-coverage,等待用户手动合并,不自动合并。 阶段提交ee140cf实现功能,71d3cf0补充真实并发验证;head已通过指定远程CI。原3590条已验收数据不重放;新12条已完成单独生产导入和独立验收,见末节。 ### 12条补充记录:生产独立验收通过(2026-11-08) 此前15条暂缓记录中的12条,已使用精确71d3cf0源码完成5文件原生增量导入及独立验收,新增1个论文实体、关联11个既有实体;11个arXiv链接和1个图书章节DOI核验一致。其余3条原始来源题名/页码冲突继续暂缓,未导入。 验收报告 `/data/paper-index/collected/historical-held-import-v1/postgresql-postcheck-v1.json`,2026-11-08T10:08:56.249Z,SHA256 `07d3292f04cc279e49ad8ca19dd7f69eb53b43e772ccdc4d052412fd1e3a41b7`。12条来源字段、投稿/决定/标签、5个checkpoint及聚合partial覆盖全部一致;其他覆盖行指纹未变。22个旧版本实体、22条旧来源、47条旧标签和22个旧标识映射未变;全部551546条原决定来源证据SHA256仍为 `75ee59e66cba7f4f9bdc6d63ff770e44e6a70f298abcc1a4edca9961bc7eccce`。639条状态冲突、已知跨会录用均保留,未发生实体/投稿/决定合并;GIN、实际全文查询、foundry-core readyz200及SQLite只读备份通过。 本批验收快照为论文实体3553225、来源3795317、投稿512006、决定551558;不是最终独立作品总数。原3590条和本12条均不可重放。26组其他版本关系、244条ICLR2017身份、639条状态冲突及类型/标签/覆盖/摘要/最终全库去重审计仍待完成。代码等待用户手动合并,生产批次验收不代表代码已合并主线。
codex-bot added 2 commits 2026-11-08 09:32:59 +00:00
Keep stable paper identities separate from ambiguous title matches
Metadata integrity checks / metadata (push) Successful in 1m16s
9cc7b5b050
Preserve source coverage when importing incremental metadata batches
Metadata integrity checks / metadata (push) Successful in 1m18s
ee140cfd40
codex-bot added 1 commit 2026-11-08 09:34:08 +00:00
Verify incremental coverage rejects a concurrent parent update
Metadata integrity checks / metadata (push) Successful in 1m18s
71d3cf0590
codex-bot marked the pull request as ready for review 2026-11-08 09:42:19 +00:00
Zayden-Jung merged commit 4ec82c8f8f into main 2026-11-08 15:10:17 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Zayden-Jung/paper-atlas#27