Commit Graph
5 Commits
Author SHA1 Message Date
Marc-André Bombeck 9b8c5ab44c test(mcp): notes and held-back document text stay off the wire against real Postgres 2026-09-26 13:29:36 +02:00
Marc-André Bombeck 1dbab4a912 test(mcp): search and fetch over clinical records against real Postgres 2026-09-26 12:59:31 +02:00
Marc-André Bombeck 9e555b7fd2 Expect the fenced label on the real-DB preventive-care read
The integration twin of the tool test still asserted the raw reminder
label; the tool now fences it like the appointment reason beside it.
2026-08-14 03:56:38 +02:00
Marc-André Bombeck b9c164c4bb feat(mcp): expose medication schedule, integration status, and preventive-care reads
Add three grounded read tools, each a thin façade over an existing
server-authoritative engine (no new analytics, userId from the session):

- get_medication_schedule: next-due / overdue per active medication via
  the canonical recurrence engine (computeDisplayDue), with as-needed
  flagged and no scheduled due time.
- get_integration_status: per-provider sync health (connected, last sync,
  reauth-required/failing) from the integration-status ledger, so a user
  can see why their data is stale. No secrets or tokens.
- get_preventive_care: the user's already-configured Vorsorge reminders
  with their persisted next-due dates and an overdue flag; it surfaces
  configured reminders only and invents no screening logic.

Each declares an output schema, read-only annotations, and {present:false}
on absence. Page the search tool across the full assembled result set
(the prior 200-row scan made later items unreachable even through the
cursor) and give each result a per-item deep link where an id exists.
2026-06-28 02:00:37 +02:00
Marc-André Bombeck d5ef584e98 test(mcp): cover the blood-pressure write and ranged read on Postgres
Integration coverage against a real Postgres testcontainer: the
blood-pressure write persists a paired systolic/diastolic row set
atomically under one external id and timestamp, is idempotent on a
replay, and refuses an implausible pair without writing; the explicit
{from,to} comparison filters each side to its span over real rollups.
2026-06-28 01:21:14 +02:00