Tags: patchloom/patchloom
Tags
chore(main): release patchloom 0.21.0 (#1983) 🤖 I have created a release *beep* *boop* --- ## [0.21.0](patchloom-v0.20.0...patchloom-v0.21.0) (2026-07-27) ### Features * **api:** fuzzy_span_suspicious for host over-wide fuzzy refuse ([#1982](#1982)) ([0443be5](0443be5)), closes [#1981](#1981) ### Bug Fixes * **api:** polish fuzzy_span_suspicious host contract ([#1984](#1984)) ([fe71d9f](fe71d9f)) * **dist:** align Smithery MCP description with differentiated positioning ([#2001](#2001)) ([0cacc23](0cacc23)), closes [#1987](#1987) * **mcp:** server.json description within Registry 100-char limit ([#2000](#2000)) ([846fdec](846fdec)), closes [#1987](#1987) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: patchloom-release[bot] <291219740+patchloom-release[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
chore(main): release patchloom 0.20.0 (#1968) 🤖 I have created a release *beep* *boop* --- ## [0.20.0](patchloom-v0.19.0...patchloom-v0.20.0) (2026-07-27) ### Features * **api:** Binary/InvalidEncoding peels and force create over non-text prior ([#1969](#1969)) ([c3b4d30](c3b4d30)) * **api:** export is_load_text_strict_fail for embedders ([#1973](#1973)) ([468e069](468e069)) * **api:** ReplaceOptions::for_agent shared host preset ([#1971](#1971)) ([6305b54](6305b54)) * is_ambiguous peel and embedder-smoke host peels ([#1967](#1967)) ([ec1024b](ec1024b)) ### Bug Fixes * **cli:** AST sole-path Binary/InvalidEncoding error_kind emit ([#1974](#1974)) ([201c28b](201c28b)) * **cli:** preserve Binary/InvalidEncoding on remaining load remappers ([#1970](#1970)) ([cccc81e](cccc81e)), closes [#1963](#1963) [#1969](#1969) * load_text_strict helper, md binary emit, Windows validate flake ([#1972](#1972)) ([427e8f4](427e8f4)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: patchloom-release[bot] <291219740+patchloom-release[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
chore(main): release patchloom 0.19.0 (#1951) 🤖 I have created a release *beep* *boop* --- ## [0.19.0](patchloom-v0.18.0...patchloom-v0.19.0) (2026-07-25) ### Features * complete public EditErrorKind bool peels ([#1959](#1959)) ([a4a3136](a4a3136)) * public is_not_found/is_conflicts/is_changes_detected peels ([#1958](#1958)) ([0287d97](0287d97)) ### Bug Fixes * append EditErrorKind variants after FormatFailed ([#1955](#1955)) ([4b3ea56](4b3ea56)) * library peels for already_exists and CLI error_kind strings ([#1950](#1950)) ([888227a](888227a)), closes [#1947](#1947) [#1948](#1948) * lychee exclude-path for RELEASE_NOTES; create force hints ([#1952](#1952)) ([8a8f92b](8a8f92b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: patchloom-release[bot] <291219740+patchloom-release[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
chore(main): release patchloom 0.18.0 (#1930) 🤖 I have created a release *beep* *boop* --- ## [0.18.0](patchloom-v0.17.0...patchloom-v0.18.0) (2026-07-24) ### Features * find_backup_roots and structured GuardRejected for file ops ([#1938](#1938)) ([c1ee516](c1ee516)) ### Bug Fixes * batch replace --new flag gets PATH OLD NEW hint ([#1942](#1942)) ([757879f](757879f)) * raise did-you-mean bar for similar_targets noise ([#1941](#1941)) ([01a2387](01a2387)) * stop doubling OS detail in agent error JSON ([#1929](#1929)) ([35b9a29](35b9a29)) * tidy check JSON error_kind changes_detected ([#1940](#1940)) ([1d7e185](1d7e185)) * use dunce::canonicalize for PathGuard (Windows UNC) ([#1932](#1932)) ([14bfa87](14bfa87)), closes [#1931](#1931) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: patchloom-release[bot] <291219740+patchloom-release[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
chore(main): release patchloom 0.17.0 🤖 I have created a release *beep* *boop* --- ## [0.17.0](patchloom-v0.16.0...patchloom-v0.17.0) (2026-07-23) ### Features * library doc_merge selector and embedder text I/O surface ([#1913](#1913)) ([0abfb40](0abfb40)), closes [#1909](#1909) [#1910](#1910) ### Bug Fixes * clarify init skip when AGENTS.md is not written ([#1922](#1922)) ([4323811](4323811)) * doc.merge catalog blurb mentions multi-doc selector ([#1917](#1917)) ([58e3f7a](58e3f7a)) * keep Permission denied and invalid_input on unreadable sole paths ([#1925](#1925)) ([cec22bd](cec22bd)) * load errors keep OS detail without double-wrap ([#1926](#1926)) ([8dd6987](8dd6987)) * publish MCP Registry after crates and npm ([#1908](#1908)) ([4ee64e8](4ee64e8)) * set error_kind on patch check multi-file JSON failures ([#1924](#1924)) ([322486c](322486c)) * sole unreadable path error without double-wrap ([#1916](#1916)) ([ec40404](ec40404)) * stop double-wrapping load_text_strict IO errors ([#1918](#1918)) ([8df2b48](8df2b48)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: patchloom-release[bot] <291219740+patchloom-release[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
chore(main): release patchloom 0.15.3 (#1857) 🤖 I have created a release *beep* *boop* --- ## [0.15.3](patchloom-v0.15.2...patchloom-v0.15.3) (2026-07-20) ### Bug Fixes * agent honesty for pre-write applied and batch replace order ([#1856](#1856)) ([4e50e3b](4e50e3b)) * empty --files-from honesty for search and tidy ([#1861](#1861)) ([c0c7049](c0c7049)) * honest explain for md section bounds and dedupe discard ([#1865](#1865)) ([99422e1](99422e1)) * MCP md_lint JSON envelope matches CLI ([#1859](#1859)) ([#1860](#1860)) ([c799d90](c799d90)) * md lint-agents JSON envelope; replace context structs ([#1858](#1858)) ([b6f157c](b6f157c)) * multi-doc bare-key honesty for doc has and keys ([#1871](#1871)) ([f47d655](f47d655)) * multi-doc bare-key type_error for append/delete/update ([#1873](#1873)) ([1d16992](1d16992)) * multi-doc bare-key type_error for doc move ([#1874](#1874)) ([2a23f33](2a23f33)) * multi-doc doc get bare key type_error hint ([#1862](#1862)) ([87c8303](87c8303)) * multi-doc merge array refuse + sole binary search honesty ([#1875](#1875)) ([a1bc515](a1bc515)) * publish Smithery MCPB via REST API ([#1868](#1868)) ([6935ab5](6935ab5)) * refuse binary targets on read ([#1876](#1876)) ([bb5e6b9](bb5e6b9)) * refuse doc merge object overlay on multi-doc array root ([#1872](#1872)) ([ccff9b3](ccff9b3)) * search multi-path refused[] for binary co-paths ([#1877](#1877)) ([f45afe5](f45afe5)) * tidy multi-path binary refused[] and md sole binary honesty ([#1878](#1878)) ([cb01061](cb01061)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: patchloom-release[bot] <291219740+patchloom-release[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
chore(main): release patchloom 0.15.2 (#1837) 🤖 I have created a release *beep* *boop* --- ## [0.15.2](patchloom-v0.15.1...patchloom-v0.15.2) (2026-07-18) ### Bug Fixes * agent honesty for contain, init JSON, names table, applied ([#1845](#1845)) ([136db8f](136db8f)) * agent honesty for doc query, tidy.fix, md/AST docs ([#1846](#1846)) ([e9e75a1](e9e75a1)) * agent JSON honesty for replace mode, undo, and format_failed ([#1836](#1836)) ([dc765e6](dc765e6)) * honor tidy.fix plan write_policy; lock doc query envelopes ([#1848](#1848)) ([ffedb27](ffedb27)) * include applied on plan/batch/tx JSON ([#1851](#1851)) ([194e3e4](194e3e4)) * tidy.fix op write-policy survives commit ([#1849](#1849)) ([59da347](59da347)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: patchloom-release[bot] <291219740+patchloom-release[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
chore(main): release patchloom 0.15.1 (#1786) 🤖 I have created a release *beep* *boop* --- ## [0.15.1](patchloom-v0.15.0...patchloom-v0.15.1) (2026-07-17) ### Bug Fixes * agent JSON honesty for Bline consumers ([#1791](https://github.com/patchloom/patchloom/issues/1791)-[#1798](https://github.com/patchloom/patchloom/issues/1798)) ([#1814](#1814)) ([7c04653](7c04653)), closes [#1792](#1792) [#1793](#1793) [#1794](#1794) [#1795](#1795) [#1796](#1796) [#1797](#1797) * agent JSON honesty for no-op apply and related write paths ([#1816](#1816)) ([f378253](f378253)) * agent JSON honesty for preview backup and multi-file jsonl ([#1815](#1815)) ([7ce6eba](7ce6eba)) * ast validate fails closed on unsupported or empty targets ([#1787](#1787)) ([84b74ef](84b74ef)) * batch file.create preserves unquoted JSON content ([#1820](#1820)) ([18f414d](18f414d)) * batch/tx replace if_exists soft-skips missing paths ([#1823](#1823)) ([302f02f](302f02f)) * delete and rename JSON include backup_session ([#1817](#1817)) ([93504dc](93504dc)) * expand newline escapes in batch file content ([#1821](#1821)) ([38d444a](38d444a)) * fail closed on sole explicit binary replace/tidy target ([#1790](#1790)) ([99a71e4](99a71e4)) * patch check reports would_change like apply preview ([#1818](#1818)) ([ebe9705](ebe9705)) * reject append/prepend on binary (NUL) files ([#1789](#1789)) ([846e80b](846e80b)) * reject create/rename when a path parent is a file ([#1785](#1785)) ([810f74f](810f74f)) * report applied:true in write --json after --apply ([#1788](#1788)) ([2625ec1](2625ec1)) * search match_count counts all occurrences per line ([#1819](#1819)) ([a44e9a3](a44e9a3)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: patchloom-release[bot] <291219740+patchloom-release[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
chore(main): release patchloom 0.15.0 (#1735) 🤖 I have created a release *beep* *boop* --- ## [0.15.0](patchloom-v0.14.0...patchloom-v0.15.0) (2026-07-16) ### Features * mark edit/tx result types non_exhaustive for 0.15.0 ([#1744](#1744)) ([5be63f8](5be63f8)), closes [#1735](#1735) ### Bug Fixes * agent JSON honesty for search skipped and fuzzy refuse meta ([#1760](#1760)) ([aad6e64](aad6e64)) * agent-honest JSON, context anchors, batch suggestions ([#1766](#1766)) ([b608859](b608859)) * always put no_matches diagnostics in replace/search JSON error ([#1755](#1755)) ([e5750f4](e5750f4)) * chain multi-hop file.rename in one plan ([#1743](#1743)) ([fe0e615](fe0e615)) * **choco:** address Chocolatey moderation guidelines ([#1782](#1782)) ([25abab5](25abab5)) * CLI format_failed backup_session + directory invalid_input ([#1779](#1779)) ([20034ee](20034ee)) * CLI replace error hints and word_boundary+fuzzy boundary honesty ([#1754](#1754)) ([5d7d4c7](5d7d4c7)) * dedupe CLI and plan verify checks ([#1767](#1767)) ([dc15816](dc15816)) * explain - as stdin; explicit missing paths in skipped ([#1781](#1781)) ([c5f3131](c5f3131)) * fail closed when replace context does not disambiguate ([#1765](#1765)) ([4d3d520](4d3d520)) * force rename hardlinks and TxOutput serde defaults ([#1746](#1746)) ([d22fbc3](d22fbc3)) * fuzzy fails closed when exact old is absent ([#1759](#1759)) ([0d46e85](0d46e85)) * honor if_exists on min_fuzzy_score floor reject ([#1750](#1750)) ([4164fef](4164fef)) * honor require_change after min_fuzzy_score path reject ([#1748](#1748)) ([9b9c659](9b9c659)) * min fuzzy score on meta merge and glob success hint ([#1749](#1749)) ([2338c48](2338c48)) * multi-file --nth out-of-range fails closed for all paths ([#1772](#1772)) ([a0d0c08](a0d0c08)) * never walk .git when collecting files (tidy include_hidden) ([#1770](#1770)) ([5326ec4](5326ec4)) * preserve hardlinks for tx rename-then-edit plans ([#1742](#1742)) ([bf2cbbb](bf2cbbb)) * preserve hardlinks in atomic_write when nlink > 1 ([#1734](#1734)) ([b7bcb85](b7bcb85)) * preserve hardlinks on plain text rename ([#1740](#1740)) ([52a3a37](52a3a37)) * preserve hardlinks on plan/tx file.rename ([#1741](#1741)) ([cf64190](cf64190)), closes [#1739](#1739) * put error_kind and replace_hint on tx no_matches JSON ([#1753](#1753)) ([057a002](057a002)) * read directory invalid_input + init --json report ([#1780](#1780)) ([cb76ec6](cb76ec6)) * reject --verify without ast feature instead of silent no-op ([#1763](#1763)) ([0478aa0](0478aa0)) * report applied changes on non-strict format/validate failure ([#1778](#1778)) ([a08f1b3](a08f1b3)) * report matched_text for fuzzy replace and document semantic check ([#1737](#1737)) ([72a8d29](72a8d29)) * report missing --files-from paths in replace JSON skipped ([#1757](#1757)) ([c524d4d](c524d4d)) * report nth out of range instead of false no-match ([#1768](#1768)) ([46ec98f](46ec98f)) * report refused fuzzy paths on multi-file partial apply ([#1761](#1761)) ([4cdc8df](4cdc8df)) * search truncated honesty for count modes and agent docs ([#1775](#1775)) ([262d83a](262d83a)) * set error_kind no_matches for unknown undo --session ([#1776](#1776)) ([e0e6cf0](e0e6cf0)) * set replace_hint when glob fuzzy floor rejects ([#1745](#1745)) ([e23eb43](e23eb43)) * set truncated when search --max-results caps matches ([#1773](#1773)) ([e306273](e306273)) * skip MCP exact pre-validation when fuzzy or context set ([#1751](#1751)) ([a82a60d](a82a60d)) * surface replace_hint on glob require_change no-match ([#1752](#1752)) ([038f8f0](038f8f0)) * surface soft replace no-match in multi-op refused[] ([#1774](#1774)) ([9bbe096](9bbe096)) * treat empty JSON as {} for doc parse/set ([#1771](#1771)) ([27357ce](27357ce)) * unique_names verify catches cross-file symbol collisions ([#1764](#1764)) ([82560c7](82560c7)) * whole-line nth honesty (lines, range) and agent-rules ([#1769](#1769)) ([30d2de6](30d2de6)) * worst-case fuzzy score min and matched_text meta gate ([#1747](#1747)) ([1d3ecb5](1d3ecb5)) * wrap schema --format prompt under global --json ([#1777](#1777)) ([406ddff](406ddff)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: patchloom-release[bot] <291219740+patchloom-release[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
PreviousNext