Tags: ASidorenkoCode/openslimedit
Tags
fix: hash reference lookup failures with Codex models
Four fixes for "Hash reference not found" errors:
1. Normalize hash refs — trim whitespace, strip trailing "|",
handle spaces around ":" (models may format refs loosely)
2. Line truncation consistency — computeFileHashes now truncates
lines >2000 chars before hashing, matching OpenCode's read tool
output. Previously produced different hashes for long lines.
3. Recompute hashes after edits — instead of clearing, recompute
from the new file content so subsequent stale-ref errors show
"line N now has hash X" instead of generic "not found"
4. Diagnostic error messages — when hash isn't found, shows what
hash IS at that line number (or that the line doesn't exist),
helping the model recover by re-reading
Also adds explicit system prompt guidance on hash ref format
("copy exactly, don't include | separator").
Co-Authored-By: Claude Opus 4.6 <[email protected]>
feat: multi-edit support for edit tool (Anthropic models) The edit tool now accepts an `edits` array, allowing multiple edits in a single call (same file). Edits are applied bottom-to-top to avoid offset issues. Both edit and apply_patch now share the same edits array interface for consistency. Co-Authored-By: Claude Opus 4.6 <[email protected]>
feat: multi-file edit support for apply_patch (Codex) The apply_patch tool now accepts an `edits` array for batching multiple file edits in a single call. Edits to the same file are grouped into one *** Update File section with multiple @@ chunks, sorted by line number for correct sequential application. - Separate schemas: edit (single-file) vs apply_patch (multi-file) - Separate descriptions per tool - Hash invalidation tracks all edited files per patch Co-Authored-By: Claude Opus 4.6 <[email protected]>
feat: add apply_patch support for Codex models Hashline now hooks both `edit` (Anthropic) and `apply_patch` (Codex). For Codex models, hash references are resolved into generated patchText using the *** Begin Patch format with @@ context lines. Same three operations work for both tools: - Replace line (startHash) - Replace range (startHash + endHash) - Insert after (afterHash) Co-Authored-By: Claude Opus 4.6 <[email protected]>
feat: make package npm-installable and update installation docs - Add description, repository, keywords, author, homepage, bugs to package.json - Move @opencode-ai/plugin to peerDependencies - Add files field to control published package contents - Add npm/bun install option to README Co-Authored-By: Claude Opus 4.6 <[email protected]>