v1.4.1 — stop printing the docstring twice
Found by installing 1.4.0 from PyPI into a clean environment and using it on an unfamiliar repository — the one thing no test in this project does.
A generated description ends with the author's own docstring, because that is how a docstring becomes searchable. The block then printed the source below it, which contains the same docstring. On Flask, 2,381 of 3,382 characters of prose header were a verbatim repeat of the code beneath it — a fifth of everything a query returned, paid for twice.
It never showed on this project's own rulers: the descriptions here are agent-written and are not in the source, so there was nothing to duplicate. It took a corpus whose authors wrote docstrings, which arrived one release ago.
_visible_description drops the quoted half when the code below already shows it, and keeps it when it does not — an authored description is the one part of a block a reader cannot recover by reading the code. searchable_text is untouched, so the docstring stays exactly as findable and no ruler moved.
The saving is in answers, not characters. The budget was already the binding constraint, so the same 12,000 characters now carry more distinct code:
| declarations delivered at one budget | before | after |
|---|---|---|
| Flask, 30 answered | 92 | 119 |
| this repository, 60 answered | 305 | 323 |
Also: "Documented intent:" was a literal in three modules that have to agree on it — annotate writes it, parser writes it again for the other fourteen languages, and document looked for it to decide which declarations are undocumented. It now has one home.
Republished with fresh fingerprints: B 584 fb1f841fa43a, C 584 c9df00350cbd. Ruler A is untouched at 5fd51169eacc — the vendored corpus does not move when this repository does, which is the point of vendoring it.
356 tests (+2, 0 removed, by node-id set diff against v1.4.0). Full detail in CHANGELOG.md.