You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit b1f1a08
Browse filesBrowse the repository at this point in the historyBrowse files
fix(opencode,core): close audit-v8 wave C schema/security findings
- REGRESSION-01/NEW-01: boundSchema drops a combinator/enum keyword whose
members all prune instead of emitting anyOf/oneOf/allOf/enum: [] (invalid
under ajv 2020-12 minItems); regression test now walks every emitted keyword
at the depth, node-budget and cyclic boundaries.
- NEW-03: convertTool restricts root `required` to surviving `properties`,
dropping the keyword when none survive, so a pruned cyclic tool stays callable.
- NEW-10: draft-07 tuple `items: [...]` is normalized to a single schema.
- R-01: external_directory requests the lexical path so alias-keyed config rules
match, while persisting the resolved `always` glob; the P1-02 symlink-swap
re-prompt is preserved.
- deepseek NEW-01: shell pathname globs are treated as dynamic (no `always`
grant), matchStrict excludes `*?[` from the strict group, and leading-glob
arguments are still resolved for external_directory scanning.
- opus NEW-04: sanitizePluginEnv reports dropped key names (never values) at both
call sites and adds the OPENCODE_PLUGIN_ENV_ALLOW escape hatch for user-authored
`mcp.environment` entries.
- NOISE: null/non-object inputSchema guard; matchStrict matches file-path
patterns verbatim (unquote only for shell-shaped grants).
Tests: packages/opencode 3767 pass / 0 fail; packages/core 1125 pass / 0 fail.
Typecheck: packages/opencode and packages/core clean.
0 commit comments