Feat/buddy-profiles#17
Merged
Merged
Conversation
Accept upstream's TypeScript migration and interactive builder. Branch gallery/profile changes cached in branch-reference.patch for reimplementation on the new TS codebase. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Contributor
Author
|
Not ready for review sry, making some adjustments, will comment when ready |
Owner
|
No worries looks like a great feature add lmk when done and I'll review and merge |
5 tasks
Contributor
Author
|
@cpaczek PR is ready for review |
Owner
|
@Ahmad8864 Merged ty for the PR just doing some code quality checks and fixes before I release |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Buddy Profiles: save, switch, and manage multiple companions - now with animated sprites
Summary
Adds a profile system that lets users save multiple buddy configurations and switch between them without re-rolling. Sprites are now animated throughout the UI (idle frame sequences play in both the builder preview and the gallery). Each profile persists the full buddy identity - species, rarity, cosmetics, stats, companion name, and personality - so switching feels like reuniting with an old friend, not starting over.
any-buddy buddies-- new command to browse saved buddies in an interactive gallery (OpenTUI) or sequential fallback promptPetConfigV2) with transparent V1 migration; profiles stored in~/.claude-code-any-buddy.jsonpreviousSaltcreateAnimator) drives idle sprite frames in both the builder (main creation screen) and gallery panelsNew files
src/tui/gallery/(5 files)src/tui/commands/buddies.tssrc/tui/animator.tssrc/config/pet-config.ts(extended)src/types.ts(extended)ProfileDataandPetConfigV2interfacesTests added
pet-config-v2.test.ts-- V1-to-V2 migration, profile CRUD, edge cases (delete active buddy, empty state)render-animated.test.ts-- animated sprite rendering withIDLE_SEQUENCEanimator.test.ts-- subscription lifecycle, cleanup, lazy start/stopstat-bars-from-stats.test.ts-- stat bar rendering from profile statsgallery/state.test.ts-- gallery entry building, active entry detectionHow it works
When a buddy is built, it's automatically saved as a named profile. The gallery shows all profiles with a live animated preview. On selection, the buddies command:
Notes
unref'd so it never blocks process exit@inquirer/promptsselect if OpenTUI is unavailable