Merge branch 't3code/61c5f7df' into v2/rewrite

This commit is contained in:
2026-05-15 00:28:49 -04:00
4 changed files with 126 additions and 6 deletions

View File

@@ -25,7 +25,7 @@ import type {
ClientSettings,
ServerSettings,
} from "@mosaiciq/contracts/rpc";
import { ClientSettingsSchema, ServerSettingsSchema } from "@mosaiciq/contracts/rpcSchemas";
import { ClientSettingsSchema, ServerSettingsSchema, UserProfileSchema } from "@mosaiciq/contracts/rpcSchemas";
export function parseJsonWithSchema<T>(
value: string,
@@ -1024,6 +1024,7 @@ const DEFAULT_CLIENT_SETTINGS: ClientSettings = {
"navigation.agents": "Cmd+4",
"navigation.home": "Cmd+0",
},
profile: {},
};
export function getClientSettings(db: Db): ClientSettings {
@@ -1041,6 +1042,9 @@ export function getClientSettings(db: Db): ClientSettings {
} else if (row.key === "navCollapsed") {
const navCollapsed = z.record(z.boolean()).safeParse(parsed);
if (navCollapsed.success) settings.navCollapsed = { ...settings.navCollapsed, ...navCollapsed.data };
} else if (row.key === "profile") {
const profile = UserProfileSchema.partial().safeParse(parsed);
if (profile.success) settings.profile = { ...settings.profile, ...profile.data };
} else {
const candidate = { ...settings, [row.key]: parsed };
const validated = ClientSettingsSchema.safeParse(candidate);
@@ -1083,6 +1087,9 @@ export function updateClientSettings(db: Db, settings: Partial<ClientSettings>):
if (settings.keybindings !== undefined) {
updateClientSetting(db, "keybindings", settings.keybindings);
}
if (settings.profile !== undefined) {
updateClientSetting(db, "profile", settings.profile);
}
}
export function getServerSettings(db: Db): ServerSettings {