Daily Work Log (L2 Tasks)
Use Case: "Minor" tasks that do not require a full Work Log (e.g., Component Refactors, Small Features, Tech Debt Cleanup). Format: Append new entries to the top.
[2026-02-25] Test Reliability: Dedicated Playwright Port + jsdom Compatibility
- Context: Full
task testwas blocked by test-runtime instability and web-server contention while quick-add changes were being finalized. - Changes:
frontend/playwright.config.js(moved Playwright web server to dedicated127.0.0.1:${PLAYWRIGHT_WEB_PORT:-4173}),frontend/package.json+bun.lock(pinnedjsdomto26.1.0for stable vitest/jsdom startup),frontend/src/features/dashboard/components/QuickAddRecents.tsx(fixed hook-order early return regression surfaced by e2e). - Verification:
task test:e2e,task test,task lint(all passing).
[2026-02-26] AppSync Eval Reliability: Fallback from Broken node-jq to jq
- Context: Pre-commit
run-testswas failing intest:appsync:evalwith false "Non-JSON output" errors because localnode-jqexisted but its bundledjqbinary was missing (ENOENT). - Changes:
scripts/evaluate_appsync.sh(added jq candidate health check and fallback order so script uses a working parser, e.g., systemjq). - Verification:
task test:appsync:eval(all resolver checks returnedOK).
[2026-02-25] Dashboard Date Navigation: Add "Today" Button
- Context: Date navigation had previous/next controls but no direct return-to-today action, requiring extra clicks after browsing past days.
- Changes:
frontend/src/pages/Dashboard.tsx(addedTodaynavigation button withGo to Todayaction and disabled state when already on the current logical day),frontend/src/features/dashboard/__tests__/MealLoggingIntegration.test.tsx(added navigation behavior coverage). - Verification:
bun run typecheck(frontend),task lint:md.
[2026-02-25] PM2 Workflow for Frontend + Docs Dev Servers
- Context: Added a process-manager workflow so both local dev servers (Vite frontend + MkDocs docs) can be started, monitored, and stopped together without tmux.
- Changes:
ecosystem.config.cjs(new PM2 app definitions fortask devandtask docswith repo-local logs),Taskfile.yml(newpm2:start,pm2:restart,pm2:status,pm2:logs,pm2:stoptasks),docs/index.mdanddocs/notes/setup_guide.md(usage docs and command references). - Verification:
task -l,task pm2:start,task pm2:status,task pm2:stop.
[2026-02-11] AppSync Shared Resolver Runtime Hotfix
- Context:
ResolveUserContextFuncwas refactored into shared pipelines to remove repeated identity parsing logic, but it remained bound to a DynamoDB data source while returning{}in request, which can trigger AppSync runtime resolver errors before downstream steps execute. - Changes:
appsync/resolveUserContext.js(switched fromreturn {}toruntime.earlyReturn({})to explicitly no-op data source invocation),appsync/__tests__/resolveUserContext.test.js(new regression tests for Cognito/PAT stash mapping, unauthorized path, and response passthrough). - Verification:
bunx vitest run appsync,bun run lint:appsync,./scripts/evaluate_appsync.sh,sam validate -t template.yaml --lint,sam validate -t template-test.yaml --lint.
[2026-02-11] Backend Deploy Workflow Dependency Install Fix
- Context:
Deploy Backend (SAM)onmainfailed insam buildfor Makefile Lambdas because CI did not install Node dependencies, causingesbuildto fail resolving runtime imports (e.g.,zod). - Changes:
.github/workflows/deploy-backend.yml(addednpm cibeforesam build). - Verification: Workflow logic now installs workspace dependencies prior to custom Makefile bundling, matching local build assumptions.
[2026-02-10] SAM Build Fix for CI (esbuild Not Found)
- Context: GitHub Actions deploy on
mainfailed duringsam buildbecause function Makefiles invokedesbuilddirectly and CI did not have a global binary installed. - Changes:
functions/import_guest_history/Makefile,functions/manage_pats/Makefile(auto-detect local/globalesbuild, fallback tonpx --yes esbuild). - Verification:
sam build -t template.yaml(passes end-to-end, including both custom makefile Node functions).
[2026-02-10] Relog Timestamp Bug Fix
- Context: Implemented the fix for relogging behavior so Confirm uses current time by default unless the user explicitly selects a timestamp.
- Changes:
frontend/src/pages/Dashboard.tsx(Relog now stripscreatedAtbefore staging),frontend/src/features/dashboard/__tests__/MealLoggingIntegration.test.tsx(regression coverage for relog payload),frontend/src/hooks/useMeals.ts(kept JSONcreatedAtfallback for non-relog backdated entries). - Verification:
cd frontend && bunx vitest run src/hooks/__tests__/useMeals.test.tsx src/features/dashboard/__tests__/MealLoggingIntegration.test.tsxandcd frontend && bunx playwright test tests/guest-mode.spec.js -g "navigates dates and isolates logs" --project=functional-desktop --project=functional-mobile --reporter=list(passes).
[2026-02-10] Relog Timestamp Regression Capture
- Context: Found a bug where clicking
Relogon an existing meal and confirming without changing time reuses the original meal timestamp instead of defaulting to the current time. - Changes:
frontend/src/features/dashboard/__tests__/MealLoggingIntegration.test.tsx(new relog-specific regression test). - Verification: Reproduced in local flow first, then encoded and fixed via the relog payload path.
[2026-01-17] Master Plan Refinement (FTUE Priority)
- Context: Refined Phase 2 to emphasize the "First-Log Experience" as the primary "Aha!" moment driver, subordinating visual hierarchy as a supporting task.
- Changes:
docs/project_management/index.md. - Verification: Logical review of the roadmap phases.
[2026-01-03] Example Task
- Context: Refactoring the Header component to use Tailwind classes instead of CSS modules.
- Changes:
src/components/Header.jsx,src/index.css. - Verification: Visually verified on desktop and mobile breakpoints.