From 67a55def4462bca9374fc056281ff7876bd4b955 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sun, 11 Oct 2026 13:47:37 +0200 Subject: [PATCH] docs(api): document the auto-mark-taken fields --- docs/api/openapi.yaml | 95 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/docs/api/openapi.yaml b/docs/api/openapi.yaml index 2c0cf6fc7..6fd507f91 100644 --- a/docs/api/openapi.yaml +++ b/docs/api/openapi.yaml @@ -26340,6 +26340,15 @@ components: does not know the field cannot have seen the stored schedule, which is served in `recordedSchedules`). Name `trackIntake` to change the schedule of such a medication." type: boolean + autoMarkTaken: + description: "v1.42.2 — record each scheduled dose as taken automatically. Default false. When true the server records a + taken intake (`autoRecorded: true`) for every scheduled slot once its time has passed, from the moment the + option was switched on (`autoMarkTakenSince`); slots before that are never filled. A slot the person already + took, skipped or removed is left alone, and the person can still change or skip any dose by hand. While on, + no medication reminder is sent for this medication on any channel; a client that arms local reminders should + not arm them either. Has no effect on an as-needed medication or one whose intake tracking is off. Omitted + on update leaves the current value." + type: boolean schedules: type: array items: @@ -26743,6 +26752,15 @@ components: does not know the field cannot have seen the stored schedule, which is served in `recordedSchedules`). Name `trackIntake` to change the schedule of such a medication." type: boolean + autoMarkTaken: + description: "v1.42.2 — record each scheduled dose as taken automatically. Default false. When true the server records a + taken intake (`autoRecorded: true`) for every scheduled slot once its time has passed, from the moment the + option was switched on (`autoMarkTakenSince`); slots before that are never filled. A slot the person already + took, skipped or removed is left alone, and the person can still change or skip any dose by hand. While on, + no medication reminder is sent for this medication on any channel; a client that arms local reminders should + not arm them either. Has no effect on an as-needed medication or one whose intake tracking is off. Omitted + on update leaves the current value." + type: boolean schedules: type: array items: @@ -37246,6 +37264,13 @@ components: type: boolean trackIntake: type: boolean + autoMarkTaken: + type: boolean + autoMarkTakenSince: + anyOf: + - type: string + minLength: 1 + - type: "null" category: type: string maxLength: 64 @@ -37903,6 +37928,8 @@ components: type: boolean autoMissed: type: boolean + autoRecorded: + type: boolean attributionSource: type: string enum: @@ -46728,6 +46755,12 @@ components: type: boolean description: True when the nightly cron closed the slot as missed (no user action). Auto-missed rows count against adherence but never consume inventory. + autoRecorded: + type: boolean + description: v1.42.2 — true when the server recorded this dose because the medication has `autoMarkTaken` on, not the + person. It counts as taken everywhere (adherence, history, Coach) and consumed inventory like a manual take. + Any take or skip the person records on the row clears it. Clients label such a dose "recorded + automatically". attributionSource: type: string enum: @@ -46809,6 +46842,7 @@ components: - takenAt - skipped - autoMissed + - autoRecorded - attributionSource - source - idempotencyKey @@ -47712,6 +47746,23 @@ components: any channel, and it is excluded from every adherence figure. Its stored schedule then travels in `recordedSchedules` while `schedules` is served empty, so a client that arms reminders from `schedules` stays silent without an update." + autoMarkTaken: + type: boolean + description: "v1.42.2 — doses are recorded automatically. False (the default) for every medication that existed before + the field. When true the server records each scheduled dose as taken (an intake with `autoRecorded: true`, + `takenAt` = the slot time) shortly after its time passes, from `autoMarkTakenSince` on. A slot the person + took, skipped or removed is never touched, and they can still change or skip any dose. No medication + reminder is sent for it on any channel while it is on; a client that arms local reminders should not arm + them for it either. `notificationsEnabled` keeps the person's own setting and applies again once this is + switched off." + autoMarkTakenSince: + anyOf: + - type: string + format: date-time + pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ + - type: "null" + description: v1.42.2 — when `autoMarkTaken` was last switched on. No slot anchored before it is ever recorded + automatically. NULL while the option is off. Read-only — set by the server on the switch. createdAt: type: string format: date-time @@ -47850,6 +47901,8 @@ components: - oneShot - asNeeded - trackIntake + - autoMarkTaken + - autoMarkTakenSince - createdAt - updatedAt - schedules @@ -48065,6 +48118,23 @@ components: any channel, and it is excluded from every adherence figure. Its stored schedule then travels in `recordedSchedules` while `schedules` is served empty, so a client that arms reminders from `schedules` stays silent without an update." + autoMarkTaken: + type: boolean + description: "v1.42.2 — doses are recorded automatically. False (the default) for every medication that existed before + the field. When true the server records each scheduled dose as taken (an intake with `autoRecorded: true`, + `takenAt` = the slot time) shortly after its time passes, from `autoMarkTakenSince` on. A slot the person + took, skipped or removed is never touched, and they can still change or skip any dose. No medication + reminder is sent for it on any channel while it is on; a client that arms local reminders should not arm + them for it either. `notificationsEnabled` keeps the person's own setting and applies again once this is + switched off." + autoMarkTakenSince: + anyOf: + - type: string + format: date-time + pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ + - type: "null" + description: v1.42.2 — when `autoMarkTaken` was last switched on. No slot anchored before it is ever recorded + automatically. NULL while the option is off. Read-only — set by the server on the switch. createdAt: type: string format: date-time @@ -48171,6 +48241,8 @@ components: - oneShot - asNeeded - trackIntake + - autoMarkTaken + - autoMarkTakenSince - createdAt - updatedAt - schedules @@ -50096,6 +50168,9 @@ components: type: boolean autoMissed: type: boolean + autoRecorded: + type: boolean + description: v1.42.2 — the dose was recorded automatically (`autoMarkTaken`), not by the person. doseTaken: anyOf: - type: string @@ -50121,6 +50196,7 @@ components: - takenAt - skipped - autoMissed + - autoRecorded - doseTaken - source additionalProperties: false @@ -82987,6 +83063,23 @@ components: any channel, and it is excluded from every adherence figure. Its stored schedule then travels in `recordedSchedules` while `schedules` is served empty, so a client that arms reminders from `schedules` stays silent without an update." + autoMarkTaken: + type: boolean + description: "v1.42.2 — doses are recorded automatically. False (the default) for every medication that existed before + the field. When true the server records each scheduled dose as taken (an intake with `autoRecorded: true`, + `takenAt` = the slot time) shortly after its time passes, from `autoMarkTakenSince` on. A slot the person + took, skipped or removed is never touched, and they can still change or skip any dose. No medication + reminder is sent for it on any channel while it is on; a client that arms local reminders should not arm + them for it either. `notificationsEnabled` keeps the person's own setting and applies again once this is + switched off." + autoMarkTakenSince: + anyOf: + - type: string + format: date-time + pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ + - type: "null" + description: v1.42.2 — when `autoMarkTaken` was last switched on. No slot anchored before it is ever recorded + automatically. NULL while the option is off. Read-only — set by the server on the switch. createdAt: type: string format: date-time @@ -83028,6 +83121,8 @@ components: - oneShot - asNeeded - trackIntake + - autoMarkTaken + - autoMarkTakenSince - createdAt - updatedAt - schedules