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

This commit is contained in:
Marc-André Bombeck committed 2026-10-16 05:55:14 +02:00
commit beb7ef4ccc
93 files changed
+4369 -3956

No files matched your search

@@ -13,7 +13,7 @@
* - Without readable values it drops the nine columns and the three
* indexes, and the sealed copies are untouched.
*/
import { readFileSync } from "node:fs";
import { existsSync, readFileSync } from "node:fs";
import { resolve } from "node:path";
import { afterAll, beforeAll, describe, expect, it } from "vitest";
@@ -177,6 +177,19 @@ describe("migration 0409 (drop the readable location columns)", () => {
expect(error?.message).toMatch(
/1 home location\(s\), 0 location period\(s\) and 0 daily location\(s\)/,
);
// The operator reads this line in the container log; it points at the
// recovery steps, which exist.
expect(error?.message).toMatch(
/docs\/ops\/migration-0409-plaintext-location\.md/,
);
expect(
existsSync(
resolve(
process.cwd(),
"docs/ops/migration-0409-plaintext-location.md",
),
),
).toBe(true);
// Nothing was dropped and the value is where it was.
expect(await columnCount(tx)).toBe(9);
@@ -416,7 +416,15 @@ describe("MCP tool outputs against their advertised schemas", () => {
.filter((name) => !(name in CASES));
expect(uncovered, "add every new tool to CASES").toEqual([]);
const ajv = new Ajv2020({ strict: true, allErrors: true });
// `allowUnionTypes`: zod 4.6 writes a nullable or primitive union as a
// `type` array (`["string", "null"]`), which is plain 2020-12. Strict
// mode otherwise refuses that spelling as an authoring style, not as an
// invalid schema; every other strict rule stays on.
const ajv = new Ajv2020({
strict: true,
allowUnionTypes: true,
allErrors: true,
});
const failures: string[] = [];
let validated = 0;
// Tools that answered with data, not only a miss: a run where every
@@ -418,8 +418,9 @@ describe("GET /api/mood/prognosis", () => {
expect(res.status).toBe(403);
// Asserted on the bytes, not on a parsed field: the point is that not one
// figure of the owner's reached the response.
const raw = await res.text();
// figure of the owner's reached the response. The error's random request
// id is taken out first, since its hex digits can spell any small count.
const raw = (await res.text()).replace(/"requestId":"[^"]*"/, "");
expect(raw).not.toContain("predicted");
expect(raw).not.toContain("ciLow");
expect(raw).not.toContain("dimension:a2");