Skip to content

v0.1.0

Choose a tag to compare

@Rianico Rianico released this 15 Aug 15:39
· 34 commits to main since this release

Added

  • Initial dsh port of pi-hashline-edit-lsz: hash-anchored read / edit / batch_edit / undo_last_edit tools for DeepSeek Harness. Every line gets a unique 3-character content hash; edits target remove_from/remove_to hashes. The hashline core is ported byte-for-byte; the tool layer is rewritten on dsh's plugin API (batch_edit spec: Rianico/pi-hashline-edit-lsz#19).
  • Built-in replacement via scope-layered registry shadowing: on agent/session-start the tools and the tool:read/tool:edit prompt sections are registered on the agent's own layer (own-layer-wins), unwinding automatically on disposal; a tools/post-execute listener appends the auto-read to built-in write results.
  • Served-state range verification with reject-and-serve: every line of the resolved range is checked against what the model was shown; stale/never-served/unverified ranges are hard-rejected with the current HASH│content rows echoed back (retry needs no read). Drift notices report served territory changed outside the edit range (reject-and-serve spec: Rianico/pi-hashline-edit-lsz#13).
  • Chained edits without re-reading: post-edit diff rows and rejection echoes count as serves, so follow-up edits verify cleanly.
  • Error-code contract ([E_*] codes, README-documented and test-enforced) including the noop-loop guard (Rianico/pi-hashline-edit-lsz#18); undo_last_edit surviving restarts; and safe writes preserving permissions, line endings, BOMs, symlinks, and hard links via ctx.fs.
  • Test suite ported from pi-hashline-edit-lsz (614 tests at release), driving the dsh tool builders directly over a local filesystem bridge.