✏️ Significantly Improved Editing Accuracy
This release is the result of @minpeter's careful and sustained work to properly fix the hashline implementation that had been incorrectly ported from oh-my-pi. The effort involved deep understanding of how models actually interpret and apply structured line references — the kind of problem that looks simple on the surface but isn't.
The outcome: agent editing accuracy has improved substantially. Based on our current assessment, this implementation now outperforms the original oh-my-pi version it was ported from.
Good test harness design matters here. It's easy to write tests that pass without reflecting real model behavior — writing ones that actually do requires understanding both sides of the fence.
Beyond hashline, a number of other bugs were also resolved in this cycle.
Big shoutout to @minpeter. 🎉
- e997e00 Merge pull request #2088 from minpeter/feat/hashline-edit-error-hints
- b8257dc fix(hashline-edit): tolerate >>> prefix and spaces around # in line refs
- 365d863 fix(hashline-edit): use instanceof for hash mismatch error detection
- 1785313 fix(hashline-read-enhancer): skip hashifying OpenCode-truncated lines
- ac962d6 fix(hashline-edit): add same-line operation precedence ordering
- d61c0f8 fix(hashline-read-enhancer): guard against overwriting error output with success message
- a567cd0 fix(hashline-edit): address Oracle review feedback
- 55ad429 fix(hashline-edit): widen non-numeric prefix detection and remove duplicate try-catch
- c6a6989 fix(hashline-read-enhancer): simplify write tool output to line count summary
- 2aeb96c fix(hashline-edit): improve error messages for invalid LINE#ID references
- 5fd65f2 Merge pull request #2086 from code-yeongyu/refactor/hashline-legacy-cleanup
- b03aae5 fix: remove accidentally committed node_modules symlink
- 8c3a0ca refactor(hashline-edit): rename legacy operation names in error messages
- 9a2e0f1 refactor(hashline-edit): remove unnecessary barrel re-exports of internal primitives
- d28ebd1 refactor(hashline-edit): remove HASHLINE_LEGACY_REF_PATTERN and legacy ref compat
- fb92bab refactor(hashline-edit): remove dead applyInsertBetween function
- 5d30ec8 Merge pull request #2079 from minpeter/feat/hashline-edit-op-schema
- f50f3d3 fix(hashline-edit): clarify LINE#ID placeholder to prevent literal interpretation
- 833c26a sisyphus waits for oracle
- 60cf2de fix(hashline-edit): detect overlapping ranges and prevent false unwrap of blank-line spans
- c7efe8f fix(hashline-edit): preserve intentional whitespace removal in autocorrect
- 54b756c refactor(hashline): change content separator from colon to pipe
- 1cb3627 fix(hashline-read-enhancer): handle inline tag from updated OpenCode read tool
- 08b663d refactor(hashline-edit): enforce three-op edit model
- fddd6f1 @Firstbober has signed the CLA in #2080
- e11c217 fix(tools/background-task): respect block=true even when full_session=true
- 6ec0ff7 refactor(hashline-edit): align tool payload to op/pos/end/lines
Thank you to 1 community contributor:
- @minpeter:
- refactor(hashline-edit): align tool payload to op/pos/end/lines
- refactor(hashline-edit): enforce three-op edit model
- fix(hashline-read-enhancer): handle inline tag from updated OpenCode read tool
- refactor(hashline): change content separator from colon to pipe
- fix(hashline-edit): preserve intentional whitespace removal in autocorrect
- fix(hashline-edit): detect overlapping ranges and prevent false unwrap of blank-line spans
- fix(hashline-edit): improve error messages for invalid LINE#ID references
- fix(hashline-read-enhancer): simplify write tool output to line count summary