Skip to content

fix(core): improve patch errors - #38016

Merged
rekram1-node merged 2 commits into
v2from
patch-errors
Jul 21, 2026
Merged

fix(core): improve patch errors#38016
rekram1-node merged 2 commits into
v2from
patch-errors

Conversation

@rekram1-node

@rekram1-node rekram1-node commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • distinguish missing opening and closing patch boundaries with typed parser errors
  • report invalid hunk headers with their line number and valid alternatives
  • lift the parser's pure Result into Effect without flattening unknown exceptions
  • preserve filesystem failure details for missing or invalid update targets

Scope

These changes only improve calls that already fail. They do not make the parser reject malformed patches that OpenCode currently accepts for V1 compatibility.

Testing

  • bun test test/patch.test.ts test/tool-patch.test.ts
  • bun typecheck
  • git diff --check

@rekram1-node
rekram1-node merged commit 63e2054 into v2 Jul 21, 2026
8 of 9 checks passed
@rekram1-node
rekram1-node deleted the patch-errors branch July 21, 2026 03:49
github-actions Bot pushed a commit to ReStranger/opencode that referenced this pull request Jul 21, 2026
* upstream/v2:
  test(app): stabilize offset observer test (anomalyco#38044)
  feat(codemode): support bounded async iteration (anomalyco#38040)
  fix(core): normalize CRLF patch lines (anomalyco#38038)
  fix(core): accept padded patch markers (anomalyco#38036)
  fix(core): compose successive patch updates (anomalyco#38034)
  feat(codemode): support labeled control flow (anomalyco#38035)
  fix(core): improve patch errors (anomalyco#38016)
  fix(server): allow authenticated CORS preflight (anomalyco#38026)
github-actions Bot pushed a commit to ReStranger/opencode that referenced this pull request Jul 21, 2026
* upstream/v2: (23 commits)
  refactor(codemode): simplify model-facing wording (anomalyco#38042)
  fix(core): enforce patch EOF anchors (anomalyco#38039)
  fix(tui): prevent autocomplete search flicker (anomalyco#38128)
  refactor(core): break plugin host cycle (anomalyco#38120)
  refactor: extract shared util package (anomalyco#37828)
  fix: preserve runtime option defaults (anomalyco#38118)
  refactor(tui): simplify mini footer status line (anomalyco#38112)
  mini: settle on wait and durable pending (anomalyco#37984)
  test(app): stabilize offset observer test (anomalyco#38044)
  feat(codemode): support bounded async iteration (anomalyco#38040)
  fix(core): normalize CRLF patch lines (anomalyco#38038)
  fix(core): accept padded patch markers (anomalyco#38036)
  fix(core): compose successive patch updates (anomalyco#38034)
  feat(codemode): support labeled control flow (anomalyco#38035)
  fix(core): improve patch errors (anomalyco#38016)
  fix(server): allow authenticated CORS preflight (anomalyco#38026)
  feat(codemode): support JSON callbacks (anomalyco#38006)
  fix: remove legacy sdk from ci builds
  removed packages/opencode
  fix(server): preserve v1 auth compatibility
  ...
github-actions Bot pushed a commit to ReStranger/opencode that referenced this pull request Jul 21, 2026
* upstream/v2: (24 commits)
  feat(cli): port ACP to V2 (anomalyco#37907)
  refactor(codemode): simplify model-facing wording (anomalyco#38042)
  fix(core): enforce patch EOF anchors (anomalyco#38039)
  fix(tui): prevent autocomplete search flicker (anomalyco#38128)
  refactor(core): break plugin host cycle (anomalyco#38120)
  refactor: extract shared util package (anomalyco#37828)
  fix: preserve runtime option defaults (anomalyco#38118)
  refactor(tui): simplify mini footer status line (anomalyco#38112)
  mini: settle on wait and durable pending (anomalyco#37984)
  test(app): stabilize offset observer test (anomalyco#38044)
  feat(codemode): support bounded async iteration (anomalyco#38040)
  fix(core): normalize CRLF patch lines (anomalyco#38038)
  fix(core): accept padded patch markers (anomalyco#38036)
  fix(core): compose successive patch updates (anomalyco#38034)
  feat(codemode): support labeled control flow (anomalyco#38035)
  fix(core): improve patch errors (anomalyco#38016)
  fix(server): allow authenticated CORS preflight (anomalyco#38026)
  feat(codemode): support JSON callbacks (anomalyco#38006)
  fix: remove legacy sdk from ci builds
  removed packages/opencode
  ...
github-actions Bot pushed a commit to ReStranger/opencode that referenced this pull request Jul 21, 2026
* upstream/v2: (24 commits)
  feat(cli): port ACP to V2 (anomalyco#37907)
  refactor(codemode): simplify model-facing wording (anomalyco#38042)
  fix(core): enforce patch EOF anchors (anomalyco#38039)
  fix(tui): prevent autocomplete search flicker (anomalyco#38128)
  refactor(core): break plugin host cycle (anomalyco#38120)
  refactor: extract shared util package (anomalyco#37828)
  fix: preserve runtime option defaults (anomalyco#38118)
  refactor(tui): simplify mini footer status line (anomalyco#38112)
  mini: settle on wait and durable pending (anomalyco#37984)
  test(app): stabilize offset observer test (anomalyco#38044)
  feat(codemode): support bounded async iteration (anomalyco#38040)
  fix(core): normalize CRLF patch lines (anomalyco#38038)
  fix(core): accept padded patch markers (anomalyco#38036)
  fix(core): compose successive patch updates (anomalyco#38034)
  feat(codemode): support labeled control flow (anomalyco#38035)
  fix(core): improve patch errors (anomalyco#38016)
  fix(server): allow authenticated CORS preflight (anomalyco#38026)
  feat(codemode): support JSON callbacks (anomalyco#38006)
  fix: remove legacy sdk from ci builds
  removed packages/opencode
  ...
github-actions Bot pushed a commit to ReStranger/opencode that referenced this pull request Jul 21, 2026
* upstream/v2: (26 commits)
  fix(core): refresh model catalog every five minutes (anomalyco#38142)
  feat(util): configure package publishing (anomalyco#38129)
  feat(cli): port ACP to V2 (anomalyco#37907)
  refactor(codemode): simplify model-facing wording (anomalyco#38042)
  fix(core): enforce patch EOF anchors (anomalyco#38039)
  fix(tui): prevent autocomplete search flicker (anomalyco#38128)
  refactor(core): break plugin host cycle (anomalyco#38120)
  refactor: extract shared util package (anomalyco#37828)
  fix: preserve runtime option defaults (anomalyco#38118)
  refactor(tui): simplify mini footer status line (anomalyco#38112)
  mini: settle on wait and durable pending (anomalyco#37984)
  test(app): stabilize offset observer test (anomalyco#38044)
  feat(codemode): support bounded async iteration (anomalyco#38040)
  fix(core): normalize CRLF patch lines (anomalyco#38038)
  fix(core): accept padded patch markers (anomalyco#38036)
  fix(core): compose successive patch updates (anomalyco#38034)
  feat(codemode): support labeled control flow (anomalyco#38035)
  fix(core): improve patch errors (anomalyco#38016)
  fix(server): allow authenticated CORS preflight (anomalyco#38026)
  feat(codemode): support JSON callbacks (anomalyco#38006)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant