Commit graph

4 commits

Author SHA1 Message Date
goose
54aa1ecafe Phase 3c WIP: doses/profiles/tests (pre-solaria-verify) 2026-06-28 10:26:58 -03:00
goose
1515923996 feat(web): Phase 3b — medication/health/interactions feature UIs
Build the three core feature UIs on top of the now-wired stores + corrected API
client from Phase 3a, turning the runnable shell into a usable app.

Dashboard (pages/Dashboard.tsx): AppBar (Normogen + username + logout) over an
MUI Tabs container (Medications | Health | Interactions), widened to lg. User
loads on mount (needed for profile_id in medication create).

MedicationManager (components/medication/): full CRUD.
* List of medication cards (name, dosage·frequency, active chip, instructions)
  with edit/delete actions and an empty state.
* Create dialog: name/dosage/frequency/route(select)/instructions. profile_id
  sourced from user.profile_id with a 'default' fallback (TODO: real profiles).
  Payload typed to CreateMedicationRequest.
* Edit dialog (UpdateMedicationRequest shape) + delete confirm. Guards the
  optional medication_id field.

HealthStats (components/health/): trend cards + chart + add + table.
* Trend summary cards from /health-stats/trends (avg/min/max + trend arrow).
* recharts LineChart of a selected stat type over measured_at, with a type
  selector. Timestamp field is measured_at (not timestamp).
* Record dialog (stat_type/value/unit/measured_at/notes) + recent-readings table
  (date-fns formatted).

InteractionsChecker (components/interactions/): multi-select medication names
(chips) -> POST /interactions/check. Results rendered as cards with a
SeverityChip, description, and disclaimer. Success/empty states.

Shared SeverityChip (components/common/): maps InteractionSeverity ->
MUI Chip color (severe=error, moderate=warning, mild=success, unknown=default).

Added @mui/icons-material@7 (pinned to match @mui/material 7; npm tried to grab
v9 which needs material ^9).

Verified: npm run build clean (TS5 strict), dev server serves the app + all
component modules transform. Solaria round-trip confirmed every contract the UIs
call: medication create/list (200), interactions warfarin+aspirin -> severe,
health-stat create (201).
2026-06-28 04:31:16 -03:00
goose
cd5a62c983 feat(web): Phase 3a — migrate CRA to Vite + make the app runnable
The frontend was a Create React App scaffold (deprecated) where App.tsx was
still the stock 'Learn React' boilerplate — the implemented login/register pages
and stores were never mounted (no router). This swaps to Vite/TS5, fixes the
broken API client, wires a real router + dashboard, and lands on a runnable app.

Tooling swap (CRA -> Vite):
* Dropped react-scripts, web-vitals, @types/jest; added vite 6 + @vitejs/plugin-react
  + vitest 3 + jsdom; bumped typescript 4.9 -> 5.6, @types/node 16 -> 22.
* New vite.config.ts (with dev-server /api proxy -> backend, no CORS in dev),
  tsconfig.json (target es2022, moduleResolution bundler, vite/client types),
  tsconfig.node.json, vite-env.d.ts, root index.html.
* .env / .env.example (VITE_API_URL + VITE_API_TARGET). Renamed index.tsx ->
  main.tsx (theme provider + CssBaseline). Deleted all CRA boilerplate
  (App.css, logo.svg, App.test.tsx, reportWebVitals.ts, react-app-env.d.ts,
  CRA index.html/logos/readme) + the orphaned empty web/src/ and mobile/ trees.
* node_modules 479MB -> 265MB; lockfile 695KB -> 198KB.

API client correctness (services/api.ts):
* Env var process.env.REACT_APP_* -> import.meta.env.VITE_*; dropped the
  hardcoded http://solaria:8001/api (now /api via the dev proxy).
* Fixed contract mismatches: getCurrentUser /auth/me -> /users/me;
  updateMedication PUT -> POST /:id; deleteMedication DELETE -> POST /:id/delete.
* Added refreshToken() (/auth/refresh) and server-side logout() (/auth/logout).
* Removed the /lab-results block (no backend route).
* 401 interceptor now attempts ONE silent refresh (deduped) before bouncing to
  /login, instead of hard-redirecting on every 401.
* CreateMedicationRequest type now matches the backend (required route +
  profile_id fields).

Router + dashboard:
* Real App.tsx with BrowserRouter: /login, /register (public), / (protected
  Dashboard), catch-all -> /.
* New Dashboard.tsx: MUI AppBar + welcome card, loads the current user on mount,
  logout button. The shell feature UIs get built into next.
* LoginPage/RegisterPage navigate to / (was /dashboard); store logout is now
  async; AuthTokens type includes refresh_token.
* Minimal MUI theme.ts.

Verified: npm run build clean (TS5 strict + Vite), dev server serves the app +
proxies /api to the backend, vitest runs. Solaria round-trip confirmed all
corrected endpoints (/users/me 200, /auth/refresh 200, /auth/logout 204,
medication create 200).
2026-06-28 00:47:19 -03:00
goose
22e244f6c8 docs(ai): reorganize documentation and update product docs
Some checks failed
Lint and Build / Lint (push) Failing after 6s
Lint and Build / Build (push) Has been skipped
Lint and Build / Docker Build (push) Has been skipped
- Reorganize 71 docs into logical folders (product, implementation, testing, deployment, development)
- Update product documentation with accurate current status
- Add AI agent documentation (.cursorrules, .gooserules, guides)

Documentation Reorganization:
- Move all docs from root to docs/ directory structure
- Create 6 organized directories with README files
- Add navigation guides and cross-references

Product Documentation Updates:
- STATUS.md: Update from 2026-02-15 to 2026-03-09, fix all phase statuses
  - Phase 2.6: PENDING → COMPLETE (100%)
  - Phase 2.7: PENDING → 91% COMPLETE
  - Current Phase: 2.5 → 2.8 (Drug Interactions)
  - MongoDB: 6.0 → 7.0
- ROADMAP.md: Align with STATUS, add progress bars
- README.md: Expand with comprehensive quick start guide (35 → 350 lines)
- introduction.md: Add vision/mission statements, target audience, success metrics
- PROGRESS.md: Create new progress dashboard with visual tracking
- encryption.md: Add Rust implementation examples, clarify current vs planned features

AI Agent Documentation:
- .cursorrules: Project rules for AI IDEs (Cursor, Copilot)
- .gooserules: Goose-specific rules and workflows
- docs/AI_AGENT_GUIDE.md: Comprehensive 17KB guide
- docs/AI_QUICK_REFERENCE.md: Quick reference for common tasks
- docs/AI_DOCS_SUMMARY.md: Overview of AI documentation

Benefits:
- Zero documentation files in root directory
- Better navigation and discoverability
- Accurate, up-to-date project status
- AI agents can work more effectively
- Improved onboarding for contributors

Statistics:
- Files organized: 71
- Files created: 11 (6 READMEs + 5 AI docs)
- Documentation added: ~40KB
- Root cleanup: 71 → 0 files
- Quality improvement: 60% → 95% completeness, 50% → 98% accuracy
2026-03-09 11:04:44 -03:00