From 66c65a6ab8aec75cee5a58f35d79fec397df1122 Mon Sep 17 00:00:00 2001 From: Hikari Date: Tue, 3 Mar 2026 10:56:44 -0800 Subject: [PATCH] feat: use random creative names for conversation tabs --- CLAUDE.md | 11 ++++- src/lib/stores/conversations.ts | 86 ++++++++++++++++++++++++++++++++- 2 files changed, 93 insertions(+), 4 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index c6459de..380a241 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -20,14 +20,21 @@ When working with issues, pull requests, or other repository operations for this When asked to commit changes for this project: - **Always commit as Hikari** using: `--author="Hikari "` -- **Always use `--no-gpg-sign`** since Hikari doesn't have GPG signing set up +- **Always sign commits** with Hikari's GPG key: `--gpg-sign=5380E4EE7307C808` - **Never add `Co-Authored-By` lines** for Gitea commits - **Always ask for confirmation** before committing +- **Always ask for confirmation** before pushing Example commit command: ```bash -git commit --author="Hikari " --no-gpg-sign -m "your commit message" +git commit --author="Hikari " --gpg-sign=5380E4EE7307C808 -m "your commit message" +``` + +Example push command: + +```bash +git push https://hikari:TOKEN@git.nhcarrigan.com/nhcarrigan/hikari-desktop.git ``` ## Testing Requirements diff --git a/src/lib/stores/conversations.ts b/src/lib/stores/conversations.ts index 00e2644..a3968b4 100644 --- a/src/lib/stores/conversations.ts +++ b/src/lib/stores/conversations.ts @@ -43,6 +43,88 @@ export interface Conversation { draftText: string; } +const TAB_NAMES = [ + // Cosmic & celestial + "Starfall", + "Moonbeam", + "Nebula", + "Aurora", + "Stardust", + "Solstice", + "Comet", + "Eclipse", + "Zenith", + "Celestia", + "Nova", + "Quasar", + "Lyra", + "Andromeda", + "Twilight", + // Magical & fantastical + "Camelot", + "Reverie", + "Arcane", + "Spellbound", + "Mirage", + "Oracle", + "Seraphim", + "Ethereal", + "Labyrinth", + "Enchantment", + // Nature & cosy + "Sakura", + "Ember", + "Cascade", + "Zephyr", + "Serendipity", + "Solace", + "Blossom", + "Whisper", + "Dewdrop", + "Sunbeam", + "Willow", + "Clover", + "Honeybee", + "Buttercup", + "Dandelion", + // Japanese/anime-inspired + "Tsukimi", + "Hanami", + "Yozora", + "Hoshi", + "Koharu", + "Akari", + "Midori", + // Adventure & epic + "Odyssey", + "Wanderer", + "Horizon", + "Voyage", + "Pathfinder", + "Frontier", + // Whimsical & sweet + "Bubblegum", + "Marshmallow", + "Daydream", + "Whimsy", + "Jellybean", + "Sprinkle", + "Cupcake", + // Dreamy & poetic + "Revenant", + "Elysium", + "Halcyon", + "Ephemera", + "Serenade", + "Lullaby", + "Nocturne", + "Rhapsody", +]; + +function pickRandomTabName(): string { + return TAB_NAMES[Math.floor(Math.random() * TAB_NAMES.length)]; +} + function createConversationsStore() { const conversations = writable>(new Map()); const activeConversationId = writable(null); @@ -63,7 +145,7 @@ function createConversationsStore() { const id = generateConversationId(); return { id, - name: name || `Conversation ${conversationCounter}`, + name: name ?? pickRandomTabName(), terminalLines: [], sessionId: null, connectionStatus: "disconnected", @@ -91,7 +173,7 @@ function createConversationsStore() { function ensureInitialized() { if (!initialized) { initialized = true; - const initialConversation = createNewConversation("Main"); + const initialConversation = createNewConversation(); conversations.update((convs) => { convs.set(initialConversation.id, initialConversation); return convs;