From 04f216902bfb517e88ffbfbe7dcf0d7767671ba6 Mon Sep 17 00:00:00 2001 From: Frank Date: Sat, 7 Feb 2026 13:32:19 -0500 Subject: [PATCH 001/112] wip: zen --- packages/console/core/script/promote-models.ts | 2 +- packages/console/core/script/pull-models.ts | 2 +- packages/console/core/script/update-models.ts | 2 +- packages/console/core/src/model.ts | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/console/core/script/promote-models.ts b/packages/console/core/script/promote-models.ts index 9a9b2dcade..62d9bd6ff9 100755 --- a/packages/console/core/script/promote-models.ts +++ b/packages/console/core/script/promote-models.ts @@ -29,5 +29,5 @@ ZenData.validate(JSON.parse(values.join(""))) // update the secret const envFile = Bun.file(path.join(os.tmpdir(), `models-${Date.now()}.env`)) -await envFile.write(values.map((v, i) => `ZEN_MODELS${i + 1}=${v}`).join("\n")) +await envFile.write(values.map((v, i) => `ZEN_MODELS${i + 1}="${v.replace(/"/g, '\\"')}"`).join("\n")) await $`bun sst secret load ${envFile.name} --stage ${stage}`.cwd(root) diff --git a/packages/console/core/script/pull-models.ts b/packages/console/core/script/pull-models.ts index 6e89f602b7..01240a7155 100755 --- a/packages/console/core/script/pull-models.ts +++ b/packages/console/core/script/pull-models.ts @@ -29,5 +29,5 @@ ZenData.validate(JSON.parse(values.join(""))) // update the secret const envFile = Bun.file(path.join(os.tmpdir(), `models-${Date.now()}.env`)) -await envFile.write(values.map((v, i) => `ZEN_MODELS${i + 1}=${v}`).join("\n")) +await envFile.write(values.map((v, i) => `ZEN_MODELS${i + 1}="${v.replace(/"/g, '\\"')}"`).join("\n")) await $`bun sst secret load ${envFile.name}`.cwd(root) diff --git a/packages/console/core/script/update-models.ts b/packages/console/core/script/update-models.ts index 095c4aba85..7d1fa99c3d 100755 --- a/packages/console/core/script/update-models.ts +++ b/packages/console/core/script/update-models.ts @@ -39,5 +39,5 @@ const newValues = Array.from({ length: PARTS }, (_, i) => ) const envFile = Bun.file(path.join(os.tmpdir(), `models-${Date.now()}.env`)) -await envFile.write(newValues.map((v, i) => `ZEN_MODELS${i + 1}=${v}`).join("\n")) +await envFile.write(newValues.map((v, i) => `ZEN_MODELS${i + 1}="${v.replace(/"/g, '\\"')}"`).join("\n")) await $`bun sst secret load ${envFile.name}`.cwd(root) diff --git a/packages/console/core/src/model.ts b/packages/console/core/src/model.ts index 6b06f275d4..831b3c5fc9 100644 --- a/packages/console/core/src/model.ts +++ b/packages/console/core/src/model.ts @@ -53,6 +53,7 @@ export namespace ZenData { weight: z.number().optional(), disabled: z.boolean().optional(), storeModel: z.string().optional(), + headerMappings: z.record(z.string(), z.string()).optional(), }), ), }) From 9401029b1dda6f39823221f3424bbc878a00ad72 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sat, 7 Feb 2026 14:21:50 -0500 Subject: [PATCH 002/112] fix(app): move workspace New session into header (#12624) --- .../src/pages/layout/sidebar-workspace.tsx | 37 +++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/packages/app/src/pages/layout/sidebar-workspace.tsx b/packages/app/src/pages/layout/sidebar-workspace.tsx index 11bad84b02..44f4b35307 100644 --- a/packages/app/src/pages/layout/sidebar-workspace.tsx +++ b/packages/app/src/pages/layout/sidebar-workspace.tsx @@ -1,3 +1,4 @@ +import { useNavigate, useParams } from "@solidjs/router" import { createEffect, createMemo, For, Show, type Accessor, type JSX } from "solid-js" import { createStore } from "solid-js/store" import { createSortable } from "@thisbeyond/solid-dnd" @@ -86,6 +87,8 @@ export const SortableWorkspace = (props: { project: LocalProject mobile?: boolean }): JSX.Element => { + const navigate = useNavigate() + const params = useParams() const globalSync = useGlobalSync() const language = useLanguage() const sortable = createSortable(props.directory) @@ -111,6 +114,7 @@ export const SortableWorkspace = (props: { const busy = createMemo(() => props.ctx.isBusy(props.directory)) const wasBusy = createMemo((prev) => prev || busy(), false) const loading = createMemo(() => open() && !booted() && sessions().length === 0 && !wasBusy()) + const showNew = createMemo(() => !loading() && (sessions().length === 0 || (active() && !params.id))) const loadMore = async () => { setWorkspaceStore("limit", (limit) => limit + 5) await globalSync.project.loadSessions(props.directory) @@ -260,6 +264,23 @@ export const SortableWorkspace = (props: { + + { + event.preventDefault() + event.stopPropagation() + props.ctx.setHoverSession(undefined) + props.ctx.clearHoverProjectSoon() + navigate(`/${slug()}/session`) + }} + /> + @@ -267,13 +288,15 @@ export const SortableWorkspace = (props: {