feat(cli): add bare startup mode (#3448)

* feat(cli): add bare startup mode

Skip implicit startup discovery in bare mode while keeping explicit inputs such as include directories and extension overrides.

Add a repository plan document and targeted tests for config, startup, skills, extensions, and memory discovery.

* fix(bare): enforce explicit-only startup behavior

* fix(cli): preserve bare tools in non-interactive mode

* chore(docs): remove bare mode planning note
This commit is contained in:
易良 2026-04-20 10:01:59 +08:00 committed by GitHub
parent cfe142e9a3
commit 41f71ab7e7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 750 additions and 72 deletions

View file

@ -55,6 +55,20 @@ describe('BundledSkillLoader', () => {
expect(commands).toEqual([]);
});
it('should return empty array in bare mode', async () => {
const skill = makeSkill();
mockSkillManager.listSkills.mockResolvedValue([skill]);
(
mockConfig as Config & { getBareMode: ReturnType<typeof vi.fn> }
).getBareMode = vi.fn().mockReturnValue(true);
const loader = new BundledSkillLoader(mockConfig);
const commands = await loader.loadCommands(signal);
expect(commands).toEqual([]);
expect(mockSkillManager.listSkills).not.toHaveBeenCalled();
});
it('should load bundled skills as slash commands', async () => {
const skill = makeSkill();
mockSkillManager.listSkills.mockResolvedValue([skill]);