REQ-FUN-100
Configuration loaded as merge of global + per-project overrides; project keys win
What
System SHALL load configuration as a merge of global config and per-project overrides, with project keys winning over global keys.
Why
Inspired by AoE; lets projects override system-wide defaults (lease TTL, worktree strategy, notification prefs) without fragmenting global rules. See arch_decision_config_merge memory.
How
Helper merge_configs(global_cfg, project_cfg) performs a top-level dict merge (nested dicts replaced wholesale, NOT deep-merged); storage in global_config and project_config tables with key TEXT, value JSONB; per-request cache.
Done when
A project setting overrides a global setting of the same key; non-overridden keys fall through to global; precedence is documented in agent_integration.md section 12; audit-logged on write.
Out of scope
Deep-merge of nested objects (deliberately top-level only).
established project management guidelines Mapping
Configuration merge (global + per-project) is Configuration Management policy.