docs: finalize v0.2.0 release notes and fix stale references - #29
Conversation
- CHANGELOG: add iterative walker, max_depth, SLSA/SBOM, escaper trust boundary, hypothesis tests, atheris overhaul, docs site migration; update date to 2026-04-04 and test counts to 405 - README: fix Performance section deepcopy reference → iterative copy - CLAUDE.md: fix stage return type description (int counts, not bool)
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
| @@ -5,31 +5,41 @@ All notable changes to this project will be documented in this file. | |||
| This changelog is automatically generated by [git-cliff](https://git-cliff.org/) | |||
There was a problem hiding this comment.
🔵 LOW: Release notes and counts updated
Confidence: 95%
Date updated to 2026-04-04; test count and SBOMs included; security/process improvements and documentation coverage noted.
The CHANGELOG.md has been diligently updated to reflect new features, test counts, security provenance, and doc synchronization for version 0.2.0. The test count, new features, SBOMs, and governance-relevant process notes are all present.
Suggestion: No change needed. Good audit trail for this release.
— Well-documented release process. Governance teams sleep a little easier.
|
|
||
| Measured on Python 3.12, single thread. `clean()` is the per-string cost; `walk()` includes `deepcopy`. | ||
| Measured on Python 3.12, single thread. `clean()` is the per-string cost; `walk()` includes the iterative copy pass. | ||
|
|
There was a problem hiding this comment.
🔵 LOW: Clarified reference to walk() implementation
Confidence: 93%
'walk() includes deepcopy' → 'walk() includes the iterative copy pass' at line 219.
The README correctly replaces a stale 'deepcopy' reference with a statement clarifying that the current 'walk()' logic uses an iterative copy pass, reflecting the architectural update.
Suggestion: No action required-this change increases accuracy for users.
— Thanks for removing the misleading deepcopy claim. Nobody misses it.
✅ Grippy Review — PASSScore: 100/100 | Findings: 3 total (2 inline, 1 summary-only) Delta: 2 new Summary-only findings (1) — scored but not inline-eligible🔵 LOW: Corrected documentation for stage return types📁 The documentation for stage output in CLAUDE.md now accurately describes the actual return signature, capturing the mixed use of integer and boolean returns across stages. Suggestion: No further action needed-doc now matches the current code. Commit: 8de03af |
There was a problem hiding this comment.
Pull request overview
Final pre-release documentation cleanup for v0.2.0, updating release notes and correcting a few stale/incorrect references across project docs.
Changes:
- Update v0.2.0 CHANGELOG entry (date and expanded feature/doc/CI/testing bullets and counts).
- Adjust README performance note to reference
walk()’s iterative copy pass (notdeepcopy). - Correct CLAUDE.md pipeline stage return-type description.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| README.md | Updates performance note to match current walk() implementation details. |
| CLAUDE.md | Updates pipeline stage return-type documentation to reflect counts vs flags. |
| CHANGELOG.md | Finalizes v0.2.0 release notes content and updates the release date/counts. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| 6. **Escaper** (optional) — pluggable `Callable[[str], str]` runs last | ||
|
|
||
| Each stage returns `(cleaned_string, changed: bool)`. Stages have no side effects — the orchestrator logs. | ||
| Each stage returns `(cleaned_string, count_or_flag)` — either an `int` count of removals/replacements or a `bool` changed flag. Stages have no side effects — the orchestrator logs. |
There was a problem hiding this comment.
The statement "Each stage returns (cleaned_string, count_or_flag)" isn’t accurate for the Escaper stage: the escaper itself is a Callable[[str], str] and returns only a str, and clean() returns str while logging counts. Consider rewording to clarify that the internal pipeline helper stages return (str, int|bool) metadata, but the optional escaper returns str (and clean() orchestrates/logs).
| Each stage returns `(cleaned_string, count_or_flag)` — either an `int` count of removals/replacements or a `bool` changed flag. Stages have no side effects — the orchestrator logs. | |
| The internal pipeline helper stages return `(cleaned_string, count_or_flag)` metadata — either an `int` count of removals/replacements or a `bool` changed flag. The optional escaper itself returns only `str`, and `clean()` orchestrates the pipeline, logs stage counts, and returns the final `str`. |
Summary
Final pre-release cleanup — fixes 3 stale references found by white-glove audit:
boolbut 3/4 stages returnintcountsTest plan