Repository navigation
Description
目标 / Goal
持续推进 chigre/Picture_Capture 模块归类:将 src/picture_capture/ 目前仍平铺的 240 个根目录 Python 文件,按明确职责分批迁入子包,而不是留下同等数量的兼容空壳。参考 归属路线图。
基准
- Phase 1: PR refactor: establish quality/geometry packages and physically relocate 13 root modules #560 已合并,13 个文件迁至
quality/、geometry/;根目录 253 → 240。 - 截至 2026-10-17 当前
maine5cdd7202f52555f09cf6b7c437b6bd57366e5aa,没有未合并 PR;最新批量精修资源修复 PR Fix batch Y refinement: isolate single Paddle GPU worker and bound illustration memory #561 已合并。后续每轮以实际最新主干 SHA为准。 - GitHub issue 是跨每小时任务执行的唯一持久进度记录,记录 PR、CI、阶段、根目录计数、阻碍和下一步。
阶段任务(可因依赖调整顺序)
- P2:
refinement/:精修 Y、固定栏距、守卫、分批 worker、父进程 PDIC 提交;不得重引入每 worker 一个 Paddle GPU 模型的问题。 - P3:
illustration/:PPP 掩膜、插图检测/编辑/关联;不得在只读精修时写 PPP。 - P4:
layout/:检测器、估计、列模型、布局证据及 Policy;维持 hook/facade 兼容。 - P5:
ocr/:识别引擎、缓存、仲裁、模型资源;Windows spawn 和 GPU 单进程所有权为门禁。 - P6:
proofreading/:校对事务、撤销重做、Review 证据;与现有 PC-CQ/B2 remaining acceptance: durable marker identity and Windows interactive evidence GUI #483/PC-CQ/B3 R3 remaining transactions: OCR-linked deletion/manual override, complex undo/redo and operator validation #503 协调,不应冒用其验收。 - P7:
training/、ref/等独立模块。 - P8:
project/、Profile、最近项目与模板。 - P9:
persistence/:最后迁移 PDIC/PPP/SECTION、原子写入及项目储存,严格兼容历史格式。 - P10: 收尾:
src/picture_capture/根目录仅保留明确的入口/API 兼容层;剩余每个根模块均有合理化清单;更新架构路线图、统计文件数、完成最终跨平台回归。
每轮(每小时)执行协议
- 读取此 issue 和路线图及所有 open PR,核对
main、CI、最近变更和当前目录。 - 如果有正在运行/未绿的重构 PR,先修复、复测和安全收敛;不要另开互相冲突的重构分支。
- 否则选择依赖最少且职责明确的一组模块,真实迁移、修订所有导入/懒加载/入口/测试/相对路径,在独立分支建 PR。
- 必须跑相关专项测试、架构 guard、完整 Python 3.10+Windows+macOS+Ubuntu CI、Tk smoke、wheel、CodeQL;检查 reviews 和 unresolved threads。高风险改动缺少真实数据验收时明确记录,不假称通过。严禁为凑数字删除测试或放松 guard。
- 绿灯且确认无冲突时可合并;合并后检查 main push CI。若失败修复并继续。
- 每次更新本 issue 的进度、模块数、PR 链接、失败/阻碍与下一步;仅在有实际进展、需要人干预或最终完成时发消息。
- 完成所有阶段且核对最终验收标准后,关闭本 issue 并停止每小时自动任务。未全部完成时保持任务有效。
不可回退要求 / Invariants
- 保持所有现有应用入口、快捷菜单、设置、项目/Profile、阅读方向、坐标变换及人工画线语义。
- PDIC 原文字节/行身份/坐标的守卫提交、PPP/SECTION/Review 并发编辑保护、原图不可变。
- 不能通过静默跳过检测、调用 OCR、增加 GPU 模型实例或改变 Y 算法来掩盖回归。
- 不应因大搬迁引起循环导入、Windows 子进程反复初始化、缓存/数据格式兼容损坏。
- 单 PR 包含一批可验证的同职责模块,不做“全量一次搬走”。
完成定义 / Definition of Done
- 所有适合迁移的根模块均被实际移至对应业务子包;有意保留的入口、协议、兼容模块逐一列明职责及理由。
- 无无意义空目录或大量根目录 shim;静态/运行时导入无断裂,包构建可安装。
- 每批 PR/最终 main 的 Python3.10、Windows/macOS/Linux、GUI smoke、CodeQL、guard 均绿,针对历史精修批处理、OCR GPU、插图和 PDIC 编辑的专项回归可复现。
- 提交最终 before/after 目录计数、架构说明和剩余技术债;实际扫描图像交互验收若无数据必须明示「尚待人工验证」,不能将 CI 等同真实使用验收。
2026-10-17 进度记录
- P7 REF:已创建 Draft PR refactor(ref): move geometry and text label helpers into ref package #570,https://github.com/chigre/Picture_Capture/pull/570;分支
refactor/p7-ref-geometry-label-20261017,HEAD1ce68a0。 - 真实迁移
ref_box_geometry.py、ref_text_label_layout.py至ref/;修改生产与测试导入、增加 ownership 测试、更新路线图。 - 最新核对 main
d9a24d4;根目录 Python 文件 main 242,PR 分支 240(净减 2)。 - PR CI run
39046755152当前 queued,未通过验收;分支落后 main 3 个提交,PR 目前 Draft / mergeable=false;未合并。 - 下一步:核对 CI、同步主干、专项回归与架构 guard、Python 3.10 跨平台、GUI smoke、wheel、CodeQL 及 review;未通过前不开冲突 PR。
2026-10-25 — Round 42 / Draft PR #663 继续迁移(已核对最新 HEAD)
- PR: https://github.com/chigre/Picture_Capture/pull/663;分支
refactor/562-retire-root-image-utils-20261024,精确 HEAD4b382f434d812af6cdcc7751a8c2b728e4d5967a,仍 Draft/open/未合并。mainec20989ea8c026cca5337293e67850b6b6df30f2。 - 将根
processing.py中三项实际算法实现迁到layout/current_page.py(页面理解、插图掩膜与图像释放)和ordinary/layout_roles.py(Layout角色词条生成、Y精修、VB紧急回退),原有 processing API/运行时 monkeypatch 调用点保留。 - Git 树核对:根目录 Python 文件 10→10;根目录 Python 总字节 449419→444564(−4855),
processing.py41760→36905。增加 Round42 针对性测试,修订旧测试物理位置断言及架构审计。 - 最终 HEAD CI https://github.com/chigre/Picture_Capture/actions/runs/40112805630 SUCCESS:Windows/macOS/Ubuntu × Python 3.10/3.13 6/6;Ubuntu 3.13 3830 passed, 3 skipped;Tk smoke、wheel、F821、CodeQL 通过。三平台 OCR Smoke https://github.com/chigre/Picture_Capture/actions/runs/40112805656 SUCCESS 3/3。
- 未完成:真实扫描词典页人工 GUI 验收,普通/OCR/组合流程、Profile、PDIC/PPP 保存重开、裁剪/导出格式等价性。不能将自动化 CI 当成人工验收。继续拆分
processing.py/ core /profile/setup.py,保持 Draft,不得自动合并/Ready。
2026-10-25 — Phase 14 / AppSettings value policy
- Draft PR refactor(#562) + fix(#503): module architecture and R3 recovery safety (consolidated Draft) #663 remains Open / Draft / unmerged, final HEAD
847a10a12a5de98d1d629013eac845a0fdbd83fd. - Physical moves: root
models.pyAppSettings__setattr__, opacity clamping and native field alias behavior →profile/settings_value_policy.py, maintaining dynamic patch points and pickle identity. - Root direct Python files 10→10, total bytes 359,865→357,643 (−2,222 B);
models.py43,536→41,314 B.profile/setup.pyremains 36,283 B, mostly legacy Tk delegates. - Added targeted regression and updated both architecture audit documents. Exact-head CI https://github.com/chigre/Picture_Capture/actions/runs/40167410480 SUCCESS (6/6); Ubuntu 3.13 3,922 passed, 3 skipped. OCR Smoke https://github.com/chigre/Picture_Capture/actions/runs/40167410310 SUCCESS 3/3. No unresolved PR review threads.
- Still pending manual real scanned dictionary-page acceptance: GUI, Profile, normal/OCR/combined detection, PDIC/PPP save/reopen, crop and export parity. Do not merge or mark Ready.
Issue #562 — Phase 15: native AppSettings dataclass physical relocation (2026-10-25)
Final exact PR HEAD: c5c750ac66707dd6279588aae50e4723847dbe0b (extraction abb0d85ac779be35fc03f0f28f57348e5de6c09f; update canonical audit and source-location tests c5c750ac66707dd6279588aae50e4723847dbe0b).
- Physical move: all 150+ native
AppSettingsdataclass field definitions,_AppSettingsMeta, constructor alias normalization, static compatibility properties, methods and Profile model integration moved from rootmodels.pytoprofile/settings_model.py.models.AppSettingsandprofile.settings_model.AppSettingsare the same class object, not a subclass/copy; historical__module__, pickle identity and dataclass field order preserved. Runtime root monkeypatch callbacks remain dynamically resolved. The class's JSON and validation algorithms stay under the previously migrated Profile owner modules. - Measured from Git tree: direct-root Python files 10→10; direct-root bytes 357,643→324,171 (−33,472 B);
models.py41,314→7,842 B (−81%).profile/setup.pyremains 36,283 B (existing Tk delegate compatibility). - Targeted test
tests/test_issue562_appsettings_native_owner_phase15_20261025.pyadds exact identity, pickle roundtrip, field-order, default, aliases, dataclass replace, atomic JSON and monkeypatch protection. Updatedscripts/audit_settings_runtime.pyto find the real schema inprofile/settings_model.pyand reanchored 7 obsolete static source-location assertions without losing the semantic checks. Both architecture docs updated. No PDIC/PPP/OCR/ordinary/combined/export format changes. - Exact final-head CI SUCCESS, Ubuntu/Windows/macOS × Python 3.10/3.13 6/6 (Ubuntu 3.13 3,927 passed, 3 skipped), risk tier gate success: https://github.com/chigre/Picture_Capture/actions/runs/40168604439. Exact-head OCR smoke SUCCESS 3/3: https://github.com/chigre/Picture_Capture/actions/runs/40168604290. No unresolved review threads.
- Real dictionary scan manual acceptance NOT DONE: GUI/Profile; normal/OCR/combined detection; PDIC/PPP save and reopen; crop/export parity. CI is synthetic. Preserve PR Draft/Open/unmerged, no auto-merge or Ready.
- Next priority for rapid root retirement: large
app.py,paddle_headwords_core.pyandprocessing_core.pyphysical ownership, while explicitly handling stable root imports/pickle/Windows spawn rather than deleting public names to game the root-file counter.
Issue #562 — Phase 16: complete PaddleOCR core implementation physical relocation (2026-10-25)
- Exact final HEAD:
cd49d41d6692f9a4abc560aa5824490fbcae164con Draft PR refactor(#562) + fix(#503): module architecture and R3 recovery safety (consolidated Draft) #663 (Open/unmerged). Implementation extraction5050dfd4ce895d2d64fb82a1cc1680b8fa27a54b, package-import compatibility repaired on later commits, final CJK static owner guardcd49d41d6692f9a4abc560aa5824490fbcae164c. - Physically moved all 154 top-level OCR core function implementations and mutable state from
src/picture_capture/paddle_headwords_core.pyintoocr/headword_core_runtime.py. The root module is now a 434 B deliberate compatibility bridge mapping the same module object intosys.modules, preserving old imports, original function__module__and pickling, public facade monkeypatch mirrors, Windows spawn and lazy bare package import (package__init__.pyremains metadata-only). - Verified Git tree: Direct root Python files 10 → 10 (ABI bridge remains), direct root source bytes 324,171 → 247,298 B (−76,873 B);
paddle_headwords_core.py77,307 → 434 B.profile/setup.pyunchanged. No claim of root-file retirement. - Targeted
tests/test_issue562_retired_paddle_core_phase16_20261025.py, CJK source owner test and Windows OCR source check updated without dropping behavior gates. Both architecture documents updated. - Final exact-head CI: https://github.com/chigre/Picture_Capture/actions/runs/40169845353 SUCCESS after re-running the failed Windows 3.13 job, where the first attempt encountered runner-side Tcl
init.tclread error; unchanged production/test code passed on retry. Full Ubuntu/macOS/Windows × Python 3.10/3.13 6/6, risk-tier gate success; Ubuntu 3.13 3,931 passed, 3 skipped. Exact-head OCR Platform Smoke: https://github.com/chigre/Picture_Capture/actions/runs/40169845451 SUCCESS, 3/3 OS. No unresolved PR review threads. - Still NOT DONE: independent manual acceptance with real scanned dictionary pages: GUI/Profile, normal/OCR/combined detection, PDIC/PPP save/reopen, crop/export parity. Keep PR Draft/Open/unmerged; never mark Ready or automatically merge.
- Next: actual major
processing_core.pyandapp.pyowner migration and a documented strategy for compatibility/pickle modules. Goal of only__init__.pyand__main__.pyat the root is not yet achieved.
Issue #562 — Phase 17: processing core runtime ownership (2026-10-25)
- Final exact HEAD:
6196f6631d011f1519c09ed64dd0364c0583b826, PR refactor(#562) + fix(#503): module architecture and R3 recovery safety (consolidated Draft) #663 Draft / Open / unmerged. - Actual physical relocation: all 83 original
processing_core.pytop-level functions and their cross-domain geometry/ordinary detection/OCR/crop/PPP/PDIC/Windows spawn coordination now execute fromruntime/processing_core_runtime.py. The original root path contains only a 411-byte single-module-identity compatibility bridge, not duplicate algorithms. Old publicprocessingfacade and monkeypatch globals still refer to one real module; historical function and model__module__/pickle paths and spawn-worker callables are preserved. Leaf geometry/crop/detection implementations remain in their coherent domain packages. - Exact Git tree: direct root Python file count 10 → 10 (legacy ABI path deliberately retained), direct root bytes 247,298 → 196,896 B (−50,402 B).
processing_core.py50,813 → 411 B.profile/setup.pyunchanged 36,283 B; still needs staged retirement. The goal of only__init__.py+__main__.pyis NOT yet achieved. - Regression: added
tests/test_issue562_processing_core_runtime_phase17_20261025.py(canonical single-owner, spawn/function/class pickling, monkeypatch, source coordinates, lazy import). Updated both architecture docs, maintained the original crop-delegate architecture guard in the new physical owner, corrected four source-location tests and the two additional AST/benchmark paths without dropping assertions; fixed a Windows-specific new test path assertion. No changes to OCR/ordinary/combined, Tk main-thread, PDIC/PPP/SECTION schemas, crop export or project persistence. - Exact-head CI: https://github.com/chigre/Picture_Capture/actions/runs/40171780655 SUCCESS, all Ubuntu/Windows/macOS × Python 3.10/3.13 6/6, risk-tier CI gate success; Ubuntu 3.13 3,936 passed, 3 skipped. Exact-head OCR Smoke https://github.com/chigre/Picture_Capture/actions/runs/40171780822 SUCCESS, 3/3 OS. No unresolved review threads.
- MANUAL ACCEPTANCE STILL NOT DONE: genuine scanned/photographed dictionary pages across Profile GUI, ordinary/OCR/combined detection, PDIC/PPP save/reopen and crop/export equality. Synthetic tests cannot replace human acceptance. Never merge or mark Ready automatically.
Issue #562 — Phase 18: physically retire root training exporter (2026-10-25)
Exact final HEAD: fd5aa498e247a1c710ca4b67fcd298ac2376cdfe, PR #663 Open / Draft / unmerged.
- Real implementation relocation:
_read_json,_copy_if_exists, andexport_training_pagewith their live dependency/monkeypatch interfaces moved fromsrc/picture_capture/training_export.pytotraining/export_runtime.py. The former root file is deleted. The backward-compatible importpicture_capture.training_exportis provided bytraining_export/__init__.pyas a single live module identity alias (no duplicate states/functions), retaining legacy callable/exception pickle paths. Existingtraining/export_page_v2.py, ZIP publisher, manifest serializer and file formats remain unchanged. - Precise Git tree: direct-root
*.pycount 10 → 9, bytes 196,896 → 193,924 (−2,972 B).profile/setup.pyremains 36,283 B. Still short of only__init__.pyand__main__.py. - Regression:
tests/test_issue562_training_root_retirement_phase18_20261025.pychecks canonical physical owner, exact legacy module state/pickle identity, runtime monkeypatch, lossless Unicode file copies and invalid JSON, bare-package metadata-only import. Existing training ZIP, manifest/context, matcher and v2 export invariants remain gating. Updated both architecture audit documents and tightened architecture guard to ≤9 root files, requiring the live alias and rejecting any returning physical root exporter. - Reanchored 42 stale historical root-inventory or training-source-path assertions and one additional relative-import guard, without deleting tests or losing semantic validations. Initial runs identified these static expectations; corrected and reran the exact final HEAD.
- Exact-head six-combination CI: https://github.com/chigre/Picture_Capture/actions/runs/40173188148 — SUCCESS (Ubuntu / Windows / macOS × Python 3.10/3.13 all 6/6, risk-tier gate success). Ubuntu Python 3.13 3,940 passed, 3 skipped.
- Exact-head three-platform OCR Smoke: https://github.com/chigre/Picture_Capture/actions/runs/40173188147 — SUCCESS 3/3. No unresolved PR review threads.
- MANUAL REAL SCANNED DICTIONARY-PAGE ACCEPTANCE NOT DONE: GUI/Profile, normal/OCR/combined detection, PDIC/PPP save and reopen, crop/export parity. Automated success is not a substitute. Keep PR refactor(#562) + fix(#503): module architecture and R3 recovery safety (consolidated Draft) #663 Draft/Open/unmerged, never mark Ready or auto-merge.
Issue #562 — Phase 19: retire two legacy core files from the package root (2026-10-25)
Exact final Draft PR HEAD: c8cd4f6fedf46ff04837ee74c05517a312dfa7ab (Draft/Open/unmerged). Actual physical root removals: src/picture_capture/paddle_headwords_core.py (434 bytes) and src/picture_capture/processing_core.py (411 bytes). Their original OCR and processing algorithms were already migrated in earlier phases (154 OCR functions to ocr/headword_core_runtime.py, 83 processing functions to runtime/processing_core_runtime.py). Phase 19 replaces these only-identity 400 B files with paddle_headwords_core/__init__.py and processing_core/__init__.py, whose historic imports resolve to the same canonical module objects. Public import behavior, mutable monkeypatches, pickle and Windows spawn identities remain covered by regression tests.
Measured from committed Git tree: direct-root *.py count 9→7, total 193,924→192,010 B (−1,914 B) between previous phase and final HEAD. The two root files account for −845 B. The other −1,069 B was contributed by parallel work moving main-app Tk text report behavior to the UI lifecycle; app.py is 154,408→153,339 B. profile/setup.py is 36,283→36,233 B due to separate parallel compatibility cleanup. We did not overwrite or duplicate those parallel changes.
Architecture and tests: Both architecture audit docs updated; root classification/guard tightened to seven physical *.py files and reject the two retired core files returning. New tests/test_issue562_root_core_packages_phase19_20261025.py checks module-object identity, native paths, old worker/function pickle identities, live monkeypatch propagation and lazy metadata-only package initialization. Existing Phase 16/17 ownership checks reanchored; historical root inventory checks retained with threshold seven. Initial CI exposed two stale old-file assertions (CJK and high-risk processing root entrypoint); the concurrent corrective commit c8cd4f6fedf46ff04837ee74c05517a312dfa7ab reanchored them to subpackage/owner paths without dropping behavior gates.
Exact final-head GitHub Actions: full CI https://github.com/chigre/Picture_Capture/actions/runs/40174478638 SUCCESS, Ubuntu/Windows/macOS × Python 3.10/3.13 6/6 success; risk-tier gate success (Documentation architecture check workflow job was skipped); Ubuntu Python 3.13 3,948 passed, 3 skipped. OCR Platform Smoke https://github.com/chigre/Picture_Capture/actions/runs/40174478763 SUCCESS 3/3. Zero unresolved PR review threads.
Still NOT DONE: human manual acceptance on real scanned dictionary pages covering Profile/Tk UI, normal/OCR/combined detection, PDIC/PPP save/reopen and crop/export equivalence. CI does not replace it. Final target only __init__.py and __main__.py at the root is NOT YET MET (seven remain, five more to retire); high-volume remaining work includes app.py and profile/setup.py. Keep PR #663 Draft/Open/unmerged; do not merge or mark Ready.
Issue #562 — Phase 20: retire public OCR and processing facade root files (2026-10-25)
Exact final HEAD: bc1fd6d1bd48604ab467de3ecd7fd46276b3d4f5; PR #663 stays Draft / Open / unmerged, with zero unresolved review threads.
- Real physical moves: root
processing.py(14,649 B) →processing/__init__.py(actual normal/combined detection facade implementation and crop adapters), and rootpaddle_headwords.py(3,907 B) →paddle_headwords/__init__.py(actual public OCR/evidence/refinement facade). Both old root files deleted. The module import names remainpicture_capture.processingandpicture_capture.paddle_headwords, with the same namespace publication andinstall_core_assignment_mirror(__name__, _core)public monkeypatch contract. Originalprocessing_core/paddle_headwords_coremodule identity aliases, class/function pickle paths and Windows spawn workers remain intact; no duplicated algorithms, modified PDIC/PPP/SECTION serialization or OCR/export formats. - Precise Git root inventory: direct root Python files 7 → 5; direct root bytes 192,010 → 173,454 B (−18,556 B). Remaining:
__init__.py(113 B),__main__.py(159 B),app.py(153,339 B),models.py(7,842 B),ocr_channel.py(12,001 B).profile/setup.pyremains 36,233 B, and only-two-root-files target is not yet achieved. - Architecture/regressions: updated the two architecture docs, physical root classification (5/5), and root count ratchet ≤5; canonical facade mirror ownership still admits only these two historical consumers. The change architecture guard narrowly allows only these exact two legacy package
__init__.pymodules to reinstall their preexisting mirror with exactly(__name__, _core), while still forbidding newly invented module-level installers. Addedtests/test_issue562_public_facades_packages_phase20_20261025.pyfor public module names, no root files, delayed metadata-only imports, pickle/function identity, and live monkeypatch mirroring. Kept historical source-path/CI architecture guards but reanchored them to actual physical owner files; fixed 9 stale source-location cases found by the first complete CI without deleting tests. - Exact final-head CI: https://github.com/chigre/Picture_Capture/actions/runs/40176332533 — SUCCESS, all Ubuntu/Windows/macOS × Python 3.10/3.13 6/6, risk-tier gate SUCCESS; Ubuntu 3.13 3,951 passed, 3 skipped. Exact final-head OCR Smoke: https://github.com/chigre/Picture_Capture/actions/runs/40176332619 — SUCCESS, 3/3. Architecture documentation-check job was skipped by its workflow conditional, not failed.
- Still NOT DONE: real scanned dictionary-page manual verification of GUI/Profile, normal/OCR/combined flows, PDIC/PPP save/reopen, crop/export equality. Automated CI is not a substitute. Do not merge PR refactor(#562) + fix(#503): module architecture and R3 recovery safety (consolidated Draft) #663 or mark Ready.
Activity
refactor(ref): move REF geometry and label layout into owned package (#…
chigre commentedon Oct 17, 2026
2026-10-18 continuation: PR #570 merged successfully with merge commit
5a8f80c8a09f88fb8b3c91096bc1765d88b68e0b. Before merge, PR CI run 39046755152 passed all four jobs (Ubuntu, macOS, Windows, Python 3.10), architecture guard, pytest, GUI smoke and wheel. PR was mergeable with no overlap against the three intervening main commits. Merge commit integrates with latest main; no force update. Open PR search now empty. Postmerge main push CI has not yet been verified (commit PR-workflow query returned no runs; this is not proof that push CI is absent). Next: verify postmerge main push checks, then start a larger 15–30-module cohesive cohort with dependency/import audit and a single focused PR. Do not claim CodeQL or real-scan manual acceptance passed without evidence.chigre commentedon Oct 17, 2026
2026-10-18 02:52 +08 scheduled continuation: recovered previously blocked illustration PR creation. Created Draft PR #571 #571 (head
65d88c7f986102d88268077fe00fe9df86f66674, branchrefactor/p3-illustration-domain-20261018, base main5a8f80c8a09f88fb8b3c91096bc1765d88b68e0b). Verified branch is 12 commits ahead and 0 behind main. Ten physically moved modules: delete_geometry, delete_overlay, entries, export, fill_opacity, geometry, guides, ocr, polygon_edit, profile. Root count projected 240 -> 230 after merge (not yet merged). PR CI run https://github.com/chigre/Picture_Capture/actions/runs/39060008071 currently queued, not passed; no reviews yet, Draft remains open, no merge. Next checkpoint: inspect CI matrix, CodeQL and architecture guard; fix any failures; mark ready and merge only when green, then verify postmerge main CI; continue larger coherent cohorts. Do not claim postmerge root count or CodeQL green until verified.chigre commentedon Oct 17, 2026
2026-10-18 03:54 +08 checkpoint: PR #571 #571 moved from Draft to ready (GitHub mergeable=true), CI run 39064019345 verified all four jobs successful (Ubuntu, macOS, Windows, Python3.10), and merged successfully with merge commit
49da6a5fb7cd3435aa9c102c7ebf78f2bf5fb8be, expected head7385eabe3ad6caa2cd6a3e1111df748e29d37793. This completes ten physical illustration helper moves, projected root count 240 -> 230; do not infer postmerge CI success from PR CI. Current commit workflow query exposes PR-triggered runs only and returned none for merge SHA; independent main push CI/CodeQL not yet verified. Next: verify main push checks; inventory next 15–30 safe modules and migrate as a cohesive phase. Issue remains open.chigre commentedon Oct 17, 2026
2026-10-18 next-turn checkpoint: verified PR #571 is closed and merged (merge SHA
49da6a5fb7cd3435aa9c102c7ebf78f2bf5fb8be), no open PRs in repository. Roadmap on main contains 10-module illustration cohort; root file count 230 remains an expected postmerge count rather than an independently enumerated inventory. Combined status and PR-filtered workflow lookup for merge SHA both returned empty; therefore main push CI and CodeQL are not independently verified. No new migration commit or PR in this turn; do not count additional moved files. Next execution should obtain actual source tree/module import graph, prioritize remaining illustration detection/association or independent training modules, migrate a cohesive batch, and run full checks before merge. Preserve Issue open.chigre commentedon Oct 17, 2026
2026-10-18 04:52 +08 real migration checkpoint: main base
49da6a5fb7cd3435aa9c102c7ebf78f2bf5fb8be, no conflicting PR before work. Created branchrefactor/p3-illustration-candidate-size-20261018, Draft PR #572 #572. Physically moved 2 root modules without shims:illustration_candidate_size.py->illustration/candidate_size.py(updated models import, processing_core, illustration_detection, focused test);illustration_cross_column.py->illustration/cross_column.py(preserved lazy_rle_componentsimport via parent package, updated detection and cross-column test). Current head2dafc18954c0f51e90067d2e86a92769b0348c34. Expected root count main 230, branch 228 (not independently enumerated). PR remains Draft; cross-platform CI/CodeQL not yet verified and no merge. More illustration modules (labels, detection, batch association) require separate import/persistence audit; no other conflicting PR should start. Next checkpoint: update PR description to 2 moves, inspect latest CI, fix and merge only on green, then continue. Note this is a smaller-than-target cohort, not 15–30.chigre commentedon Oct 19, 2026
2026-10-19 09:51 +08 hourly execution checkpoint: PR #572 has merged at 2026-10-19T01:50:59Z, merge SHA
3ac722227ae8684c8cd4ec593ada4f9acb75fba0, 2 physically relocated illustration modules (candidate_size, cross_column); prior PR CI 39146232032 all four platform jobs success. Main root count expected 228 from verified 230 minus two (postmerge tree not independently recounted this run); main push CI on new SHA not yet independently verified. No other open PR before new work. Compared training branchrefactor/p7-training-domain-20261018against new main: 10 commits ahead, 1 behind, roadmap overlap. Created Draft PR #573 #573 at head1205c6616b91a1b03e62167b9a3b4bdaad104ea1, containing 3 physically moved training modules (export_page_understanding, export_unified_layout, export_v3), consumer/test updates, ownership guard and roadmap. Training branch root count previously independently counted 227 relative to old main, not yet recounted after #572 integration. No new PR CI or CodeQL result for #573 yet; do not merge until all gates pass and roadmap integration resolved. Total previously reported merged 25 + 2 = 27; 3 more pending PR. Remaining 228 root modules need explicit package classification and preserve-by-design explanations; no assertion that all 228 should move. Next: inspect #573 CI, fix, resolve branch-behind roadmap, complete CodeQL and merge, then postmerge main CI and larger batches. Issue stays open; hourly task remains enabled.chigre commentedon Oct 19, 2026
2026-10-19 15:59 +08 repair checkpoint. main
1c5bd829a18fc320fa8dc628c794951bfb31f726(last independently counted 225 root .py). On branchrefactor/p4-layout-overlay-leaves-20261019, fixed brokenlayout/indent_visibility.pylate import (from .. import layout_visualization_summary), changed productionlayout_visualization_summary.pyand test imports to canonicallayout.indent_visibility, updated test file-path assertions, deleted old root module, added architecture ownership guard and roadmap, removed incomplete duplicatedlayout/role_provenance.pythat had no migrated callers. Actual physical migration: 1 module, branch expected root count 224; no shim. Created Draft PR #574 #574 head6dc1bf20ce345a697f8c38376c26ccc41215bccf. CI/CodeQL not yet confirmed; DO NOT MERGE until cross-platform tests and main postmerge verification. Previously merged 30 modules, 1 pending in #574. Next: check PR CI and CodeQL, repair failures, ready/merge, main CI, continue larger cohesive batches. Issue remains open, hourly task enabled.chigre commentedon Oct 19, 2026
2026-10-19 continuation checkpoint: PR #574 #574 merged at
36a83927da04fec663b63f7351eda248de3df12b; physically moved one root Layout module tolayout/indent_visibility.pywithout shim. Verified PR CI #39219627706 all four jobs success (Ubuntu, Windows, macOS, Python 3.10; pytest, GUI smoke, wheel, architecture guard on Ubuntu). Independently checked main has canonicallayout/indent_visibility.pyand former rootlayout_indent_visibility.pyis absent. No open PRs currently. Previously merged 30 + 1 = 31 root module migrations; expected main root count 224, pending independent complete tree enumeration. Main push CI and CodeQL for merge SHA not yet independently verified in this turn, so final acceptance not claimed. Next: verify new main CI/CodeQL, enumerate root modules, audit next cohesive 15–30-module batch and its imports/tests, proceed via guarded PR. Issue remains open; hourly task stays active.chigre commentedon Oct 19, 2026
2026-10-19 16:10 +08 new Layout cohort checkpoint: main
36a83927da04fec663b63f7351eda248de3df12b, no open PR before start. Created branchrefactor/p4-layout-provenance-lane-20261019, Draft PR #575 #575 HEAD0d735421d4df12493e1dc5993842e81bf9c976c2. Physically moved 2 root modules:layout_role_provenance.py->layout/role_provenance.py;layout_lane_summary_extension.py->layout/lane_summary_extension.py, no root shims. Updated production consumerslayout_visualization_shared.py,layout_visualization_summary.py, three test files, ownership guard, roadmap. GitHub compare confirms two real renames, branch ahead 11 behind 0. Root count expected 224 -> 222, not yet independently enumerated. Total merged 31, 2 pending. CI/CodeQL/reviews/main postmerge not yet accepted: Draft remains open, no merge. Remaining larger Layout UI, detector, PDIC/persistence, GUI/CLI entrypoints need separate dependency and risk review; do not change reading direction, Y refinement, GPU ownership, Windows spawn. Next: check PR #575 cross-platform CI and CodeQL, repair any failures, merge only on green, verify main, then inventory next cohesive batch. Issue open, hourly automation continues.chigre commentedon Oct 19, 2026
2026-10-19 16:33 +08 — Issue #562 large-cohort checkpoint (do NOT close): PR #575 merged at main SHA
718a532f38e678335399de703b2b712da83a6e0e(2 moved Layout helpers); independently verified postmerge push CI #39222063886 and CodeQL (actions/python) all green. Main Git-tree root Python count 222. To avoid conflict with already-merged PR #575, staged 17 additional Layout module relocations as one atomic Git tree/commit based directly on new main, creating Draft PR #576 #576, head8e2ea8e3ec4477f32ec124a40a6dfb7fb5e0fe2e; GitHub compare confirms 17 real renames, 80 changed files, updated production imports/lazy imports, training/GUI callers, tests, architecture guard and ownership test. New root Python count 205, independently enumerated from complete, nontruncated tree. No new root compatibility shims; deliberate retained no-oplayout_visualization_role_theme.pycompatibility entrance. PR #576 cross-platform CI #39223336402 and CodeQL currently running; NOT accepted/merged. Cumulative merged moves 33 (31 + 2 from #575), pending 17 -> total 50 when accepted. Remaining root Layout owners: layout_composition, layout_core_understanding, layout_detection, layout_detection_actions, layout_detection_legacy, layout_detector_live_binding, layout_physical_indent, layout_profile_anchor, layout_rows_cache, layout_step_replay_ui, layout_transform, layout_visualization_role_theme (retained compat), layout_visualization_shared, layout_visualization_summary, layout_visualization_ui, layout_visualization_ui_v2, layout_visualization_ui_v3. Remaining P2 refinement, P3 illustration pipeline, P5 OCR, P6 proofreading, P8 project/profile, P9 persistence require future isolated cohorts. Next checkpoint: fix any #576 CI/CodeQL failures, verify reviews and merge safety; transition Draft to Ready only with permission, never bypass; verify push main after merge and continue 15–30 module batches. Current blocker: GitHub denied Ready transition on #575 in prior run. Issue and hourly automation remain active.chigre commentedon Oct 19, 2026
2026-10-19 16:38 +08 — Large Layout cohort merged / postmerge verification pending: PR #576 #576 merged successfully at
d09c32aa75531fcb15d42b5b028c68c45e3ff15fafter Ready transition and green full HEADbbca5253303355c4964be65bf2e4a83fed55bf07CI #39223584001 (Ubuntu, Windows, macOS, Python 3.10, GUI smoke, wheel, pytest, architecture guard all success) and CodeQL (Python/Actions success). First CI run caught 2 stale imports; fixedapp.pyPPP preflight and no-indent monkeypatch test; rerun completely green, no tests removed/guards relaxed. 17 additional root modules physically moved, GitHub diff confirms 17 renames, no shims. Prior #575 separately merged 2 leaves; this continuous run has merged 19 Layout modules total. Exact nontruncated main Git tree now independently enumerated 205 root Python files, down from 224 before #575; cumulative migrations merged 50 (31 prior + 19 this run). Main push CI run #39223937518 and CodeQL currently in progress; NOT yet claim final postmerge green. Historical rootlayout_visualization_role_theme.pyintentionally retained (named no-op compatibility). Remaining Layout root modules (17):layout_composition,layout_core_understanding,layout_detection,layout_detection_actions,layout_detection_legacy,layout_detector_live_binding,layout_physical_indent,layout_profile_anchor,layout_rows_cache,layout_step_replay_ui,layout_transform,layout_visualization_role_theme(retained),layout_visualization_shared,layout_visualization_summary,layout_visualization_ui,layout_visualization_ui_v2,layout_visualization_ui_v3; these need distinct detector/hooks/spawn/mutation risk review. Other packages P2 refinement, P3 illustration pipeline, P5 OCR/GPU, P6 proofreading, P8 project/Profile, P9 PDIC/PPP/SECTION persistence remain open, each to be separately classified. Next checkpoint: independently confirm #576 postmerge main push CI/CodeQL, then next cohesive 15–30 module cohort and full regression. Issue remains OPEN; hourly automation enabled; 24h aspirational target elapsed but safety criteria unchanged.chigre commentedon Oct 19, 2026
2026-10-19 16:42 +08 — POSTMERGE ACCEPTANCE for large Layout cohort: PR #576 #576 merged SHA
d09c32aa75531fcb15d42b5b028c68c45e3ff15f. Independently confirmedmainpush CI #39223937518 success (Ubuntu/macOS/Windows jobs all green, Python 3.10 compatibility green; GUI smoke, focused/full pytest, architecture guard and wheel ran successfully in their applicable CI jobs). Main CodeQL Analyze (python) and Analyze (actions) success. Main Push on main #39223937439 success. PR #575+ #576 together moved 19 actual Layout modules, no root shims; verified main root Python count 224 → 205; merged migration count cumulatively 50 from original PR #560 onward (module count is not percent of all eligible work). Issue #562 remains OPEN because other root modules and P2/P3/P5/P6/P8/P9 owners remain, and real scanned-page GUI acceptance has not been provided. Sprint target Oct 18 has elapsed without full completion, with remaining 205 root Python files including intentional compatibility modules; this is NOT license to close the Issue or disable the hourly task. No open PR as of this checkpoint. Next recovery: maind09c32aa..., choose next coherent 15–30 files by package ownership and complete full import/caller/test/guard/CI/CodeQL cycle, prioritize true moves and avoid crossing PDIC/PPP/SECTION, refinement Y, spawn/GPU critical boundaries without isolated evidence. Existing hourly task must remain enabled.chigre commentedon Oct 19, 2026
2026-10-20 checkpoint: Existing 7-module Crop/UI Overlay branch 031c513 was successfully opened as Draft PR #577 (#577), base main d09c32a, ahead 3/behind 0; 29 changed files including 7 actual moves, ownership guard and tests. PR CI run 39295537348 currently QUEUED, no conclusion. Reviews 0, review threads 0. Root count from independently verified previous tree: main 205, branch 198; cumulative previously merged moves 50. Do not merge until Python3.10 Windows/macOS/Ubuntu, GUI smoke, wheel, guard, CodeQL, reviews and main push CI gates are checked. No new conflicting PR while #577 is open. Next resume point: check run 39295537348 jobs and fix any failures, merge only after acceptance, then start cohesive 15–30 module batch. Sprint target expired; remaining modules require per-package classification and retained-entry rationale. Issue remains open.
chigre commentedon Oct 19, 2026
2026-10-20 CI repair checkpoint: PR #577 initial run 39295537348 failed in all four jobs (python310-compat, Windows, Ubuntu, macOS). Confirmed tests/test_core.py:4895 referenced deleted root crop_preview_display_settings.py. Committed minimal test-only path correction to canonical crop/preview_display_settings.py on PR branch, new SHA 7090118. No production algorithm or shim changed; migrated modules still 7, main root 205 and branch root 198 (previous verified count). New commit CI run not yet visible when queried; awaiting CI, CodeQL and review checks before any merge. Next resume: poll CI for 7090118, diagnose further failures, merge only after complete green acceptance and verify main CI. Issue remains open.
584 remaining items
chigre commentedon Oct 29, 2026
PC-CQ v1.3.0 G1 — failed PDIC save must not restore over newer human UI input (2026-10-30)
Prior exact fully-green E2:
8a16c60fad2a34e8020db63edf5f3d77027db8abwith CI 6/6 + Risk-tier, OCR 3/3, and CodeQL Python+Actions 2/2.Fail-first: tests-only
4cbccfba2a5f3cd429d1d081cf4852f96a9fa405, CI #40943370182 Ubuntu Python3.10 and 3.13 3 expected failures, 4803 passed, 3 skipped on each. With original PDIC bytes unchanged, main save restored a stale Tk editor snapshot over a newer Chinese word; review save restored older simplified cache/flags despite newer ReviewWindowvars; review failure restored stale main canvas editor over newer input. Two healthy unchanged-input rollback controls passed.Constrained source fix:
86ffc2d5961846f6a11571e4f3197b4cbcd667e4changes onlyproofreading/save_safety.pyplusdocs/architecture/R3_G1_SAVE_FAILURE_NEWER_UI_INPUT_20261030.md. Bothprotect_*_pdic_commitcontexts now verify unchanged same-page disk and original Tk binding identities/text; ReviewWindow also verifies original word-input variable identities/text. On any newer or uninspectable input, leave user text, Entry and simplified cache untouched, mark_deferred_save_uncertainand propagate original failure. Original safe rollback remains for verified unchanged inputs. No public method signature, OCR, PDIC/PPP/SECTION schema or source X/Y changes.Canonical checkpoint
cb18e64607915739c61e0dab0762b489b8148bf6updatedCORE_QUALITY_STATE.json. Source CI #40943816519 and OCR #40943816667; exact final checkpoint CI #40944024409, OCR #40944024511, PR CodeQL #40944019867 were still running/queued when recorded. Do not claim new E2 6/6 without final exact-head evidence.This is conservative save-time UI version checking, not cross-process OS CAS/locking or multi-file power-loss atomicity. Real Windows dictionary E3 (IME/paste/FocusOut, Undo×20/Redo×20, PDIC/PPP/SECTION save-reopen and pixel/crop parity), #483 W1–W11 NOT PERFORMED. Keep sole PR #663 Draft/Open/Unmerged, main unchanged, #503/#562/#483 OPEN.
chigre commentedon Oct 29, 2026
2026-10-30 final exact-head E2 PASS — G1 newer UI input rollback protection. Canonical
cb18e64607915739c61e0dab0762b489b8148bf6: CI #40944024409 completed SUCCESS, Windows/macOS/Ubuntu × Python3.10/3.13 6/6 and Risk-tier CI gate SUCCESS; OCR #40944024511 3/3 SUCCESS; PR CodeQL #40944019867 Python+Actions 2/2 SUCCESS. Regression was proved before source fix by test-only4cbccfb, Ubuntu Python3.10 and 3.13 3 expected failures/4803 passed/3 skipped: newer main Tk text, newer review simplified cache, and review-time newer main Tk text were all overwritten on failed save. Source repair86ffc2dand STATE checkpointcb18e64now verified by exact-head E2. This does not count as native Windows E3 (IME/FocusOut/paste, 20× Undo/Redo, PDIC/PPP/SECTION reopening, pixel/crop parity), and #483 W1–W11 are still NOT PERFORMED. No multi-file OS atomic CAS claim; PR #663 remains sole Draft/Open/Unmerged, main unchanged, #503/#562/#483 OPEN.chigre commentedon Oct 29, 2026
PC-CQ v1.3.0 — Windows E3 local evidence preparation, NOT E3 execution (2026-10-30)
Prior fully green exact SHA:
cb18e64607915739c61e0dab0762b489b8148bf6: CI 6/6 + Risk-tier, OCR 3/3, CodeQL Python+Actions 2/2 successful.New bounded tooling commit:
b98dd6b7b15c2ca11a2a32df821937df0b40a0d7adds (i)scripts/r3_e3_local_evidence.py, (ii) 8 synthetic privacy/consistency and CLI regression teststests/test_r3_e3_local_evidence_20261030.py, (iii)docs/roadmaps/R3_WINDOWS_E3_LOCAL_EVIDENCE_RUNBOOK_20261030.md. The script reads explicitly supplied real image/PDIC/PPP/SECTION/manual_selection/simplified file paths and creates local-exclusive JSON records containing only stage, exact source Git SHA, existence/size/SHA256. Supports before / after / reopen comparison, flags source-image drift and unstable reopened sidecars, refuses symlink artifacts and report overwrite. It never includes raw images, words or private paths in JSON; does not create a human PASS verdict. It cannot verify original-image pixel crop alignment, correctness of OCR, IME, 20 Undo/Redo nor manual sidecar ownership.STATE checkpoint
25ed72417c195888fce0534c1c6bdf3bcdc971a2records limits and follow-up. New-source CI #40947875601 and OCR #40947875427 (3/3 SUCCESS). Final exact-checkpoint CI #40947994780, OCR #40947994783, CodeQL #40947988211 must finish before new exact-head E2 can be declared. This is a new evidence-helper package, not an asserted production defect / artificial fail-first repair.Human gate still OPEN: No user-provided real Windows dictionary operation was performed; R3 E3 NOT PERFORMED, #483 W1–W11 NOT PERFORMED. The runbook requires an authorized Windows operator and local-only evidence; screenshots/real scans must not be pushed to GitHub absent consent and rights. No OS-wide CAS/multi-file crash atomicity claim. Preserve sole PR #663 Draft/Open/Unmerged, main unchanged, #503/#562/#483 open.
chigre commentedon Oct 29, 2026
2026-10-30 G1 — local-only Windows E3 evidence helper + verified fail-first sidecar-slot guard
Previous exact-head green baseline:
cb18e64607915739c61e0dab0762b489b8148bf6: CI #40944024409 6/6+Risk-tier, OCR #40944024511 3/3, CodeQL #40944019867 Python+Actions 2/2.Evidence-preparation delivery, not acceptance:
b98dd6b7b15c2ca11a2a32df821937df0b40a0d7addsscripts/r3_e3_local_evidence.py, eight synthetic tests intests/test_r3_e3_local_evidence_20261030.py, anddocs/roadmaps/R3_WINDOWS_E3_LOCAL_EVIDENCE_RUNBOOK_20261030.md. A real operator can locally capture exact Git SHA and only SHA-256/size/existence for six explicitly supplied image/PDIC/PPP/SECTION/manual_selection/simplified slots before save, after save and after reopen; compare source-image and sidecar stability. No words, image bytes or absolute file paths copied into the reports. Every report remainsUNVERIFIED_REQUIRES_HUMAN.Safety review found and reproduced input-slot collision: tests-only
6ad65191bee5252df9517dff249b4da117643c96CI #40948412990 Ubuntu Python3.13 1 fail/4814 pass/3 skip, macOS Python3.13 1 fail/4815 pass/2 skip: choosing--outputequal to a missing manual sidecar created the JSON at that owned input slot.6317e73e6498372b7572619a43bbd60a5fe8b58bnow rejects an output path resolving to any input slot, including missing files, before touching disk. Existing-exclusive-output safeguards retained.Canonical checkpoint:
0ffcaa4731254b30828ceae5e68d8661d12e3538updates CORE_QUALITY_STATE. Fix CI #40948625207; final exact-head CI #40948859389, OCR #40948859172, PR CodeQL #40948849199 were pending at this observation. Do not claim exact final E2 pass until all complete.Human gate is still OPEN: Real Windows authorized-dictionary E3 and #483 W1–W11 are NOT PERFORMED. CI tests only validate the evidence helper, not IME, source-image pixel X/Y, crops, human words, Undo/Redo×20, or PPP/SECTION actual reopening. Keep all private real-scan content and reports local, don't upload to GitHub. No cross-process CAS, OS lock or multi-file crash atomicity claim. Sole PR #663 remains Draft/Open/Unmerged; main unchanged, #503/#562/#483 OPEN.
chigre commentedon Oct 29, 2026
Final exact-head E2 VERIFIED (2026-10-30) — Windows E3 local evidence helper + absent input-slot collision prevention. HEAD
0ffcaa4731254b30828ceae5e68d8661d12e3538has CI #40948859389 COMPLETED/SUCCESS Windows/macOS/Ubuntu × Python3.10/3.13 6/6, Risk-tier gate SUCCESS; OCR #40948859172 3/3 SUCCESS; PR CodeQL #40948849199 Python + Actions 2/2 SUCCESS. Synthetic helper sourceb98dd6b, fail-first6ad6519confirmed a missing-sidecar output-slot collision (Ubuntu py3.13 1 fail/4814 pass/3 skip, macOS py3.13 1 fail/4815 pass/2 skip); fix6317e73and checkpoint0ffcaa4passed E2. The helper records local before/after/reopen hashes, not actual Windows E3 human results. No real dictionary scanned page was manipulated; real Windows R3 E3 NOT PERFORMED and #483 W1–W11 NOT PERFORMED, no image/crop/IME/20-step Undo acceptance claim, no OS multi-file atomicity claim. PR #663 stays Draft/Open/Unmerged, main unchanged, #503/#562/#483 OPEN.chigre commentedon Oct 29, 2026
PC-CQ v1.3.0 G1 — redact Windows E3 local evidence CLI error path leakage (2026-10-30)
Baseline fully green exact head:
0ffcaa4731254b30828ceae5e68d8661d12e3538: CI 6/6 + Risk-tier, OCR 3/3, CodeQL 2/2.Fail-first test-only:
42285de5de7b11ed1da0ece4b8f562f6afef1f78, CI #40950383226 Ubuntu Python3.13 2 expected failures, 4,815 passed, 3 skipped. The E3 evidence helper reports neither private paths nor dictionary words in JSON, but the originalprint(str(exc))exposed full private source/output paths through FileNotFoundError in CLI stderr. New tests reproduce missing output directory and missing before-manifest in compare mode.Minimal source/doc repair:
c0cd4f1884223935acaddff155e75ff58ff34699only changesscripts/r3_e3_local_evidence.pyerror diagnostics to print the exception class and numeric OS errno (if any), never raw exception strings. Updateddocs/roadmaps/R3_WINDOWS_E3_LOCAL_EVIDENCE_RUNBOOK_20261030.mdwarns PowerShell command history, screenshots and even private-image SHA fingerprints remain potentially sensitive. No changes to source image reading, evidence JSON schema, PDIC/PPP/SECTION, OCR, or path collision safeguards.Canonical STATE checkpoint:
0707b6201f93843e5cb0369f6d902029ea107e37. Source CI #40950743883 / OCR #40950744019 and final exact-head CI #40950919097 / OCR #40950918946 / CodeQL #40950910681 must finish before new exact-head E2 is declared green.Real licensed-dictionary Windows E3 NOT PERFORMED; #483 W1–W11 NOT PERFORMED. The tool only collects local hashes; no human E3 PASS or OS CAS/multi-file crash atomicity claim. Sole PR #663 remains Draft/Open/Unmerged; main unchanged; #503/#562/#483 OPEN.
chigre commentedon Oct 29, 2026
G1 exact final checkpoint E2 COMPLETE / SUCCESS — 2026-10-30. HEAD
0707b6201f93843e5cb0369f6d902029ea107e37has CI #40950919097 completed SUCCESS, Windows/macOS/Ubuntu × Python3.10/3.13 6/6 + Risk-tier gate; OCR #40950918946 3/3 success; PR CodeQL #40950910681 Python+Actions 2/2 success. Fail-first42285deCI #40950383226 confirmed two path leaks in stderr on Ubuntu py3.13 (2 failed, 4815 passed, 3 skipped); source/doc repairc0cd4f1redacts raw private path-bearing exception strings while retaining class/errno, and is verified at final exact HEAD. No PDIC/PPP/SECTION/OCR, image pixels/coordinates or local-only JSON evidence schema changes. Real authorized Windows scanned-dictionary E3 NOT PERFORMED (Chinese IME/FocusOut, 20× Undo/Redo, saved sidecar reopening and source XY/crop), #483 W1–W11 NOT PERFORMED. No OS-level CAS or multi-file crash atomicity claim. Sole PR #663 remains Draft/Open/Unmerged, main unchanged, issues #503/#562/#483 remain open.chigre commentedon Oct 29, 2026
2026-10-30 G1 — Windows E3 local evidence: application-owned legacy/managed file path resolution
Prior fixed-head green baseline
0707b6201f93843e5cb0369f6d902029ea107e37: CI 6/6+Risk-tier, OCR 3/3, CodeQL Python/Actions 2/2.Actual operator-evidence problem: existing
scripts/r3_e3_local_evidence.py capturerequired six manual guessed file paths; legacy case-insensitive PDIC/PPP, managed-v2 storage, migrated historical SECTION read fallback and manual-selection/simplified routes are different. Hashing a plausible but non-active sidecar may falsely imply save/reopen stability.Fail-first: test-only
5cf04227139ec5373f27a6d03a005914d8e0fe85, CI #40952334445, Ubuntu Python3.13 4 expected failures, 4,819 passed, 3 skipped (missing project path resolver + missingcapture-pagecommand); missing-page and output collision negative controls passed.Bounded implementation:
81464293470cb085be5d31ea6b9fb5249666253daddscapture-page --page <project-root scanned image>, with read-only reuse of the application'spdic_path_for_image,ppp_read_path_for_image,page_sections_read_path_for_image,simplified_review_path_for_imageandocr_cache_root. Supports legacy/managed-v2 and historical SECTION read fallback, never writes project/sidecar inputs; existing explicit six-pathcaptureunchanged and output-slot collisions still rejected. Tests:tests/test_r3_e3_project_path_resolution_20261030.py.docs/roadmaps/R3_WINDOWS_E3_LOCAL_EVIDENCE_RUNBOOK_20261030.mdnow prefers this auto mode when the image is a root-level project page; custom layouts still require explicit paths.Canonical STATE/checkpoint:
abb6c38c03bf6c36094d14971c271d577c77cd72. Source CI #40952563626, OCR #40952563652 and final exact-head CI #40952815377, OCR #40952815607, CodeQL #40952808488 require verified completion before new E2 success claim.Human boundaries: real authorized scanned-dictionary Windows E3, Chinese IME/paste/FocusOut, Undo20/Redo20, persisted PDIC/PPP/SECTION reopen, original source pixel X/Y and crop parity all remain NOT PERFORMED; #483 W1–W11 also NOT PERFORMED. Hash capture/report never constitutes human acceptance, and no cross-process OS atomic CAS/multi-file crash atomicity is claimed. Keep sole PR #663 Draft/Open/Unmerged, main unchanged and #503/#562/#483 OPEN.
chigre commentedon Oct 29, 2026
PC-CQ v1.3.0 G1 — E3 evidence auto-resolves actual project sidecar paths (2026-10-30)
Previous exact-green head:
0707b6201f93843e5cb0369f6d902029ea107e37, CI 6/6+Risk-tier, OCR 3/3, CodeQL Python+Actions 2/2.Actual operator-evidence risk: manually typing six paths could hash a stale, non-active PDIC/PPP/SECTION/manual/simplified sidecar. Test-only
5cf0422CI #40952334445 Ubuntu py3.13 4 expected red, 4819 pass, 3 skip: no legacy/managed/SECTION fallback resolver, nocapture-pagecommand. Source8146429addscapture-page --page <root-level scanned page>using the productionproject_storageread path owners, preserving the existing explicit six-path mode and output/input slot safety.Cross-platform test portability: the source-fix CI #40952563626 exposed a test-only false failure on case-insensitive macOS: path spelled
001.pdicis a valid alias for existing001.PDIC.56658f4corrects only the regression assertion to compare real file identity withsamefile(), not string casing; no production behavior weakened.abb6c38and final canonical STATEfb2658014e2d78e5bc1cf5267a44b97d0d5f393bdocument exact evidence.Final checkpoint E2: CI #40953238895, OCR #40953239173, PR CodeQL #40953230351. OCR 3/3 succeeded and CodeQL Python+Actions 2/2 succeeded, Risk-tier succeeded; six-job CI must be verified at exact final head before declaring full E2 green.
Human acceptance remains open: no real licensed Windows scan was operated, no CJK IME/FocusOut, 20× Undo/Redo, PDIC/PPP/SECTION reopen or pixel X/Y/crop parity was manually tested. Real E3 and #483 W1–W11 NOT PERFORMED. Hash evidence is not a human verdict; no OS-level CAS/lock or multi-file crash atomicity. PR #663 remains sole Draft/Open/Unmerged, main unchanged, issues #503/#562/#483 OPEN.
chigre commentedon Oct 29, 2026
2026-10-30 G1 — R3 Undo/Redo diagnostic read failures fail closed; operator E3 explicitly deferred
Previous fully green exact HEAD:
fb2658014e2d78e5bc1cf5267a44b97d0d5f393b: CI 6/6 + Risk-tier #40953238895, OCR 3/3 #40953239173, PR CodeQL Python+Actions 2/2 #40953230351 success.Verified fail-first: tests-only
5ee9d06e15e8276886fde9c838b182d985e45688, CI #40955489916: Ubuntu Python3.13 2 expected failures, 4826 passed, 3 skipped; macOS Python3.10 2 expected failures, 4827 passed, 2 skipped. InReviewSessionHistory._apply, ifsnapshot_review()returns None, a second diagnostic PDIC or simplified sidecarread_bytes()could raisePermissionErrorstraight out of user Undo/Redo. Controls confirm unchanged disk with temporary Tk binding failure retains history for retry and actual foreign PDIC/simplified changes invalidate history.Minimal fix:
284755145064237b4ccb782545e6ef169be5d01achanges only thecurrent is Nonebranch ofsrc/picture_capture/proofreading/transactions.py. A diagnosticOSErroris not proof of unchanged source: invalidate unsafe Undo/Redo frames and return False, with no source overwrite or uncaught diagnostic error. Healthy transient Tk rebind still retains history for safe retry. Architecture notedocs/architecture/R3_G1_UNDO_REDO_UNREADABLE_DIAGNOSTIC_20261030.md.Canonical STATE checkpoint
fc5de64451ec7b60ebfc2d9a8d7e5bd4157e8753. Source CI #40955750248, OCR #40955750314 (3/3 success); final exact-head CI #40956098786, OCR #40956099126, PR CodeQL #40956092623 pending; do NOT mark latest E2 all-green until confirmed.User instruction this turn: pause/skip actual Windows E3 and #483 W1–W11, continue later independent engineering tasks. Therefore E3 and W1–W11 remain NOT PERFORMED, not verified, but independent synthetic E2 work continues; no R6 learning with unverified labels, R8 private scans, OS-level multi-file crash atomicity or claims of human acceptance. Keep sole PR #663 Draft/Open/Unmerged, main unchanged, #503/#562/#483 open.
chigre commentedon Oct 29, 2026
G1 final exact-head E2 VERIFIED (2026-10-30), Windows human acceptance explicitly paused by user.
fc5de64451ec7b60ebfc2d9a8d7e5bd4157e8753: CI #40956098786 completed/success, Windows/macOS/Ubuntu × Python 3.10/3.13 6/6 and Risk-tier CI gate success; OCR #40956099126 3/3 success; PR CodeQL #40956092623 Python+Actions 2/2 success. Tested failure-first5ee9d06: Ubuntu3.13 2 expected failures/4826 passed/3 skipped, macOS3.10 2 expected failures/4827 passed/2 skipped; source fix2847551treats inaccessible PDIC/simplified Undo/Redo diagnostic readback as unverified and invalidates history, rather than throwing PermissionError; unchanged-source transient Tk rebind retains its safe retry frame. STATE checkpointfc5de64committed; no new SHA after green validation.Next independent engineering: G1 further evidence-backed owner audit if needed, then G2 bounded
app.pyowner extraction, followed by G3 R5 pure-score parity and opt-in R4; do not claim R4/R5 implemented here. Per the latest explicit user instruction, actual Windows R3 E3 and #483 W1–W11 manual acceptance are DEFERRED / NOT PERFORMED, not PASS and not blocking synthetic E2-only work. R6 human-label training and R8 real scanned dictionary benchmarking remain gated. Sole PR #663 is Draft/Open/Unmerged; main unchanged; #503/#562/#483 remain OPEN; no OS multi-file crash-atomicity claim.chigre commentedon Oct 30, 2026
2026-10-30 #663 G3 R4.2 large-batch automated E2 checkpoint: exact final HEAD
1611f7c60a5f3f93ca191e01b9ee7cc47248c493, Draft/Open/Unmerged; mainec20989ea8c026cca5337293e67850b6b6df30f2unchanged. CI 41078318086 six OS/Python 6/6 + Risk-tier SUCCESS; OCR Smoke 41078318090 3/3 SUCCESS; CodeQL Python/Actions 2/2 SUCCESS. G3 local-only, user-opt-in (default OFF) aggregate stage timing + stale initial/prefetch/render worker epoch protection added, with red-first tests and Windows operator runbook. No real scans, human verified quality/performance claims, R3 Windows E3 or #483 W1–W11 acceptance; all NOT PERFORMED, #503/#562/#483 remain OPEN. No merge, Ready or new PR; no root Python file retirement claimed in this G3 batch.chigre commentedon Oct 31, 2026
PC-CQ/#562 2026-10-31 checkpoint — R3/G3 save callback ownership; branch architecture count
main@ec20989ea8c026cca5337293e67850b6b6df30f2unchanged; sole open Draft PR #663 exact final HEAD2f303379fae26906ac2674ff152139bc97dbb499, not merged/Ready; 0 unresolved review threads.src/picture_capture/*.pymain 15, Draft PR refactor(#562) + fix(#503): module architecture and R3 recovery safety (consolidated Draft) #663 5 (including__init__.py,__main__.py). This is the entire unmerged branch's reduction, not a migration of ten files in this work packet. The remaining Draft root entries are__init__.py,__main__.py,app.py,models.py,ocr_channel.py; do not retire an API entry without a compatibility contract.3ed584a5adds a synchronous-save scheduler acknowledgement barrier and exactly-once terminal callback ownership in G3/R3 focused proofreading. Test-first140d981dwas observed red CI #41190094623 (Ubuntu/macOS Python3.13 each 6 targeted failed). Native Tk synthetic integration9408c31d; one initial macOS aggregate final-source assertion failed on #41190240419 attempt 1, while the same-SHA job rerun succeeded; diagnostic149ea7bcand final five-consecutive-real-file/Entry observation oracle1e89f4c1preserve every exact PDIC/PPP/SECTION/settings/image comparison. No privacy leak or source-schema changes.Full evidence: PR #663 audit comment.
chigre commentedon Nov 3, 2026
2026-11-03 #562 / sole Draft PR #663 — two new fixed-head R4.2 safety batches verified
ec20989ea8c026cca5337293e67850b6b6df30f2, sole Draft PR #663 final documentation HEADb27db452, Open/Unmerged; PC-CQ/B3 R3 remaining transactions: OCR-linked deletion/manual override, complex undo/redo and operator validation #503/持续架构整理:分阶段清理 src/picture_capture 根目录(每小时推进) #562/PC-CQ/B2 remaining acceptance: durable marker identity and Windows interactive evidence GUI #483 remain Open, 0 review threads.e68d0559and fixb4ed2badmake focused PDIC source XY genuinely integer, validate page owner, avoid empty-batch republish; RED #41610202553 failed six jobs on 10 intended tests; GREEN #41610298182 6/6. (2) test-only650684eaand fix8b2ac2cdreject truncated page identity in async crop/save provenance and Tk handoff; RED #41612103458 six jobs failed on 13 intended cases; GREEN #41612191423 6/6.src/picture_capture/*.pymain 15, Draft 5 (cumulative PR delta -10), remaining root:__init__.py,__main__.py,app.py,models.py,ocr_channel.py; no new root relocations in these two R4.2 safety batches.chigre commentedon Nov 3, 2026
2026-11-03 #562 / PC-CQ R4.2 — third scan source-identity safety batch verified on Draft PR #663
ec20989ea8c026cca5337293e67850b6b6df30f2; sole Draft #663 atfd249533Open/Unmerged/NOT Ready. PC-CQ/B3 R3 remaining transactions: OCR-linked deletion/manual override, complex undo/redo and operator validation #503/持续架构整理:分阶段清理 src/picture_capture 根目录(每小时推进) #562/PC-CQ/B2 remaining acceptance: durable marker identity and Windows interactive evidence GUI #483 remain Open, 0 review threads.35f84778exposes malformed fractional/bool/string page key aliasing in scan-target source witness and streaming/completed scan epoch witness-map. RED CI #41614641957: all six matrix jobs FAILED on expected cases, Ubuntu3.13 24 failed/5477 passed/3 skipped. Minimal single-source fix23150015uses strict integer source owner validation before targeting page, including streaming epoch; no extra raster/OCR/file hashing on UI repaint.