summaryrefslogtreecommitdiffhomepage
path: root/packages/core/src/config/index.ts
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-03 16:08:40 +0900
committerAdam Malczewski <[email protected]>2026-06-03 16:08:40 +0900
commitebd68da7dfd6d4f2ef6c6b29a62ec848bbf15cef (patch)
tree28de3a1dcd5e85a8fa9edb978ce0bad665ec722c /packages/core/src/config/index.ts
parent5af9bd021c206b9e4330ab6a549dc8d013d91537 (diff)
downloaddispatch-ebd68da7dfd6d4f2ef6c6b29a62ec848bbf15cef.tar.gz
dispatch-ebd68da7dfd6d4f2ef6c6b29a62ec848bbf15cef.zip
feat(config): merge home-directory global dispatch.toml under project config
Load an optional global config at ~/.config/dispatch/dispatch.toml (override via DISPATCH_GLOBAL_CONFIG) and deep-merge it underneath every project/working-directory dispatch.toml, so machine-wide settings — most notably globally available LSP servers — work in any repo without per-repo config. Local always wins on conflicts. - loader: add getGlobalConfigPath(), loadGlobalConfig(), mergeConfigs(); loadConfig(dir) now loads+merges global. [lsp] and [[keys]] merge by id; [permissions] merge per-group with global patterns emitted first so local rules win at evaluation time (findLast). A malformed global config is downgraded to empty rather than breaking every repo. - watcher: watch BOTH global and local dispatch.toml so hot-reload re-merges on either change (dedupes when paths coincide). - export new loader fns from config/index and core index. - types/agent-manager: doc updates reflecting merged LSP resolution. - dispatch.toml: document global-default merge behavior; activate biome and typescript-language-server LSP entries. - tests: merge precedence, lsp/keys merge-by-id, permissions merge, filesystem integration, malformed-global resilience; isolate global path in existing loader tests.
Diffstat (limited to 'packages/core/src/config/index.ts')
-rw-r--r--packages/core/src/config/index.ts8
1 files changed, 7 insertions, 1 deletions
diff --git a/packages/core/src/config/index.ts b/packages/core/src/config/index.ts
index 5b128c4..4806409 100644
--- a/packages/core/src/config/index.ts
+++ b/packages/core/src/config/index.ts
@@ -1,3 +1,9 @@
-export { configToRuleset, loadConfig } from "./loader.js";
+export {
+ configToRuleset,
+ getGlobalConfigPath,
+ loadConfig,
+ loadGlobalConfig,
+ mergeConfigs,
+} from "./loader.js";
export { validateConfig } from "./schema.js";
export { createConfigWatcher } from "./watcher.js";