Skip to content

feat(codemode): support JSON callbacks - #38006

Merged
rekram1-node merged 3 commits into
v2from
json-parity
Jul 21, 2026
Merged

feat(codemode): support JSON callbacks#38006
rekram1-node merged 3 commits into
v2from
json-parity

Conversation

@rekram1-node

Copy link
Copy Markdown
Collaborator

Summary

  • add effectful callback plumbing for JSON.parse revivers and JSON.stringify function replacers
  • support stringify array replacer filtering, ordering, deduplication, and number-key coercion
  • update the support matrix and direct callback/security coverage

Test262 coverage

Adapted relevant cases from Test262 revision 250f204f23a9249ff204be2baec29600faae7b75, matching the revision used by the existing CodeMode parity suites. Coverage includes reviver traversal/deletion/root replacement and replacer traversal/results/errors/array property lists.

Intentional boundaries

  • CodeMode functions still have no this; callbacks receive key/value arguments without holder context.
  • primitive wrapper, Proxy, Symbol, BigInt, and general property-semantics cases remain out of scope
  • blocked keys (__proto__, constructor, prototype) remain rejected before callback traversal

Verification

  • bun test (982 pass)
  • bun typecheck
  • Prettier check on touched files

@rekram1-node
rekram1-node merged commit 065b108 into v2Jul 21, 2026
8 checks passed
@rekram1-node
rekram1-node deleted the json-parity branch July 21, 2026 03:25
github-actionsBot pushed a commit to ReStranger/opencode that referenced this pull request Jul 21, 2026
* upstream/v2:
feat(codemode): support JSON callbacks (anomalyco#38006)
github-actionsBot 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-actionsBot 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-actionsBot 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-actionsBot 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 freeto 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

@rekram1-node