Merge branch 'v143/fixdata' into release/v1.43.0

This commit is contained in:
Marc-André Bombeck committed 2026-10-16 06:22:02 +02:00
commit a806676a71
62 files changed
+2018 -209

No files matched your search

+1 -1
View File
@@ -16,7 +16,7 @@ import { dataEnvelope, errorEnvelope, stdResponses } from "./shared";
export const aiUsageLevel = z.enum(AI_USAGE_LEVELS).meta({
id: "AiUsageLevel",
description:
"How much background AI work an account asks for, in ceiling order. `frugal`: status cards regenerate at most every 24 h after a sync and every 6 h after a hand entry, a smaller snapshot, no background reasoning, a short daily briefing (`recommendations` holds at most one entry, every field stays present), no automatic document reading, no supplement label reading. `standard`: the operator's sync gap (default 6 h), 1 h after a hand entry, background reasoning at the job default. `full`: 1 h after any ingest (the behaviour before v1.43). The interactive Coach is the same at every level.",
"How much background AI work an account asks for, in ceiling order. `frugal`: status cards regenerate at most every 24 h after a sync (or the operator's sync gap when that is longer, so never more often than `standard`) and every 6 h after a hand entry, a smaller snapshot, no background reasoning, a short daily briefing (`recommendations` holds at most one entry, every field stays present), no automatic document reading, no supplement label reading. `standard`: the operator's sync gap (default 6 h), 1 h after a hand entry, background reasoning at the job default. `full`: 1 h after any ingest (the behaviour before v1.43). The interactive Coach is the same at every level.",
});
export const aiUsageState = z
+11 -3
View File
@@ -119,7 +119,11 @@ const lifeCircumstances = z
screeningHints: z.array(screeningHint),
}),
auditC: z.object({
latest: auditCResult.nullable(),
latest: auditCResult
.nullable()
.describe(
"The newest entry whose answers this host can open; an entry it cannot open is listed in `history` only.",
),
history: z
.array(
z.object({
@@ -129,7 +133,11 @@ const lifeCircumstances = z
}),
)
.describe("Newest first, at most 20."),
offerDue: z.boolean(),
offerDue: z
.boolean()
.describe(
"No readable entry, or the newest one whose answers open (the one in `latest`) is 365 days old or older.",
),
instrument: z.object({
items: z
.array(
@@ -268,7 +276,7 @@ export const lifeCircumstancesPaths: NonNullable<ZodOpenApiObject["paths"]> = {
tags: ["Anamnesis"],
summary: "Record an AUDIT-C (v1.43)",
description:
"Scores the three items on the server. A replay with the same `externalId` answers 200 with the stored result. 422 `anamnesis.auditC.invalid`; 429 `anamnesis.auditC.rateLimited` after 30 in an hour.",
"Scores the three items on the server. The entry is stored in the language of the wording the read route offers this account (`auditC.instrument.locale`), and the cut-off follows that wording; `locale`, when sent, must name that same wording. A replay with the same `externalId` answers 200 with the stored result. 422 `anamnesis.auditC.invalid` (also for another wording than the one offered, and for a `takenAt` more than five minutes ahead of the server clock); 429 `anamnesis.auditC.rateLimited` after 30 in an hour.",
parameters: [idempotencyKeyParameter],
requestBody: {
required: true,