Agent improvements: persistent storage, food preferences fix, smart merging, birthdate display, and cleanup #8
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.
Summary
This PR contains multiple improvements to the agents and data model:
foodPreferencesobject into separatefoodPreferencesLikesandfoodPreferencesDislikesarraysdefaultServingsfield from planner settingsCommits
1.
init: persistent storage for debug in studio:memory:to persistent file storage at.data/agent-storage.db2.
docs: fixed web app port + update doc3.
fix: select UI + likes/dislikes overrideDatabase Schema Changes:
foodPreferences(JSON object with likes/dislikes) into two separate columns:foodPreferencesLikes(TEXT array)foodPreferencesDislikes(TEXT array)0002_split_food_preferences_columns.sqlwith data migrationSmart Array Merging:
ArrayMergeModeSchemawith modes:add,remove,replaceupdateMemberByNameToolnow supports smart merging for:dietaryRestrictions/dietaryRestrictionsModeallergies/allergiesModefoodPreferencesLikes/foodPreferencesLikesModefoodPreferencesDislikes/foodPreferencesDislikesModeUI Improvements:
<Select>components@radix-ui/react-select)members-list.tsxto use new field namesAgent Prompt Updates:
Fixed Bug:
4.
birthdate fixes, clean planner settingsBirthdate Display Improvements:
calculateAgeFromBirthdate()- handles partial birthdates (year only, year+month, full date)formatPartialBirthdate()- displays dates appropriately based on available fieldsgetBirthdateDisplay()- shows formatted date with calculated ageRemoved defaultServings:
defaultServingscolumn fromPlannerSettingstable0003_remove_default_servings.sqlNew TODO:
Files Changed
Core Package
packages/core/src/ai/index.ts- Persistent agent storagepackages/core/src/ai/agents/onboarding-agent.ts- Updated promptspackages/core/src/ai/memory/onboarding-memory.ts- Updated schemapackages/core/src/ai/tools/member-tools.ts- Smart array mergingpackages/core/src/ai/tools/planner-tools.ts- Removed defaultServingspackages/core/src/ai/tools/family-tools.ts- Removed defaultServingspackages/core/src/domain/db/schema.drizzle.ts- Schema updatespackages/core/src/domain/schemas/planner.schema.ts- Removed defaultServingspackages/core/src/domain/services/family-service.ts- Removed defaultServingsMigrations
0002_split_food_preferences_columns.sql- Split foodPreferences0003_remove_default_servings.sql- Remove defaultServingsWeb App
apps/web/src/components/family/create-family-modal.tsx- Select componentsapps/web/src/components/family/members-list.tsx- New field names + birthdate displayapps/web/src/components/family/planner-settings.tsx- Removed defaultServingsapps/web/vite.config.ts- Explicit port 3000UI Package
packages/ui/src/components/ui/select.tsx- New Select componentScripts & Docs
scripts/seed.ts- Updated field namesREADME.md- Added running instructionsAGENTS.md- Added camelCase column naming guidelinespecs/database-schema.md- Updated schemaspecs/data-models.md- Updated typesspecs/TODO.md- Removed fixed bug, added new itemMigration
After merging, run migrations:
Note: If you have existing data, migration
0002will automatically migratefoodPreferences.likesandfoodPreferences.dislikesto the new columns.