Repository navigation
v0.20.0 — second review round
A second external review of 0.19.0. Every finding was real.
Releases were published to PyPI without any test having passed on them. CI runs on pushes to a branch, and publishing runs on a tag push, which is a different event, so CI never ran on the tagged commit at all. They were two unrelated runs racing each other: on 0.19.0 the upload finished about 35 seconds before CI did. The tests now run inside the publish workflow and publishing waits for them.
A thread with no anchor was invisible in the counts. open_count and resolved_count were worked out from anchored comments while thread_count came from threads, so a project whose ranges could not be read reported one thread, none open and none resolved. The Markdown had always counted threads, so the two files from one export disagreed with each other. Both count threads now.
Two reviewers could share one report. A B, A-B, A_B and A.B all become a-b, and the second by-reviewer file quietly replaced the first. Colliding names get a suffix now. Those reports were also handed every thread in the project, so each one claimed the whole project's totals in its front matter; each now sees only its own.
A title with a quote in it broke the Markdown front matter. A paper called A "quoted" paper ended the YAML scalar early and made the whole block unparseable.
The browser extension returned an out-of-range offset for a stale anchor. It computed the bounded value, used it for the line and column, and returned the raw one, so a 16-character document could report offset 10000 next to line 1. Python fixed this in 0.18.0 and the extension half was missed.
comments.jsonl is now derived from comments.json rather than assembled separately. That is how the two implementations drifted into writing different records under the same schema version: Python's carried no schema_version, no type, no project and no orphan threads. The cross-implementation parity test covers JSONL as well now.
pip install --upgrade "overleaf-comments-export[gui,pdf]"