Skip to content
Merged

v0.15.0 #1435

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
487 commits
Select commit Hold shift + click to select a range
1d13f83
refactor(clipboard): improve conditional rendering of action buttons
marcuscastelo Nov 27, 2025
a98d8c1
Update src/modules/clipboard/README.md
marcuscastelo Nov 27, 2025
ae2f38f
Update src/modules/clipboard/ui/PasteConfirmModal.tsx
marcuscastelo Nov 27, 2025
08738ea
Update src/modules/clipboard/ui/PasteConfirmModal.tsx
marcuscastelo Nov 27, 2025
a82faa4
Update src/modules/clipboard/ui/PasteConfirmModal.tsx
marcuscastelo Nov 27, 2025
96081a0
Update src/modules/clipboard/README.md
marcuscastelo Nov 27, 2025
8b80969
Update src/modules/clipboard/README.md
marcuscastelo Nov 27, 2025
81b50eb
Update src/modules/clipboard/application/store/clipboardStore.ts
marcuscastelo Nov 27, 2025
c5c2cd7
fix(MaxQuantityButton): adjust max selection logic to decrement by one
marcuscastelo Nov 27, 2025
5352797
feat(item-ui): add ItemMaxQuantityButton component for macro quantity…
marcuscastelo Nov 27, 2025
ee33ae2
refactor(item-edit-modal): simplify item type display logic and toggl…
marcuscastelo Nov 27, 2025
943b672
refactor(item-edit-modal): replace generateId with regenerateId for i…
marcuscastelo Nov 27, 2025
18b16b6
refactor(item-edit-modal-ui): update visibility condition for Convert…
marcuscastelo Nov 27, 2025
ef7255d
Merge pull request #1348 from marcuscastelo/copilot/add-max-button-to…
marcuscastelo Nov 27, 2025
cb9f635
Initial plan
Copilot Nov 27, 2025
cfb755f
Merge branch 'rc/v0.15.0' into copilot/allow-single-item-recipes
marcuscastelo Nov 27, 2025
17f790d
Add editable name input for GroupItem and RecipeItem in ItemEditBody
Copilot Nov 27, 2025
b884b4b
refactor(recipe-item): extract quantity scaling logic to use case
marcuscastelo Nov 27, 2025
9071851
Refactor validation logic into shared itemValidation module
Copilot Nov 27, 2025
9b0250d
refactor(item-edit-modal-ui): remove unused UnsupportedItemMessage im…
marcuscastelo Nov 27, 2025
0609535
Merge pull request #1319 from marcuscastelo/copilot/add-in-app-clipbo…
marcuscastelo Nov 27, 2025
bd8bea9
Automatically added GitHub issue links to TODOs
github-actions[bot] Nov 27, 2025
03a2985
Merge branch 'rc/v0.15.0' into copilot/add-edit-name-field-groupitem-…
marcuscastelo Nov 27, 2025
de58553
Merge pull request #1352 from marcuscastelo/copilot/add-edit-name-fie…
marcuscastelo Nov 27, 2025
7eba79a
Initial plan
Copilot Nov 27, 2025
dfe7591
refactor: remove specializedModalHelpers and adopt per-module modal c…
Copilot Nov 27, 2025
f2fb5a0
refactor: move ModalController type to shared modal types and update …
Copilot Nov 27, 2025
9152e06
feat(prompts): add suggestions for GitHub Copilot agents, chat modes,…
marcuscastelo Nov 27, 2025
ad626b8
feat(agents): add multiple new agents for codebase management, locali…
marcuscastelo Nov 27, 2025
e65cdaf
refactor: remove app version files from .gitignore
marcuscastelo Nov 27, 2025
bd4ce7a
Initial plan
Copilot Nov 27, 2025
af680d5
chore: fix lint issues in clipboard and item components
Copilot Nov 27, 2025
e9a3ddb
fix: guard WeightChartOptions formatter against undefined values
Copilot Nov 27, 2025
19c4254
Initial plan
Copilot Nov 27, 2025
21ad8ed
chore: create app-version.json for testing
Copilot Nov 27, 2025
afe9e44
refactor(modal): simplify modal closing by removing controller abstra…
marcuscastelo Nov 27, 2025
609d92d
Merge pull request #1360 from marcuscastelo/copilot/refactor-modal-he…
marcuscastelo Nov 27, 2025
9872dc0
Merge branch 'rc/v0.15.0' into copilot/fix-typeerror-hiding-peso-dese…
marcuscastelo Nov 27, 2025
5f16127
Merge pull request #1362 from marcuscastelo/copilot/fix-typeerror-hid…
marcuscastelo Nov 27, 2025
5c4bba7
Merge branch 'rc/v0.15.0' into copilot/allow-single-item-recipes
marcuscastelo Nov 27, 2025
6242241
feat: add guest mode infrastructure with in-memory database
Copilot Nov 27, 2025
f4f0aac
feat: add guest settings, unit tests, and documentation
Copilot Nov 27, 2025
78cae0f
refactor: address code review feedback for guest mode
Copilot Nov 27, 2025
25f1f56
refactor(recipeItem): streamline recipe resource creation and editing…
marcuscastelo Nov 27, 2025
a694ecd
refactor(item): convert recipe resource creation to use createMemo
marcuscastelo Nov 27, 2025
3590027
refactor(item): update createRecipeResource to accept Accessor<Item>
marcuscastelo Nov 27, 2025
8ae07eb
refactor(item): enhance withEditedQuantity to accept recipe parameter
marcuscastelo Nov 27, 2025
2d370fb
refactor(item): adjust scaling logic to enforce minimum quantity and …
marcuscastelo Nov 27, 2025
9019b20
refactor(app-version): update APP_VERSION to use value from app-versi…
marcuscastelo Nov 27, 2025
2ddb789
chore(app-version): add initial app version configuration
marcuscastelo Nov 27, 2025
8fd4a9f
chore(package): add assume-unchanged script for app-version.json
marcuscastelo Nov 27, 2025
419a728
refactor(item): simplify recipe resource creation logic
marcuscastelo Nov 27, 2025
b40e273
Apply suggestions from code review
marcuscastelo Nov 27, 2025
b71cc3c
Merge pull request #1350 from marcuscastelo/copilot/allow-single-item…
marcuscastelo Nov 27, 2025
286b322
Initial plan
Copilot Nov 27, 2025
6338edd
refactor: remove duplicate UnifiedRecipeEditView component
Copilot Nov 27, 2025
62fba4c
feat(settings-ui): add GuestDataWarning component and remove GuestSet…
marcuscastelo Nov 28, 2025
afe0400
refactor(guest): remove explicit guest mode state management
marcuscastelo Nov 28, 2025
6c24399
refactor(guest): enhance guest mode check to exclude login path
marcuscastelo Nov 28, 2025
f9f3cfb
refactor(auth): consolidate auth state management into store
marcuscastelo Nov 28, 2025
eae2c09
refactor(guest): simplify guest mode check by removing login path con…
marcuscastelo Nov 28, 2025
f83d577
refactor(auth): move auth guards to auth module
marcuscastelo Nov 28, 2025
5261434
feat(user): enable guest access to diet page and simplify user id logic
marcuscastelo Nov 28, 2025
0894cd1
refactor(macro-profile): remove undefined user ID checks from userMac…
marcuscastelo Nov 28, 2025
d2dcda6
feat(macro-profile): implement macro profile state management with se…
marcuscastelo Nov 28, 2025
88590c8
refactor(user): remove redundant user ID undefined checks
marcuscastelo Nov 28, 2025
875447d
refactor(weight): move weight cache store to application layer
marcuscastelo Nov 28, 2025
e683dbe
refactor(weight): relocate weight use cases module
marcuscastelo Nov 28, 2025
b3efc79
refactor(weight): restructure weight cache store and update usage in …
marcuscastelo Nov 28, 2025
2dc26ee
refactor(weight): consolidate crud operations and state management in…
marcuscastelo Nov 28, 2025
4fad9d5
refactor(weight): integrate real-time updates into cache and centrali…
marcuscastelo Nov 28, 2025
3bce17f
refactor(guest): update target_day in createDemoMacroProfile to use c…
marcuscastelo Nov 28, 2025
33761d5
refactor(macro-profile): consolidate crud operations into service and…
marcuscastelo Nov 28, 2025
3ee11c1
Merge branch 'rc/v0.15.0' into copilot/add-guest-ram-demo-mode
marcuscastelo Nov 28, 2025
00c52e3
refactor(macro-profile): replace deleteMacroProfile import with macro…
marcuscastelo Nov 28, 2025
97fefb4
refactor(macro-profile): move cache and effects to application layer
marcuscastelo Nov 28, 2025
ac8fe28
refactor(macro-profile): centralize cache and effects in state module
marcuscastelo Nov 28, 2025
4f7e2d5
refactor(github-issue): enhance validation and output processes for i…
marcuscastelo Nov 28, 2025
39f1448
feat(github-issue): add refineGithubIssue prompt for actionable issue…
marcuscastelo Nov 28, 2025
c8a371a
Initial plan
Copilot Nov 28, 2025
167e7a8
Initial plan
Copilot Nov 28, 2025
282b1ac
Initial plan
Copilot Nov 28, 2025
1c3d349
Initial plan
Copilot Nov 28, 2025
f593754
Add typedKeys utility and update ProfileChartTabs to use it
Copilot Nov 28, 2025
cd50f91
feat: add isWeightChartType type guard to replace type assertion
Copilot Nov 28, 2025
5ae4a82
feat(clipboard): improve icons with accessibility and mobile UX
Copilot Nov 28, 2025
e86236c
feat: implement Import/Export JSON modal for backup and migration
Copilot Nov 28, 2025
8d28073
fix: address code review feedback
Copilot Nov 28, 2025
5a067aa
Initial plan
Copilot Nov 28, 2025
28d13e6
Merge pull request #1371 from marcuscastelo/copilot/make-object-keys-…
marcuscastelo Nov 28, 2025
e758fb2
Mock logging module in vitest.setup.ts and add tests
Copilot Nov 28, 2025
44f264f
Merge pull request #1366 from marcuscastelo:copilot/refactor-recipe-e…
marcuscastelo Nov 28, 2025
666bf1d
Merge branch 'rc/v0.15.0' into copilot/add-import-export-json-modal
marcuscastelo Nov 28, 2025
d8b8990
Merge branch 'rc/v0.15.0' into copilot/improve-copy-paste-icons
marcuscastelo Nov 28, 2025
b749a99
Merge branch 'rc/v0.15.0' into copilot/improve-typed-includes-check
marcuscastelo Nov 28, 2025
9b4a2f9
refactor(weight): replace WeightChartType definition with a const ass…
marcuscastelo Nov 28, 2025
af465a0
Merge pull request #1373 from marcuscastelo/copilot/improve-typed-inc…
marcuscastelo Nov 28, 2025
cda6831
Merge branch 'rc/v0.15.0' into copilot/mock-logging-in-tests
marcuscastelo Nov 28, 2025
db9c0aa
Merge pull request #1377 from marcuscastelo/copilot/mock-logging-in-t…
marcuscastelo Nov 28, 2025
145d554
refactor(clipboard-ui): remove FloatingPasteButton and related access…
marcuscastelo Nov 28, 2025
c9fb209
refactor(icons): remove ClearIcon component
marcuscastelo Nov 28, 2025
a906ac4
refactor(clipboard-ui): simplify button class composition using cn ut…
marcuscastelo Nov 28, 2025
1a809c6
feat(agent): add expert Solid.js frontend engineer agent with detaile…
marcuscastelo Nov 28, 2025
c314ca1
refactor(agent): update import paths for SolidStart server helpers
marcuscastelo Nov 28, 2025
9393522
refactor(prompts): remove suggest-awesome-github-copilot-chatmodes pr…
marcuscastelo Nov 28, 2025
5561008
refactor(prompts): standardize agent and tool definitions
marcuscastelo Nov 28, 2025
01b742e
refactor(prompts): remove deprecated GitHub issue prompts and update …
marcuscastelo Nov 28, 2025
8dc3633
refactor(prompts): replace unified GitHub issue agent with a new stru…
marcuscastelo Nov 28, 2025
4eaa08c
docs: update README to enhance project description and feature details
marcuscastelo Nov 28, 2025
569965c
feat(docs): add Portuguese version of README with project details and…
marcuscastelo Nov 28, 2025
2f78e65
docs: restructure README layout for improved readability
marcuscastelo Nov 28, 2025
d67f3c5
docs: simplify README structure by removing unnecessary table
marcuscastelo Nov 28, 2025
4cba541
docs: update language badge formatting in Portuguese README
marcuscastelo Nov 28, 2025
a016db8
docs: update language badge formatting in README files
marcuscastelo Nov 28, 2025
e883108
docs: correct language badge links in README
marcuscastelo Nov 28, 2025
a62d2f3
docs: add project URL to README files
marcuscastelo Nov 28, 2025
299e192
Enhance README with image tags for screenshots
marcuscastelo Nov 28, 2025
697e823
docs: enhance README with interactive screenshot details
marcuscastelo Nov 28, 2025
d13792f
docs: translate screenshot instructions to English and enhance screen…
marcuscastelo Nov 28, 2025
07bebcd
Merge pull request #1378 from marcuscastelo/docs/readme
marcuscastelo Nov 28, 2025
67e4f49
Merge pull request #1370 from marcuscastelo/copilot/improve-copy-past…
marcuscastelo Nov 28, 2025
45e4d11
Merge pull request #1369 from marcuscastelo/copilot/add-import-export…
marcuscastelo Nov 28, 2025
e9e8524
Merge branch 'rc/v0.15.0' into copilot/add-guest-ram-demo-mode
marcuscastelo Nov 28, 2025
bc2b08c
rename(copyDayOperations): export createCopyDayOperations function
marcuscastelo Nov 28, 2025
abd10de
refactor(copyDayOperations): simplify state type definition and remov…
marcuscastelo Nov 28, 2025
6290848
refactor(copyDayOperations): rename createCopyDayOperations to useCop…
marcuscastelo Nov 28, 2025
f0c16a0
refactor(day-diet): rename copyDayOperations file and add dayUseCases
marcuscastelo Nov 28, 2025
cef6217
refactor(day-diet): standardize use case naming and initialize dayUse…
marcuscastelo Nov 28, 2025
04a3bca
refactor(day-diet): relocate dayCacheStore and dayChangeStore to appl…
marcuscastelo Nov 28, 2025
91c11e1
refactor(day-diet): inline target day reset service
marcuscastelo Nov 28, 2025
ad7ad08
refactor(day-diet): inline cache management logic into day effects
marcuscastelo Nov 28, 2025
db1117f
refactor(day-diet): encapsulate day change logic within dayUseCases
marcuscastelo Nov 28, 2025
a33cb72
refactor(day-diet): consolidate day state and effects into dayUseCases
marcuscastelo Nov 28, 2025
0695b66
refactor(day-diet): consolidate day diet operations into dayUseCases
marcuscastelo Nov 28, 2025
a83eeee
refactor(day-diet): remove dayCrud and integrate operations into dayU…
marcuscastelo Nov 28, 2025
0f5dc0b
refactor(day-diet): inline functions into return object
marcuscastelo Nov 28, 2025
9f42aae
refactor(day-diet): extract copy day logic into standalone function
marcuscastelo Nov 28, 2025
bf7267a
test(day-diet): remove copyDayOperations test file
marcuscastelo Nov 28, 2025
f3cf35a
refactor(test): replace mocked insertDayDiet with spyOn for better te…
marcuscastelo Nov 28, 2025
022572d
refactor(day-diet): use solid resource for previous days and inject f…
marcuscastelo Nov 28, 2025
1f054ce
refactor(day-diet): move copy day state and error handling to component
marcuscastelo Nov 28, 2025
6aca345
refactor(guest-data-warning-ui): update condition for demo mode display
marcuscastelo Dec 1, 2025
d5ecd7f
chore(gitlens): remove experimental commit message generation prompt
marcuscastelo Dec 1, 2025
d447a96
feat(login-ui): integrate guest mode functionality with terms acceptance
marcuscastelo Dec 1, 2025
fbed910
refactor(guest): streamline guest mode entry logic
marcuscastelo Dec 1, 2025
83474cb
feat(guest): enhance demo mode with multiple day diets and reset logic
marcuscastelo Dec 1, 2025
8a4ff67
feat(guest): reset guest database on entering guest mode
marcuscastelo Dec 1, 2025
2ec7d2c
Merge pull request #1364 from marcuscastelo/copilot/add-guest-ram-dem…
marcuscastelo Dec 1, 2025
8bc8836
fix(item-quantity-controls): move recipe loading check inside quantit…
marcuscastelo Dec 1, 2025
d1edda5
fix(github-issue): prevent inclusion of personal offers and additiona…
marcuscastelo Dec 1, 2025
8f81a15
Merge pull request #1381 from marcuscastelo/marcuscastelo/issue1380
marcuscastelo Dec 1, 2025
b7fa8bd
fix(github-issue): clarify output format for final gh command in issu…
marcuscastelo Dec 1, 2025
be15c28
refactor(item): move isInSyncWithRecipe logic to RecipeItemExt
marcuscastelo Dec 1, 2025
7d37d6d
refactor(recipeItem): update isInSyncWithRecipe to use normalized qua…
marcuscastelo Dec 1, 2025
5e0d438
refactor(recipe): add TODO to investigate duplicate function in recip…
marcuscastelo Dec 1, 2025
4176125
Merge pull request #1387 from marcuscastelo/marcuscastelo/issue1382
marcuscastelo Dec 1, 2025
da2adde
Automatically added GitHub issue links to TODOs
github-actions[bot] Dec 1, 2025
0505163
Initial plan
Copilot Dec 1, 2025
bc93146
Fix ad-hoc recipe item edit to preserve explicit child quantity changes
Copilot Dec 1, 2025
696cc81
refactor(TemplateSearchResults-ui): simplify notFoundAlert logic
marcuscastelo Dec 1, 2025
1f2d19f
refactor(search): extract TemplateSearchResultItem component
marcuscastelo Dec 1, 2025
8bda760
refactor(TemplateSearchResults-ui): change filteredTemplates prop to …
marcuscastelo Dec 1, 2025
c6c459c
refactor(user): remove unused users signal and related logic
marcuscastelo Dec 1, 2025
cba21de
refactor(user): remove unused realtime subscription logic
marcuscastelo Dec 1, 2025
085849c
refactor(user): replace fetchUsers with fetchUser for efficiency
marcuscastelo Dec 1, 2025
7a6d75d
fix(TemplateSearchResults-ui): correct access to filteredTemplates prop
marcuscastelo Dec 1, 2025
3a70c00
fix(database): change template_owner field to user_id in search_recen…
marcuscastelo Dec 1, 2025
ffc6657
fix(auth): set current user after silent user creation
marcuscastelo Dec 2, 2025
92388b1
Merge pull request #1394 from marcuscastelo/marcuscastelo/issue1390
marcuscastelo Dec 2, 2025
38a681e
Merge pull request #1389 from marcuscastelo/copilot/fix-ad-hoc-recipe…
marcuscastelo Dec 2, 2025
5dcde86
Initial plan
Copilot Dec 2, 2025
5b8c660
Initial plan
Copilot Dec 2, 2025
30728f8
Initial plan
Copilot Dec 2, 2025
c83f449
Initial plan
Copilot Dec 2, 2025
0414d46
Migrate critical error handling to logging + showError pattern (7/10 …
Copilot Dec 2, 2025
9bf2547
fix(macro-target): remove showError for missing weight/profile during…
Copilot Dec 2, 2025
7072211
fix: correct debug message for missing macro profile
Copilot Dec 2, 2025
dd91bf3
feat: persist template search tab preference to localStorage
Copilot Dec 2, 2025
fdf68ed
fix: address code review comments - use onMount and fix tab persistence
Copilot Dec 2, 2025
8004f4e
Add test for error handling pattern and update CODESTYLE_GUIDE with m…
Copilot Dec 2, 2025
b7c3f6a
Fix recent food tracking for EAN-scanned foods and GroupItems
Copilot Dec 2, 2025
87215dc
Merge pull request #1400 from marcuscastelo/copilot/persist-template-…
marcuscastelo Dec 2, 2025
180bea9
refactor(release): add refactor label to changelog categories
marcuscastelo Dec 2, 2025
bfdf9c8
Apply suggestions from code review
marcuscastelo Dec 2, 2025
0844ce1
Merge pull request #1402 from marcuscastelo/copilot/fix-toast-error-o…
marcuscastelo Dec 2, 2025
8ec3e9c
Merge branch 'rc/v0.15.0' into copilot/fix-ean-scan-food-issues
marcuscastelo Dec 2, 2025
8bebf93
refactor(test): remove unused original food item in EAN flow tests
marcuscastelo Dec 2, 2025
fb0fd33
refactor(auth): move AuthUserDropdown to auth ui module
marcuscastelo Dec 2, 2025
0d335a6
chore: update pnpm-lock.yaml
marcuscastelo Dec 2, 2025
2d8465a
refactor(auth): centralize auth logic and improve testability
marcuscastelo Dec 2, 2025
d173756
chore: update pnpm-lock.yaml
marcuscastelo Dec 2, 2025
081cde1
Merge pull request #1419 from marcuscastelo/chore/update-lock
marcuscastelo Dec 2, 2025
c6c220b
Merge branch 'rc/v0.15.0' into marcuscastelo/issue1410
marcuscastelo Dec 2, 2025
22b9f56
Initial plan
Copilot Dec 2, 2025
d7c5597
test(auth): add tests for authUseCases facade module
Copilot Dec 2, 2025
cfb71f1
Merge pull request #1420 from marcuscastelo/copilot/sub-pr-1418
marcuscastelo Dec 2, 2025
d734603
Merge pull request #1418 from marcuscastelo/marcuscastelo/issue1410
marcuscastelo Dec 2, 2025
8af5a6f
refactor(user): rename createDefaultUserFromAuthSession to generateDe…
marcuscastelo Dec 2, 2025
9c19c95
refactor(auth): move generateDefaultUserFromSession to authService an…
marcuscastelo Dec 2, 2025
214c68e
refactor(user, guest): introduce userUseCases facade and consolidate …
marcuscastelo Dec 2, 2025
fcb1a9a
Merge pull request #1401 from marcuscastelo/copilot/fix-ean-scan-food…
marcuscastelo Dec 2, 2025
6ec9d66
Merge branch 'rc/v0.15.0' into marcuscastelo/issue1417
marcuscastelo Dec 2, 2025
30cdd89
refactor(user): simplify user store and enhance user fetching logic
marcuscastelo Dec 2, 2025
7fbdd93
test(RemoveFromRecentButton): mock debouncedTab return value in tests
marcuscastelo Dec 2, 2025
50db73f
fix(measure): wrap currentUserId_unsafe call in a function
marcuscastelo Dec 2, 2025
04c36fc
style(userService): add whitespace for improved readability
marcuscastelo Dec 2, 2025
f800ca6
fix(guest): revoke guest terms on exitGuestMode
marcuscastelo Dec 2, 2025
0af5f95
refactor(auth): centralize user id retrieval and mark direct user swi…
marcuscastelo Dec 2, 2025
96c5155
feat(auth): implement user fetching and switching in auth store
marcuscastelo Dec 2, 2025
d25fa37
refactor(auth): rename authState to authStore and move side effects t…
marcuscastelo Dec 2, 2025
6890af3
Merge pull request #1421 from marcuscastelo/marcuscastelo/issue1417
marcuscastelo Dec 2, 2025
b159c14
Initial plan
Copilot Dec 2, 2025
203abce
Merge branch 'rc/v0.15.0' into copilot/migrate-error-handling-pattern
marcuscastelo Dec 2, 2025
2a25c8f
fix: recipe multiplier only affects mainQuantity, not macro calculati…
Copilot Dec 2, 2025
8793999
docs: remove migration notes for error handling pattern
marcuscastelo Dec 2, 2025
84ee96d
fix(profile-ui): improve error message for measure deletion
marcuscastelo Dec 2, 2025
086121b
Merge pull request #1399 from marcuscastelo/copilot/migrate-error-han…
marcuscastelo Dec 2, 2025
cc17079
Merge pull request #1427 from marcuscastelo/copilot/fix-recipe-multip…
marcuscastelo Dec 2, 2025
13aa59e
Initial plan
Copilot Dec 2, 2025
37f4d70
Fix multi-item recipe out-of-sync false positives (issue #1417)
Copilot Dec 2, 2025
4c5a4e5
Add clarifying comment for rounding edge case test value
Copilot Dec 2, 2025
b3ff9ca
fix(prompt): clarify issue count range for milestone prioritization
marcuscastelo Dec 2, 2025
c50af8e
docs: update GitHub issue prompt description and core rules for clarity
marcuscastelo Dec 2, 2025
5faef5d
Merge pull request #1429 from marcuscastelo/copilot/fix-multi-item-re…
marcuscastelo Dec 2, 2025
88f2088
refactor(items): simplify export structure for item comparison functions
marcuscastelo Dec 2, 2025
567bce6
refactor(items): remove equalsByProportion function and simplify item…
marcuscastelo Dec 2, 2025
5b7a944
refactor(macro-nutrients): use milligrams internally for macro nutrie…
marcuscastelo Dec 2, 2025
d742d51
TEMP(diet): comment out meals and items properties in DTOs
marcuscastelo Dec 2, 2025
b561b6e
fix(items): add missing continue
marcuscastelo Dec 2, 2025
098b3b3
refactor(items): remove alert statements from equals function
marcuscastelo Dec 2, 2025
01f6264
test(diet): format macro nutrient creation for consistency in tests
marcuscastelo Dec 2, 2025
fa76e4c
test(diet): add approximate equality assertions for meal and day diet…
marcuscastelo Dec 2, 2025
8f2264e
refactor(food): validate macros field in Food DTO and create macro nu…
marcuscastelo Dec 2, 2025
17c09a6
feat(app): enhance error boundary with detailed stack trace and VSCod…
marcuscastelo Dec 2, 2025
ab0fe47
refactor(macro-nutrients): extract macro nutrient calculations to Mac…
marcuscastelo Dec 2, 2025
ddb535a
Revert "TEMP(diet): comment out meals and items properties in DTOs"
marcuscastelo Dec 2, 2025
21e0c58
refactor(diet-supabase): modularize data mapping for diet entities
marcuscastelo Dec 3, 2025
0d25fa8
fix(guest-database): recreate database if today's day diet is missing
marcuscastelo Dec 3, 2025
91d7351
feat(macro-nutrients): add macro nutrients schema and validation func…
marcuscastelo Dec 3, 2025
501ddc3
feat(item-quantity): improve quantity precision and normalization
marcuscastelo Dec 3, 2025
f0b45a7
fix(item-quantity): correct macro nutrient calculations for per-100g …
marcuscastelo Dec 3, 2025
9adb0e7
refactor(app-ui): simplify error stack display logic using Show compo…
marcuscastelo Dec 3, 2025
93ff6cf
fix(item-quantity): remove erroneous multiplication in quantity diffe…
marcuscastelo Dec 3, 2025
276513e
fix(validation): update default error message to Portuguese for unkno…
marcuscastelo Dec 3, 2025
bcccfbc
refactor(items): remove debug logging from equals function
marcuscastelo Dec 3, 2025
e5e1caf
fix(items): correct quantity precision in equals test case
marcuscastelo Dec 3, 2025
5798608
Merge pull request #1431 from marcuscastelo/marcuscastelo/issue1430
marcuscastelo Dec 3, 2025
0efda2a
Merge branch 'stable' into rc/v0.15.0
marcuscastelo Dec 3, 2025
d09b207
style(MacroTargets): adjust comment formatting for issue references
marcuscastelo Dec 3, 2025
62f962d
docs: update README and package.json version to 0.15.0
marcuscastelo Dec 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .claude/commands/issues/discover.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ gh issue list --milestone "v0.14.0" --state open
- Patterns: User-facing feature limitations
- Suggestion: Audit all limitation messages for issue tracking

- "throw new Error" without handleApiError
- "throw new Error" without error handling context
- Locations: domain layer violations
- Suggestion: Architecture review for error handling
```
Expand Down Expand Up @@ -205,7 +205,7 @@ Creates structured discovery report and suggests next actions:
## Integration with Project Standards

- **Clean Architecture:** Identifies layer violations during discovery
- **Error Handling:** Finds missing `handleApiError` usage patterns
- **Error Handling:** Finds missing error feedback patterns using `showError` and `logging`
- **Import Standards:** Validates absolute import usage in discovered files
- **Quality Gates:** Ensures discoveries align with `pnpm check` standards
- **Solo Workflow:** Optimized for single developer context and decisions
2 changes: 1 addition & 1 deletion .claude/commands/quality/review.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ Each generated review file contains:
### Code Quality
- **Clean Architecture:** Layer separation and dependencies
- **Type Safety:** TypeScript usage and null checks
- **Error Handling:** Proper `handleApiError` usage
- **Error Handling:** Proper `showError` and `logging` usage
- **Testing:** Test coverage and quality
- **Performance:** Efficiency and optimization opportunities

Expand Down
28 changes: 17 additions & 11 deletions .claude/commands/refactor/clean-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,15 @@ This command performs comprehensive refactoring to ensure clean architecture com

**Rules:**
- **Pure logic only** - No side effects
- **Never call `handleApiError`** - Only throws pure errors
- **Never use side-effect utilities** - Only throws pure errors with context via `cause`
- **No external dependencies** - Framework-agnostic code
- **Business rules** - Core business logic and entities

**Refactoring Actions:**
```typescript
// Before: Domain with side effects
export function updateDayDiet(dayDiet: DayDiet) {
handleApiError(new Error('Invalid'), { component: 'domain' }) // ❌
showError(new Error('Invalid'), { context: 'domain' }) // ❌
toast.success('Updated') // ❌
return dayDiet
}
Expand All @@ -80,7 +80,7 @@ export function updateDayDiet(dayDiet: DayDiet): DayDiet {
**Rules:**
- **Orchestrates domain logic** - Coordinates between layers
- **Handles all side effects** - API calls, error handling, toasts
- **Catches domain errors** - Always calls `handleApiError` with context
- **Catches domain errors** - Uses `showError` for toasts and `logging` for telemetry
- **State management** - SolidJS signals and effects

**Refactoring Actions:**
Expand All @@ -94,6 +94,9 @@ export function useDayDietUpdater() {
}

// After: Proper application orchestration
import { showError } from '~/modules/toast/application/toastManager'
import { logging } from '~/shared/utils/logging'

export function useDayDietUpdater() {
const updateDayDiet = async (dayDiet: DayDiet) => {
try {
Expand All @@ -102,11 +105,11 @@ export function useDayDietUpdater() {
toast.success('Day diet updated successfully')
return result
} catch (e) {
handleApiError(e, {
logging.error('updateDayDiet failed', e, {
component: 'DayDietUpdater',
operation: 'updateDayDiet',
additionalData: { dayDietId: dayDiet.id }
})
showError(e, { context: 'user-action' })
throw e
}
}
Expand Down Expand Up @@ -181,7 +184,8 @@ export function MealEditor() {
await mealRepository.save(meal())
toast.success('Meal saved')
} catch (e) {
handleApiError(e, { component: 'MealEditor' })
logging.error('saveMeal failed', e, { component: 'MealEditor' })
showError(e, { context: 'user-action' })
} finally {
setLoading(false)
}
Expand All @@ -190,6 +194,9 @@ export function MealEditor() {

// After: Extracted hook
// ~/modules/diet/meal/application/useMealEditor.ts
import { showError } from '~/modules/toast/application/toastManager'
import { logging } from '~/shared/utils/logging'

export function useMealEditor() {
const [meal, setMeal] = createSignal<Meal>()
const [loading, setLoading] = createSignal(false)
Expand All @@ -200,11 +207,11 @@ export function useMealEditor() {
await mealRepository.save(meal())
toast.success('Meal saved')
} catch (e) {
handleApiError(e, {
logging.error('saveMeal failed', e, {
component: 'MealEditor',
operation: 'saveMeal',
additionalData: { mealId: meal()?.id }
})
showError(e, { context: 'user-action' })
} finally {
setLoading(false)
}
Expand Down Expand Up @@ -253,11 +260,11 @@ export function groupWeightsByPeriod(weights: Weight[]) {
```typescript
// Before: Relative imports
import { DayDiet } from '../../domain/dayDiet' // ❌
import { handleApiError } from '../../../shared/error/errorHandler' // ❌
import { showError } from '../../../toast/application/toastManager' // ❌

// After: Absolute imports
import { DayDiet } from '~/modules/diet/day-diet/domain/dayDiet' // ✅
import { handleApiError } from '~/shared/error/errorHandler' // ✅
import { showError } from '~/modules/toast/application/toastManager' // ✅
```

### Static Import Enforcement
Expand All @@ -283,7 +290,6 @@ const Component = lazy(() => import('./Component')) // ✅

2. **Verify success message:**
- Must see "COPILOT: All checks passed!"
- Check with `.scripts/cat1.sh`, `.scripts/cat2.sh`, `.scripts/cat3.sh`

3. **Architecture validation:**
- No cross-layer violations
Expand Down
6 changes: 3 additions & 3 deletions .claude/commands/session/end.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,8 @@ export interface SessionLearning {
- **Data access patterns:** Efficient database and API usage

### Error Handling Strategies
- **Domain layer purity:** Maintaining clean error throwing
- **Application layer coordination:** Effective `handleApiError` usage
- **Domain layer purity:** Maintaining clean error throwing with context via `cause`
- **Application layer coordination:** Effective `showError` and `logging` usage
- **User feedback patterns:** Toast and notification strategies
- **Recovery mechanisms:** Graceful error recovery approaches

Expand Down Expand Up @@ -236,7 +236,7 @@ export interface SessionLearning {
- **Performance:** Sliding window algorithm for period grouping
- **Architecture:** Clean separation of domain and application concerns
- **Testing:** Effective mock patterns for Supabase integration
- **Error Handling:** Consistent `handleApiError` usage patterns
- **Error Handling:** Consistent `showError` and `logging` usage patterns

## Process Improvements
- **Quality Validation:** Streamlined npm run copilot:check workflow
Expand Down
2 changes: 1 addition & 1 deletion .claude/commands/workflow/context.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ interface WorkflowContext {
{
phase: 'implementation',
modifiedFiles: ['RecipeEditModal.tsx', 'recipe.ts'],
architecturalDecisions: ['use domain validation', 'add handleApiError'],
architecturalDecisions: ['use domain validation', 'use showError and logging'],
testPatterns: ['mock validation', 'test error scenarios'],
suggestedActions: ['run quality checks', 'update related tests']
}
Expand Down
2 changes: 1 addition & 1 deletion .claude/commands/workflow/orchestrate.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ const qualityIntegration = {

contextualGates: {
architectureCompliance: 'verify clean architecture adherence',
errorHandling: 'confirm proper handleApiError usage',
errorHandling: 'confirm proper showError and logging usage',
testCoverage: 'validate test updates for changes'
},

Expand Down
4 changes: 4 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ VITE_OTEL_EXPORTER_OTLP_ENDPOINT=
# Example: VITE_SENTRY_DSN=https://abc123@o123456.ingest.sentry.io/123456
VITE_SENTRY_DSN=

# Debug CWD for VSCode links in error stack traces (optional)
# Set this to your local development folder path to enable clickable links
VITE_DEBUG_CWD=

# Sentry Build Configuration (for CI/CD and source map upload)
# Get these from: https://sentry.io → Settings → Developer Settings → Auth Tokens
SENTRY_ORG=
Expand Down
147 changes: 147 additions & 0 deletions .github/COPILOT_SETUP_VALIDATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
# GitHub Copilot Setup Validation

This document validates that the macroflows repository follows GitHub Copilot coding agent best practices.

## ✅ Completed Setup Checklist

### Core Configuration Files

- [x] **`.github/copilot-instructions.md`** - Main instruction file with frontmatter (`applyTo: "**"`)
- Contains comprehensive coding standards for TypeScript, SolidJS, and Clean Architecture
- Includes project-specific rules (barrel file ban, import conventions)
- Defines error handling patterns for Domain and Application layers
- Specifies testing, validation, and commit message requirements
- References label usage and search feature requirements

- [x] **`.github/copilot-commit-message-instructions.md`** - Commit message generation guidelines
- Enforces Conventional Commits standard
- Defines commit types and scoping conventions
- Includes quality rules to avoid vague language
- Provides examples of correct and incorrect commit messages

### Instruction Files

- [x] **`.github/instructions/`** directory exists
- Contains 1 scoped instruction file:
- `copilot/copilot-customization.instructions.md` - Applies to `.github/**/*.md` files
- Contains VS Code Copilot customization documentation

### Prompt Files

- [x] **`.github/prompts/`** directory exists
- Contains 28 reusable prompt templates (`.prompt.md` files)
- Organized by task type:
- GitHub Issue creation (bug, feature, refactor, sub-issue, task, etc.)
- Code review and PR management
- Development workflows (refactoring, fixing, implementation)
- Project management (milestone management, prioritization)

### Documentation

- [x] **`.github/README.md`** - Comprehensive documentation of Copilot setup
- Describes directory structure
- Documents main configuration files
- Provides usage guidelines for developers and Copilot
- Includes validation instructions and best practices
- Lists project tech stack and architectural principles

## Best Practices Alignment

### ✅ Well-Defined Instructions

- Instructions are clear, specific, and actionable
- Each instruction addresses a specific aspect of code generation
- Instructions avoid generic or vague guidelines
- Project-specific patterns are well-documented

### ✅ Scoped Configuration

- Main instructions apply globally (`applyTo: "**"`)
- Scoped instructions exist for specific file patterns (`.github/**/*.md`)
- Instructions can be extended with more scoped files as needed

### ✅ Reusable Prompts

- 28 prompt templates available for common tasks
- Prompts are organized by category
- Prompts can reference other prompts and instruction files

### ✅ Quality Standards

- Commit message quality is enforced through specific instructions
- Code validation process is documented (`pnpm run copilot:check`)
- Testing requirements are clearly defined
- Error handling patterns are specified

### ✅ Project Context

- Architecture principles are documented (Clean Architecture, DDD)
- Tech stack is clearly specified (SolidJS, TypeScript, Supabase)
- Domain-specific patterns are explained
- Solo project adaptations are included

## Additional Recommendations Implemented

### Documentation

- [x] Created comprehensive README explaining the Copilot setup
- [x] Documented directory structure and file purposes
- [x] Provided usage guidelines for both developers and Copilot
- [x] Included validation procedures

### Organization

- [x] Instructions are organized by topic and scope
- [x] Prompts are categorized by task type
- [x] File naming conventions are consistent

## Future Enhancements (Optional)

While the current setup is comprehensive and follows best practices, here are potential future enhancements:

### Custom Agents (Advanced)

- [ ] Consider creating `.github/agents/` directory for custom agent configurations
- Custom agents can be tuned for specific workflows
- Agents can have specialized context and tools
- Requires Model Context Protocol (MCP) server setup

### Additional Scoped Instructions

- [ ] Consider adding more scoped instruction files for different areas:
- `instructions/frontend.instructions.md` for SolidJS components
- `instructions/backend.instructions.md` for Supabase integration
- `instructions/testing.instructions.md` for test-specific guidelines

### Enhanced Prompts

- [ ] Add more specialized prompts as patterns emerge:
- Component generation templates
- Migration scripts
- Performance optimization workflows

## Validation Results

**Status**: ✅ **PASSED**

The macroflows repository successfully implements GitHub Copilot coding agent best practices:

1. ✅ Main instruction file exists and is comprehensive
2. ✅ Commit message generation is properly configured
3. ✅ Scoped instruction files are available
4. ✅ Extensive prompt library exists (28 prompts)
5. ✅ Setup is documented for contributors
6. ✅ Project context and architecture are clearly defined
7. ✅ Quality standards and validation procedures are specified

## References

- [GitHub Copilot Best Practices](https://docs.github.com/en/copilot/tutorials/coding-agent/get-the-best-results)
- [Custom Instructions Documentation](https://code.visualstudio.com/docs/copilot/copilot-customization)
- [Onboarding GitHub Copilot Coding Agent](https://github.blog/ai-and-ml/github-copilot/onboarding-your-ai-peer-programmer-setting-up-github-copilot-coding-agent-for-success/)

---

**Last Updated**: 2025-11-04
**Validated By**: GitHub Copilot Coding Agent
**Repository**: marcuscastelo/macroflows
Loading
Loading