feat: implement custom pets in Openclaude#1011
feat: implement custom pets in Openclaude#1011devNull-bootloader wants to merge 3 commits intoGitlawb:mainfrom
Conversation
|
Thanks for the contribution, @devNull-bootloader, and welcome. I confirmed
Happy to do a full code review once 1 and 2 are settled. Thanks again. |
Vasanthdev2004
left a comment
There was a problem hiding this comment.
Targeted maintainer triage of current head c7c9ad597e16e3b34619ce63c5d1341f738263ad; not a full code review because the PR is draft and CI is failing before tests run.
Verdict: Needs changes
Blocking issue:
- CI fails during
bun install --frozen-lockfilewithlockfile had changes, but lockfile is frozen. This PR changespackage.json, sobun.lockneeds to be regenerated/committed against currentmainbefore the test suite can even run.
What I checked:
- Changed files are limited to the custom pet types/wizard/state surface plus
package.json. - The current failing job does not reach the unit tests; it stops at dependency installation.
Please rebase onto current main, commit the updated lockfile if the dependency change is intentional, and rerun CI. After that, the actual custom-pet state/validation flow can get a real review.
This pull request introduces a new structure for supporting user-created "custom pets" within the application, including type definitions, validation logic, and integration into the application state. The most significant changes are the addition of new types and validation utilities for custom pets, as well as updates to the application state to store and manage these pets.
Custom Pet Types and Validation Utilities:
customPetTypes.tswith comprehensive type definitions for custom pets, including stats, rarity, traits, and custom replies, as well as validation functions to ensure data integrity when creating or loading custom pets.CustomPet,CustomPetBones,CustomPetSoul,StoredCustomPets) fromtypes.tsfor use elsewhere in the codebase.Application State Integration:
AppStatetype to includecustomPets(an array of user-created pets) andequippedCustomPetId(the ID of the currently active custom pet).getDefaultAppState()to initializecustomPetsas an empty array andequippedCustomPetIdas undefined.CustomPettype inAppStateStore.tsto support the new state properties.