From 8b651cb980ce03aab6ab92d9bc243cb4af6b89df Mon Sep 17 00:00:00 2001 From: Miodec Date: Wed, 17 Jun 2026 13:06:10 +0200 Subject: [PATCH 1/6] chore: update schema --- packages/contracts/src/results.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/contracts/src/results.ts b/packages/contracts/src/results.ts index 2a818e0fe5e6..20729f6deb3f 100644 --- a/packages/contracts/src/results.ts +++ b/packages/contracts/src/results.ts @@ -66,8 +66,8 @@ export const AddResultRequestSchema = z.object({ export type AddResultRequest = z.infer; export const ReportCompletedEventMismatchRequestSchema = z.object({ - notMatching: z.array(z.string().max(100)).max(50), - mismatchedKeys: z.array(z.string().max(100)).max(50), + notMatching: z.array(z.string().max(10000)).max(50), + mismatchedKeys: z.array(z.string().max(10000)).max(50), groupKey: z.string().max(500), language: LanguageSchema.optional(), mode: ModeSchema.optional(), From 02509da236658921a20de4a1d5a961952525b5af Mon Sep 17 00:00:00 2001 From: Christian Fehmer Date: Wed, 17 Jun 2026 17:44:48 +0200 Subject: [PATCH 2/6] docs(api): include compat version into api version (@fehmer) (#8107) --- backend/scripts/openapi.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/scripts/openapi.ts b/backend/scripts/openapi.ts index 0b9c08905084..e64c24e11e6c 100644 --- a/backend/scripts/openapi.ts +++ b/backend/scripts/openapi.ts @@ -1,5 +1,5 @@ import { generateOpenApi } from "@ts-rest/open-api"; -import { contract } from "@monkeytype/contracts/index"; +import { COMPATIBILITY_CHECK, contract } from "@monkeytype/contracts/index"; import { writeFileSync, mkdirSync } from "fs"; import { EndpointMetadata, PermissionId } from "@monkeytype/contracts/util/api"; import type { OpenAPIObject, OperationObject } from "openapi3-ts"; @@ -24,7 +24,7 @@ export function getOpenApi(): OpenAPIObject { title: "Monkeytype API", description: "Documentation for the endpoints provided by the Monkeytype API server.\n\nNote that authentication is performed with the Authorization HTTP header in the format `Authorization: ApeKey YOUR_APE_KEY`\n\nThere is a rate limit of `30 requests per minute` across all endpoints with some endpoints being more strict. Rate limit rates are shared across all ape keys.", - version: "2.0.0", + version: `2.${COMPATIBILITY_CHECK}.0`, termsOfService: "https://monkeytype.com/terms-of-service", contact: { name: "Support", From 667ee5dfbc6704584633465376391e879c970d5a Mon Sep 17 00:00:00 2001 From: Christian Fehmer Date: Wed, 17 Jun 2026 17:45:10 +0200 Subject: [PATCH 3/6] fix(settings): optional include background link (@fehmer) (#8116) don't show missing field value message if include background is not clicked in share custom theme modal --- .../src/ts/components/pages/settings/custom-setting/Theme.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/ts/components/pages/settings/custom-setting/Theme.tsx b/frontend/src/ts/components/pages/settings/custom-setting/Theme.tsx index 9b30d31eaa64..b7ad5a73c554 100644 --- a/frontend/src/ts/components/pages/settings/custom-setting/Theme.tsx +++ b/frontend/src/ts/components/pages/settings/custom-setting/Theme.tsx @@ -125,7 +125,7 @@ export function Theme(): JSXElement { onClick={() => { showSimpleModal({ title: "Share custom theme", - schema: z.object({ includeBackground: z.boolean() }), + schema: z.object({ includeBackground: z.boolean().optional() }), inputs: { includeBackground: { label: "Include background link, size and filters", From 5fef92d617522f002bd1fae6915cb3dcc3053e33 Mon Sep 17 00:00:00 2001 From: Christian Fehmer Date: Wed, 17 Jun 2026 17:45:42 +0200 Subject: [PATCH 4/6] fix(commandline): don't show underscores in values for highlightMode and keymapStyle (@fehmer) (#8125) --- frontend/src/ts/commandline/commandline-metadata.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/src/ts/commandline/commandline-metadata.ts b/frontend/src/ts/commandline/commandline-metadata.ts index 46bcb4ac237c..71b01937d653 100644 --- a/frontend/src/ts/commandline/commandline-metadata.ts +++ b/frontend/src/ts/commandline/commandline-metadata.ts @@ -1,7 +1,10 @@ import * as ConfigSchemas from "@monkeytype/schemas/configs"; import * as SoundController from "../controllers/sound-controller"; import * as TestLogic from "../test/test-logic"; -import { getLanguageDisplayString } from "../utils/strings"; +import { + getLanguageDisplayString, + replaceUnderscoresWithSpaces, +} from "../utils/strings"; import { areUnsortedArraysEqual } from "../utils/arrays"; import { Config } from "../config/store"; @@ -531,7 +534,7 @@ export const commandlineConfigMetadata: CommandlineConfigMetadataObject = { timerStyle: { subgroup: { options: "fromSchema", - display: (value) => value.replaceAll(/_/g, " "), + display: replaceUnderscoresWithSpaces, }, alias: "timer", }, @@ -554,6 +557,7 @@ export const commandlineConfigMetadata: CommandlineConfigMetadataObject = { highlightMode: { subgroup: { options: "fromSchema", + display: replaceUnderscoresWithSpaces, }, }, typedEffect: { @@ -639,6 +643,7 @@ export const commandlineConfigMetadata: CommandlineConfigMetadataObject = { keymapStyle: { subgroup: { options: "fromSchema", + display: replaceUnderscoresWithSpaces, }, alias: "keyboard", }, From cef0297ac540f1765ee6d904b0b497d32407d43f Mon Sep 17 00:00:00 2001 From: Christian Fehmer Date: Wed, 17 Jun 2026 17:46:04 +0200 Subject: [PATCH 5/6] refactor(test): move test modes notice elements to page/test (@fehmer) (#8126) --- frontend/src/ts/components/mount.tsx | 2 +- .../test/modes-notice/AverageNotice.tsx | 6 +++--- .../{ => pages}/test/modes-notice/Notice.tsx | 14 ++++++------- .../test/modes-notice/PbNotice.tsx | 14 ++++++------- .../test/modes-notice/TestModesNotice.tsx | 20 +++++++++---------- 5 files changed, 28 insertions(+), 28 deletions(-) rename frontend/src/ts/components/{ => pages}/test/modes-notice/AverageNotice.tsx (84%) rename frontend/src/ts/components/{ => pages}/test/modes-notice/Notice.tsx (76%) rename frontend/src/ts/components/{ => pages}/test/modes-notice/PbNotice.tsx (72%) rename frontend/src/ts/components/{ => pages}/test/modes-notice/TestModesNotice.tsx (94%) diff --git a/frontend/src/ts/components/mount.tsx b/frontend/src/ts/components/mount.tsx index 6a2a1d83b3a0..ada62540a141 100644 --- a/frontend/src/ts/components/mount.tsx +++ b/frontend/src/ts/components/mount.tsx @@ -22,9 +22,9 @@ import { LoginPage } from "./pages/login/LoginPage"; import { ProfilePage } from "./pages/profile/ProfilePage"; import { ProfileSearchPage } from "./pages/profile/ProfileSearchPage"; import { SettingsPage } from "./pages/settings/SettingsPage"; +import { TestModesNotice } from "./pages/test/modes-notice/TestModesNotice"; import { TestConfig } from "./pages/test/TestConfig"; import { Popups } from "./popups/Popups"; -import { TestModesNotice } from "./test/modes-notice/TestModesNotice"; const components: Record JSXElement> = { footer: () =>