Releases: quangdang46/hashline
Release list
v0.9.12
🚀 Hashline v0.9.12 — MCP Auto-Agent Adoption
MCP instructions field now returned in initialize response (fixes #107).
AI agents (Claude, Codex, Cursor, etc.) can auto-discover Hashline as an MCP server — no manual AGENTS.md needed.
What changed
instructionsfield in MCPinitializeresponse for seamless agent onboarding- Code formatted via
cargo fmt
Verified
- ✅ CI passing — all checks green on this release
Upgrade: cargo install hashline --version 0.9.12
Full Changelog: v0.9.11...v0.9.12
v0.9.11
Hashline v0.9.11
Bug Fixes
- Fix #106: Translate insert and block anchors through shift table — INS.PRE/INS.POST previously used original line numbers directly as live buffer indices, causing compounding drift in multi-edit patches with inserts at different anchors. Block ops (INS.BLK.PRE/POST, SWAP.BLK, DEL.BLK) had the same defect.
What Changed
- INS.PRE/INS.POST: translate anchor via shift before computing insert position
- INS.POST uses insert_count keyed by original anchor for repeated-at-same-anchor stacking
- Block ops: translate block_start/block_end through shift after
resolve_block_span - DEL.BLK now removes in descending order
Tests
- 4 regression tests covering exact reproduction cases from #106
Install
curl -fsSL https://github.com/quangdang46/hashline/releases/latest/install.sh | bash
Full changelog: https://github.com/quangdang46/hashline/blob/main/CHANGELOG.md
v0.9.10
What's Changed
- Low-breakage accuracy improvements (snapshot collision, noop guard, symbol seeding, recovery, boundary repair) by @quangdang46 in #105
Full Changelog: v0.9.1...v0.9.10
What's Changed
- Low-breakage accuracy improvements (snapshot collision, noop guard, symbol seeding, recovery, boundary repair) by @quangdang46 in #105
Full Changelog: v0.9.1...v0.9.10
v0.9.1
Hashline v0.9.1
Bug Fixes
- Fix #104: DEL after bodied SWAP silently deleted wrong lines — the SWAP arm consumed every following Edit::Delete into its removal range, discarding their anchors and applying deletes at the SWAP position instead
- Gate consuming loop on line_num so only deletes from the same parsed op belong to that SWAP
Tests
- 8 regression tests: DEL after SWAP (single/multi-line/range), interleaved SWAPs, two DELs after one SWAP, DEL.BLK after SWAP, stale-hash guard
Install
curl -fsSL https://github.com/quangdang46/hashline/releases/latest/install.sh | bash
Full changelog: https://github.com/quangdang46/hashline/blob/main/CHANGELOG.md
v0.9.0
Hashline v0.9.0
New Features
- Add
.=(oh-my-pi) range separator support forSWAP 2.=4:` syntax
Bug Fixes
- Fix #96:
A.=Brange syntax broken — tokenizer now handles standalone.=as range separator - Fix #102:
*** Abortnot canceling prior operations - Fix #103: find-block rejecting bare line numbers
- Fix #101: read/patch line numbering mismatch (no more invisible line edits)
- Fix INS.POST/INS.PRE/INS.BLK accepting line 0
- Fix CRLF dry-run diff showing spurious
\rcharacters
Improvements
- Add
rename --forceflag
Install
curl -fsSL https://github.com/quangdang46/hashline/releases/latest/install.sh | bash
Full changelog: https://github.com/quangdang46/hashline/blob/main/CHANGELOG.md
v0.8.9
Hashline v0.8.9
Bug Fixes
- Fix #95: SWAP.BLK/DEL.BLK range format silently corrupts files
- Accept two-anchor format (
SWAP.BLK N M) as concrete range - Add reversed range warning (previously silent ignore)
- Add 9 regression tests for all edge cases
- Accept two-anchor format (
Install
curl -fsSL https://github.com/quangdang46/hashline/releases/latest/install.sh | bash
Full changelog: https://github.com/quangdang46/hashline/blob/main/CHANGELOG.md
v0.8.8
What's Changed
- feat: Editor API with injectable SnapshotStore/BlockResolver by @quangdang46 in #94
Full Changelog: v0.8.7...v0.8.8
What's Changed
- feat: Editor API with injectable SnapshotStore/BlockResolver by @quangdang46 in #94
Full Changelog: v0.8.7...v0.8.8
v0.8.7
Hashline v0.8.7
Documentation
- Overhaul README to Dicklesworthstone-class style with agent quickstart, comparison tables, architecture diagram, troubleshooting, FAQ
- Refresh hero illustration: PNG → WEBP, robot workshop style
Bug Fixes
- Fix #93: Preserve interior blank lines and bare
-rows in patch/INS body- Deferred blanks now flush correctly into payloads before each new line
- Bare
-rows produce a warning AND are preserved as content
Improvements
- Refactor code structure for improved readability and maintainability
Install
curl -fsSL https://github.com/quangdang46/hashline/releases/latest/install.sh | bash
Full changelog: https://github.com/quangdang46/hashline/blob/main/CHANGELOG.md
v0.8.6
Hashline v0.8.6
Bug Fixes
- Accept bare
INS <N>:as shorthand forINS.POST <N>:(#92) — previously bare INS was silently ignored, causing patches to only apply the DEL while the insert content was never written - Replace byte-slicing with UTF-8-safe truncation to prevent panic on multi-byte lines — new
truncate_utf8_safe()helper walks back to the last safe char boundary
Install
curl -fsSL https://github.com/quangdang46/hashline/releases/latest/install.sh | bash
Full changelog: https://github.com/quangdang46/hashline/blob/main/CHANGELOG.md
v0.8.5
What's Changed
- fix: find-block off-by-one line_count for files with trailing newline (Issue #90) by @quangdang46 in #91
Full Changelog: v0.8.4...v0.8.5