Skip to content

Commit 44518b3

Browse files
committed
docs: ROADMAP.md — #72 merged (PR #91)
1 parent fbb6d55 commit 44518b3

1 file changed

Lines changed: 1 addition & 5 deletions

File tree

‎ROADMAP.md‎

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,6 @@ A run-level line break is still invisible to search, hashes and edit placement.
5757

5858
Only `w:instrText` is known to the library today. A `replace()` targeting text inside a TOC entry, `REF` or page-number field applies, and Word silently discards it on the next field update — the same silent-loss family already eliminated elsewhere. Minimum: detect that a match falls inside `fldSimple`/`fldChar` run ranges and refuse with a teaching error; better: a read-side field inventory. Board task `f812f113` exists in the backlog.
5959

60-
### 72. Timing-sensitive session tests are flaky on CI
61-
62-
Two `tests/test_session.py` tests failed on single CI jobs in one night and passed on rerun, on commits that did not touch `session.py`: `test_main_full_lifecycle` (`main(["start", …])` returned 1 on Python 3.12, run 33277764141) and `test_stop_session_is_prompt` (`stop_session` took 5.02 s against a `< 3.0 s` assertion on Python 3.14, run 33298581269 — 5 s is exactly the `_kernel_alive` probe timeout, so the shutdown ack was missed under load). Every flake costs a 20–30 min rerun. Same family: `tests/test_session.py:138` waits with `time.sleep(1.0)` instead of an `execute_input` handshake. Worst case so far (run 33321498835, Python 3.14 shard 2, PR #87): after earlier session tests passed, every later one in the job — 41 tests — failed with `Kernel did not become ready within 30.0s`; the rerun passed. Something in that job left kernel start-up broken for the rest of the process (leaked kernel, port, or the conftest reaper); the fix needs a diagnostic in `start_session` that prints the kernel's stderr and the connection file state on timeout. Fix the tests' dependence on wall-clock under xdist load (a start budget that scales, a stop assertion on *behaviour* — ack received — not on seconds), and make a failed `start` print *why*.
63-
6460
### 75. Author-filtered bulk resolution must not touch other authors' revisions [data loss; after #73 step 9]
6561

6662
`accept_all(author=A)` / `reject_all(author=A)` list revisions by author but resolve by `w:id`, and the id lookup has no author check. With B's `<w:ins w:id="7">` before A's `<w:del w:id="7">` (duplicate ids across authors occur in real files — the corpus has them from LibreOffice), `reject_all(author="A")` deletes B's inserted text and `accept_all(author="A")` makes it permanent, both reporting 2. The `accept_all` docstring documents this and `tests/test_track_changes.py::…:1143` pins it as expected — it is not acceptable for a data-loss path. Fix: resolve the exact elements selected by the listing (element identity), not their ids; flip the pinning test. Lives in the resolution cluster, so it lands after #73 moves it (found by CodeRabbit on PR #75; verified 2026-08-30).
@@ -101,7 +97,7 @@ CodeRabbit reviews every PR; its inline Critical/Major/Potential-issue comments
10197

10298
Newest first. Details live in each PR and in the release notes.
10399

104-
- **unreleased, on main**: #76 comment reply marker order, #77 unpack symlink ancestors, #78 session start leak, #80 docs/spec drift ([#88](https://github.com/pablospe/docx-editor/pull/88)); #73 steps 1–5 ([#83](https://github.com/pablospe/docx-editor/pull/83), [#84](https://github.com/pablospe/docx-editor/pull/84), [#85](https://github.com/pablospe/docx-editor/pull/85), [#87](https://github.com/pablospe/docx-editor/pull/87), [#89](https://github.com/pablospe/docx-editor/pull/89)); CI sharded, ~8½ min wall ([#86](https://github.com/pablospe/docx-editor/pull/86))
100+
- **unreleased, on main**: #72 session tests robust to CI load — env-scaled start budget, timeout diagnostics, handshakes for sleeps ([#91](https://github.com/pablospe/docx-editor/pull/91)); #76 comment reply marker order, #77 unpack symlink ancestors, #78 session start leak, #80 docs/spec drift ([#88](https://github.com/pablospe/docx-editor/pull/88)); #73 steps 1–5 ([#83](https://github.com/pablospe/docx-editor/pull/83), [#84](https://github.com/pablospe/docx-editor/pull/84), [#85](https://github.com/pablospe/docx-editor/pull/85), [#87](https://github.com/pablospe/docx-editor/pull/87), [#89](https://github.com/pablospe/docx-editor/pull/89)); CI sharded, ~8½ min wall ([#86](https://github.com/pablospe/docx-editor/pull/86))
105101
- **0.8.1** (2026-08-30): #68 Resolve moves and `w:pPrChange` as revisions ([#82](https://github.com/pablospe/docx-editor/pull/82)); #6a `w:tab` in the paragraph text map ([#81](https://github.com/pablospe/docx-editor/pull/81)); #71 LibreOffice opens-clean gate + real Word redline fixtures ([#80](https://github.com/pablospe/docx-editor/pull/80))
106102
- **0.8.0** (2026-08-29): #65 Exclude w:txbxContent from the host paragraph text map ([#78](https://github.com/pablospe/docx-editor/pull/78)); #67 Rationale channel ([#79](https://github.com/pablospe/docx-editor/pull/79)); #66 + #70 settings.xml pair + anti-scope statement ([#77](https://github.com/pablospe/docx-editor/pull/77)); #64 Foreign-revision census + accept_all honesty floor ([#76](https://github.com/pablospe/docx-editor/pull/76))
107103
- **0.7.2** (2026-08-28): #56+#62 Perf follow-ups + test hygiene ([#75](https://github.com/pablospe/docx-editor/pull/75)); #39 (also filed as #31) Site D own-insertion replace ordering ([#74](https://github.com/pablospe/docx-editor/pull/74)); #52+#60 Ergonomics grab-bag ([#73](https://github.com/pablospe/docx-editor/pull/73))

0 commit comments

Comments
 (0)