feat: Global config merge with override support #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
~/.config/opencode/command-hooks.jsonc) and project (.opencode/command-hooks.jsonc) configsoverrideGlobalflag to suppress global hooks for same eventignoreGlobalConfigflag to skip global config entirelyBehavior
overrideGlobal: trueon hookignoreGlobalConfig: truein project config~/.config/opencode/entirelytool: "*"+overrideGlobalExample
To override all global hooks for an event:
{ "session": [ { "id": "project-idle", "when": { "event": "session.idle" }, "run": "echo only this runs", "overrideGlobal": true } ] }Changes
src/types/hooks.ts— addedoverrideGlobalandignoreGlobalConfigtypessrc/schemas.ts— added fields to Zod schemassrc/config/merge.ts— addedoverrideGlobalfiltering logicsrc/config/global.ts— loads both configs and merges themtests/config.global.test.ts— 14 tests for merge behaviorREADME.md— updated docsTesting