Deepen query dispatch seam with Command Topology Module (#3078)

* Deepen query dispatch seam with command topology module

* Stabilize SDK parity defaults and integration test gating

* docs(architecture): record pre-project config policy and e2e gate

* refactor(query): stop injecting native adapter in CLI dispatch path

* fix(config): align workflow auto-chain typing and docs
This commit is contained in:
Tom Boucher
2026-05-03 18:11:38 -04:00
committed by GitHub
parent 9c92c32f6e
commit 5e21bf7567
27 changed files with 260 additions and 121 deletions

View File

@@ -187,26 +187,24 @@ describe('loadConfig', () => {
// config.json is authoritative — buildNewProjectConfig baked the user
// defaults in at /gsd:new-project time.
it('pre-project: layers user defaults from ~/.gsd/defaults.json', async () => {
it('pre-project: ignores user defaults and uses built-in defaults', async () => {
await writeUserDefaults({ resolve_model_ids: 'omit' });
// No project config.json
const config = await loadConfig(tmpDir);
expect((config as Record<string, unknown>).resolve_model_ids).toBe('omit');
// Built-in defaults still present for keys user did not override
expect((config as Record<string, unknown>).resolve_model_ids).toBeUndefined();
expect(config.model_profile).toBe('balanced');
expect(config.workflow.plan_check).toBe(true);
});
it('pre-project: deep-merges nested keys from user defaults', async () => {
it('pre-project: keeps built-in nested defaults even when user defaults exist', async () => {
await writeUserDefaults({
git: { branching_strategy: 'milestone' },
agent_skills: { planner: 'user-skill' },
});
const config = await loadConfig(tmpDir);
expect(config.git.branching_strategy).toBe('milestone');
expect(config.git.branching_strategy).toBe('none');
expect(config.git.phase_branch_template).toBe('gsd/phase-{phase}-{slug}');
expect(config.agent_skills).toEqual({ planner: 'user-skill' });
expect(config.agent_skills).toEqual({});
});
it('project config is authoritative over user defaults (CJS parity)', async () => {