Releases: CochranResearchGroup/pdf-mutation
Releases · CochranResearchGroup/pdf-mutation
Release list
pdf-mutation v0.1.7
What's Changed
- Summarize unsupported blockers by @ecochran76 in #49
- Prepare v0.1.7 release by @ecochran76 in #50
Full Changelog: v0.1.6...v0.1.7
pdf-mutation v0.1.6
What's Changed
- Harden length-changing position coverage by @ecochran76 in #47
- Prepare v0.1.6 release by @ecochran76 in #48
Full Changelog: v0.1.5...v0.1.6
pdf-mutation v0.1.5
What's Changed
- Record v0.1.4 release and M13 scope by @ecochran76 in #44
- Add public length-changing PDF fixture by @ecochran76 in #45
- Prepare v0.1.5 release by @ecochran76 in #46
Full Changelog: v0.1.4...v0.1.5
pdf-mutation v0.1.4
What's Changed
- Record v0.1.3 release evidence by @ecochran76 in #29
- Add glyph replacement audit mode by @ecochran76 in #30
- Refocus roadmap on mutation product plan by @ecochran76 in #31
- Add mutation plan JSON output by @ecochran76 in #32
- Add reviewed mutation plan application by @ecochran76 in #33
- Add expected match count guards by @ecochran76 in #34
- Define mixed-font segmented plan contract by @ecochran76 in #35
- Add optional bbox evidence reports by @ecochran76 in #36
- Add bbox alignment assertions by @ecochran76 in #37
- Add importable engine API boundary by @ecochran76 in #38
- Move implementation into package engine by @ecochran76 in #39
- Split engine parsing helpers by @ecochran76 in #40
- Split layout evidence helpers by @ecochran76 in #41
- Move CLI orchestration out of engine by @ecochran76 in #42
- Prepare v0.1.4 release candidate by @ecochran76 in #43
Full Changelog: v0.1.3...v0.1.4
pdf-mutation v0.1.3
What's Changed
- Document published wheel release smoke by @ecochran76 in #24
- Record v0.1.2 release evidence by @ecochran76 in #25
- Add dogfood summary markdown output by @ecochran76 in #26
- Add dogfood summary output path by @ecochran76 in #27
- Prepare v0.1.3 release by @ecochran76 in #28
Full Changelog: v0.1.2...v0.1.3
pdf-mutation v0.1.2
What's Changed
- Add Dependabot update schedule by @ecochran76 in #1
- Add contribution templates by @ecochran76 in #2
- Add contributing guide by @ecochran76 in #3
- Add synthetic QDF fixture helper by @ecochran76 in #4
- Add PDF inventory command by @ecochran76 in #5
- Add inventory probe summaries by @ecochran76 in #6
- Add inventory summary output by @ecochran76 in #8
- Add inventory input size guard by @ecochran76 in #9
- Add inventory fail-on gates by @ecochran76 in #10
- Add dogfood inventory runbook by @ecochran76 in #11
- Add dogfood inventory wrapper by @ecochran76 in #12
- Add dogfood policy profiles by @ecochran76 in #13
- Add dogfood report metadata by @ecochran76 in #14
- Add dogfood run manifest by @ecochran76 in #15
- Add dogfood manifest summary command by @ecochran76 in #16
- Add dogfood summary fixture test by @ecochran76 in #17
- Add dogfood summary filters by @ecochran76 in #18
- Add latest dogfood summary by policy by @ecochran76 in #19
- Add dogfood summary health gate by @ecochran76 in #20
- Add manual dogfood health workflow by @ecochran76 in #21
- Document manual dogfood health workflow by @ecochran76 in #22
- Prepare v0.1.2 release by @ecochran76 in #23
New Contributors
- @ecochran76 made their first contribution in #1
Full Changelog: v0.1.1...v0.1.2
pdf-mutation v0.1.1
Full Changelog: v0.1.0...v0.1.1
pdf-mutation v0.1.0
v0.1.0 | Initial Release
Initial release of pdf-mutation, a deterministic glyph-preserving PDF text
replacement CLI.
Added
pdf-glyph-replaceconsole command and directpdf_glyph_replace.pyscript.- Exact replacement for same decoded glyph counts.
- Support for hexadecimal
<...> Tjtext and simple[...] TJarrays. - Support for multiple CIDs inside a single hexadecimal string operand.
--align rightfor simple right-aligned, one-glyph-per-line amount edits.--align leftfor simple length-changing edits that preserve the original
text matrix.--dry-runand--dry-run --jsonfeasibility reports.--reportnon-sensitive JSON mutation reports.- Synthetic QDF unit tests that do not depend on private PDF fixtures.
- Repo-local policy, roadmap, release metadata, and validation docs.
Known Limits
- Replacement characters must already exist in the active PDF font CMap.
- Matches must fit inside one
BT ... ETtext object. - Length-changing alignment modes require one-glyph-per-line hexadecimal
Tj
text with deterministicTdadvances. - The tool does not synthesize fonts, OCR text, redraw pages, edit encrypted
PDFs, or reflow arbitrary paragraphs.