Introduce a small easter egg. Woof. (#412)

Also changes auto-completion and /help to skip over slash commands that don't contain a description to avoid spoiling the surprise.
This commit is contained in:
DeWitt Clinton
2025-05-17 21:57:27 -07:00
committed by GitHub
parent 9749fcb425
commit 13a6a9a690
6 changed files with 43 additions and 9 deletions

View File

@@ -48,6 +48,7 @@ describe('useSlashCommandProcessor', () => {
let mockOpenThemeDialog: ReturnType<typeof vi.fn>;
let mockPerformMemoryRefresh: ReturnType<typeof vi.fn>;
let mockConfig: Config;
let mockCorgiMode: ReturnType<typeof vi.fn>;
beforeEach(() => {
mockAddItem = vi.fn();
@@ -58,6 +59,7 @@ describe('useSlashCommandProcessor', () => {
mockOpenThemeDialog = vi.fn();
mockPerformMemoryRefresh = vi.fn().mockResolvedValue(undefined);
mockConfig = { getDebugMode: vi.fn(() => false) } as unknown as Config;
mockCorgiMode = vi.fn();
// Clear mocks for fsPromises if they were used directly or indirectly
vi.mocked(fsPromises.readFile).mockClear();
@@ -89,6 +91,7 @@ describe('useSlashCommandProcessor', () => {
mockOnDebugMessage,
mockOpenThemeDialog,
mockPerformMemoryRefresh,
mockCorgiMode,
),
);
return result.current;

View File

@@ -15,7 +15,7 @@ import { addMemoryEntry } from '../../config/memoryUtils.js';
export interface SlashCommand {
name: string;
altName?: string;
description: string;
description?: string;
action: (mainCommand: string, subCommand?: string, args?: string) => void;
}
@@ -31,6 +31,7 @@ export const useSlashCommandProcessor = (
onDebugMessage: (message: string) => void,
openThemeDialog: () => void,
performMemoryRefresh: () => Promise<void>, // Add performMemoryRefresh prop
toggleCorgiMode: () => void,
) => {
const addMessage = useCallback(
(message: Message) => {
@@ -131,6 +132,12 @@ export const useSlashCommandProcessor = (
}
},
},
{
name: 'corgi',
action: (_mainCommand, _subCommand, _args) => {
toggleCorgiMode();
},
},
{
name: 'quit',
altName: 'exit',
@@ -151,6 +158,7 @@ export const useSlashCommandProcessor = (
showMemoryAction,
addMemoryAction,
addMessage,
toggleCorgiMode,
],
);

View File

@@ -142,6 +142,7 @@ export function useCompletion(
(altNameMatch && cmd.altName && cmd.altName.length > 1)
);
})
.filter((cmd) => cmd.description)
.map((cmd) => ({
label: cmd.name, // Always show the main name as label
value: cmd.name, // Value should be the main command name for execution