diff --git a/packages/agents/src/kb-shared/__tests__/fixtures/home-single-default/.agents/kb.yaml b/packages/agents/src/kb-shared/__tests__/fixtures/home-single-default/.agents/kb.yaml new file mode 100644 index 00000000..7e614fe5 --- /dev/null +++ b/packages/agents/src/kb-shared/__tests__/fixtures/home-single-default/.agents/kb.yaml @@ -0,0 +1,7 @@ +# Single-entry user-global registry fixture (regression: #684). +# Its sole entry is also the default, mirroring the issue's reported registry shape. +kbs: + coding: + path: ../../vault-b + description: Fixture single-entry default vault + default: true diff --git a/packages/agents/src/kb-shared/__tests__/resolve-writable-kb.test.ts b/packages/agents/src/kb-shared/__tests__/resolve-writable-kb.test.ts index a950e92f..2920ed0d 100644 --- a/packages/agents/src/kb-shared/__tests__/resolve-writable-kb.test.ts +++ b/packages/agents/src/kb-shared/__tests__/resolve-writable-kb.test.ts @@ -15,6 +15,7 @@ const HOME_WITH_DEFAULT = join(FIXTURES, 'home-with-default'); const HOME_MALFORMED = join(FIXTURES, 'malformed-registry'); const HOME_READONLY_DEFAULT = join(FIXTURES, 'home-readonly-default'); const HOME_READONLY_NAMED = join(FIXTURES, 'home-readonly-named'); +const HOME_SINGLE_DEFAULT = join(FIXTURES, 'home-single-default'); // A home directory with no `.agents/kb.yaml`, so the user-global registry resolves empty. const HOME_EMPTY = FIXTURES; @@ -68,6 +69,15 @@ describe(resolveWritableKb, () => { }); }); + it('resolves --kb for a single-entry registry whose sole entry is the default (regression: #684)', async () => { + const result = await resolveWritableKb({ startDir: '/', explicitKb: 'coding', home: HOME_SINGLE_DEFAULT }); + + expect(result).toEqual({ + ok: true, + kb: { name: 'coding', path: VAULT_B, source: 'explicit' }, + }); + }); + it('returns no-kb-resolvable when --kb names an entry that does not exist', async () => { const result = await resolveWritableKb({ startDir: PROJECT_KB, explicitKb: 'nonexistent', home: HOME_EMPTY });