Skip to content

Latest commit

 

History

History
51 lines (36 loc) · 2.74 KB

File metadata and controls

51 lines (36 loc) · 2.74 KB

Changelog

[0.2.1] — 2026-06-29

Fixed

  • Plugin loading failurehashlineEditTool object export caused OpenCode's legacy plugin detection to throw "Plugin export is not a function". Removed the public export (internal use only).

Added

  • Success log — plugin now emits opencode-hashline plugin loaded to OpenCode logs on successful initialization.

[0.2.0] — 2026-06-29

Added

  • Format v2 syntaxSWAP/DEL/INS.PRE/INS.POST/INS.HEAD/INS.TAIL/REM/MV with .= range separator
  • Test suite — 63 tests across 8 files: core patch/format/tag/recovery, hook, tool-edit, workflow
  • Comparison test suite — T1-T8 scenarios quantifying hashline vs builtin edit in token efficiency, drift detection, recovery, and safety
  • docs/test-design.md — 31-scenario test matrix
  • docs/comparison-report.md — quantitative comparison report
  • docs/publish.md — npm publish instructions

Changed

  • Depend on @oh-my-pi/hashline — removed vendored src/core/ (16 files, ~6800 lines); this repo is now a thin OpenCode adapter only
  • vitestbun:test — removed vitest dev dependency and vitest.config.ts; all 8 test files use bun:test
  • Bun runtimeengines.bun >= 1.3.14; tests run with bun test
  • Plugin simplified — dropped Patcher pool, snapshot file system via store

Removed

  • Block resolution (SWAP.BLK) — tree-sitter native bindings not bundled; use SWAP N.=M: line ranges instead
  • Repair mode — custom Patcher pool removed; 3-way merge recovery now handled by upstream Patcher's built-in Recovery (auto-created, no wiring needed)
  • computeTag export — no longer exposed from read-snapshot.ts
  • diff / lru-cache dependencies — already satisfied by @oh-my-pi/hashline
  • ./core/types exports subpath — types now come from @oh-my-pi/hashline

[0.1.0] — 2026-06-13

Added

  • Initial release: hashline patch language plugin for OpenCode
  • edit tool override — line-anchored, tag-verified edits replace the built-in exact-string edit tool
  • Read hooktool.execute.after hook injects [path#TAG] snapshot tags into all read output
  • InMemorySnapshotStore — session-level tag caching and validation
  • 3-way merge recovery — drift recovery via snapshot history for stale-tag edits
  • Format v1 syntaxreplace/delete/insert before/insert after/insert after block/insert head/insert tail with .. range separator
  • Block resolutionreplace block N: / delete block N: via tree-sitter parser
  • Vendored core — full hashline engine from oh-my-pi under src/core/
  • docs/cross-platform-plugins.md — cross-platform plugin support research note