Merge branch 'main' into cascade-disable-models

This commit is contained in:
TJ
2026-05-29 09:31:19 -07:00
committed by GitHub
5 changed files with 45 additions and 28 deletions
+1 -1
View File
@@ -69,7 +69,7 @@
"@xterm/addon-webgl": "0.19.0",
"@xterm/xterm": "5.5.0",
"ansi-to-html": "0.7.2",
"axios": "1.15.2",
"axios": "1.16.0",
"chroma-js": "2.6.0",
"class-variance-authority": "0.7.1",
"clsx": "2.1.1",
+36 -19
View File
@@ -123,8 +123,8 @@ importers:
specifier: 0.7.2
version: 0.7.2
axios:
specifier: 1.15.2
version: 1.15.2
specifier: 1.16.0
version: 1.16.0
chroma-js:
specifier: 2.6.0
version: 2.6.0
@@ -495,6 +495,10 @@ packages:
resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==, tarball: https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz}
engines: {node: '>=6.9.0'}
'@babel/code-frame@7.29.7':
resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==, tarball: https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz}
engines: {node: '>=6.9.0'}
'@babel/compat-data@7.29.0':
resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==, tarball: https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz}
engines: {node: '>=6.9.0'}
@@ -545,6 +549,10 @@ packages:
resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==, tarball: https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.29.7':
resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==, tarball: https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-option@7.27.1':
resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==, tarball: https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz}
engines: {node: '>=6.9.0'}
@@ -3030,8 +3038,8 @@ packages:
resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==, tarball: https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz}
engines: {node: '>=4'}
axios@1.15.2:
resolution: {integrity: sha512-wLrXxPtcrPTsNlJmKjkPnNPK2Ihe0hn0wGSaTEiHRPxwjvJwT3hKmXF4dpqxmPO9SoNb2FsYXj/xEo0gHN+D5A==, tarball: https://registry.npmjs.org/axios/-/axios-1.15.2.tgz}
axios@1.16.0:
resolution: {integrity: sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==, tarball: https://registry.npmjs.org/axios/-/axios-1.16.0.tgz}
babel-plugin-macros@3.1.0:
resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, tarball: https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz}
@@ -3746,8 +3754,8 @@ packages:
es-module-lexer@2.1.0:
resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==, tarball: https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz}
es-object-atoms@1.1.1:
resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==, tarball: https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz}
es-object-atoms@1.1.2:
resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==, tarball: https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz}
engines: {node: '>= 0.4'}
es-set-tostringtag@2.1.0:
@@ -4015,8 +4023,8 @@ packages:
resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, tarball: https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz}
engines: {node: '>= 0.4'}
hasown@2.0.3:
resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==, tarball: https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz}
hasown@2.0.4:
resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==, tarball: https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz}
engines: {node: '>= 0.4'}
hast-util-from-parse5@8.0.3:
@@ -5343,6 +5351,7 @@ packages:
recharts@2.15.4:
resolution: {integrity: sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==, tarball: https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz}
engines: {node: '>=14'}
deprecated: 1.x and 2.x branches are no longer active. Bump to Recharts v3 to receive latest features and bugfixes. See https://github.com/recharts/recharts/wiki/3.0-migration-guide
peerDependencies:
react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -6401,6 +6410,12 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
'@babel/code-frame@7.29.7':
dependencies:
'@babel/helper-validator-identifier': 7.29.7
js-tokens: 4.0.0
picocolors: 1.1.1
'@babel/compat-data@7.29.0': {}
'@babel/core@7.29.0':
@@ -6478,6 +6493,8 @@ snapshots:
'@babel/helper-validator-identifier@7.28.5': {}
'@babel/helper-validator-identifier@7.29.7': {}
'@babel/helper-validator-option@7.27.1': {}
'@babel/helpers@7.26.10':
@@ -8442,7 +8459,7 @@ snapshots:
'@testing-library/dom@10.4.0':
dependencies:
'@babel/code-frame': 7.29.0
'@babel/code-frame': 7.29.7
'@babel/runtime': 7.26.10
'@types/aria-query': 5.0.4
aria-query: 5.3.0
@@ -9079,7 +9096,7 @@ snapshots:
axe-core@4.11.1: {}
axios@1.15.2:
axios@1.16.0:
dependencies:
follow-redirects: 1.16.0
form-data: 4.0.4
@@ -9799,7 +9816,7 @@ snapshots:
es-module-lexer@2.1.0: {}
es-object-atoms@1.1.1:
es-object-atoms@1.1.2:
dependencies:
es-errors: 1.3.0
@@ -9808,7 +9825,7 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.3.0
has-tostringtag: 1.0.2
hasown: 2.0.3
hasown: 2.0.4
esbuild@0.25.12:
optionalDependencies:
@@ -9972,7 +9989,7 @@ snapshots:
asynckit: 0.4.0
combined-stream: 1.0.8
es-set-tostringtag: 2.1.0
hasown: 2.0.3
hasown: 2.0.4
mime-types: 2.1.35
format@0.2.2: {}
@@ -10042,12 +10059,12 @@ snapshots:
call-bind-apply-helpers: 1.0.2
es-define-property: 1.0.1
es-errors: 1.3.0
es-object-atoms: 1.1.1
es-object-atoms: 1.1.2
function-bind: 1.1.2
get-proto: 1.0.1
gopd: 1.2.0
has-symbols: 1.1.0
hasown: 2.0.3
hasown: 2.0.4
math-intrinsics: 1.1.0
get-nonce@1.0.1: {}
@@ -10055,7 +10072,7 @@ snapshots:
get-proto@1.0.1:
dependencies:
dunder-proto: 1.0.1
es-object-atoms: 1.1.1
es-object-atoms: 1.1.2
glob-parent@5.1.2:
dependencies:
@@ -10100,7 +10117,7 @@ snapshots:
dependencies:
has-symbols: 1.1.0
hasown@2.0.3:
hasown@2.0.4:
dependencies:
function-bind: 1.1.2
@@ -10275,7 +10292,7 @@ snapshots:
internal-slot@1.0.6:
dependencies:
get-intrinsic: 1.3.0
hasown: 2.0.3
hasown: 2.0.4
side-channel: 1.1.0
internmap@1.0.1: {}
@@ -10328,7 +10345,7 @@ snapshots:
is-core-module@2.16.1:
dependencies:
hasown: 2.0.3
hasown: 2.0.4
is-date-object@1.0.5:
dependencies:
@@ -347,7 +347,7 @@ export const ChatsPanel: FC<ChatsPanelProps> = ({
>
<nav
aria-label="Sidebar"
className="hidden border-b border-border-default px-2 py-1.5 sm:flex sm:flex-col sm:gap-1"
className="hidden border-b border-border-default px-2 py-1.5 sm:flex sm:flex-col sm:gap-0.5"
>
<div className="flex items-center justify-between mb-2.5 ml-2.5">
<div className="flex items-center gap-2">
@@ -413,9 +413,9 @@ export const ChatsPanel: FC<ChatsPanelProps> = ({
)}
</nav>
<div className="relative min-h-0 flex-1 flex flex-col">
<div className="mx-2 mt-4 mb-2">
<div className="mx-2 pt-6 mb-1.5">
<div className="ml-2.5 mr-2 flex h-7 items-center justify-between">
<h2 className="m-0 text-sm font-normal leading-6 text-content-primary">
<h2 className="m-0 text-sm font-normal leading-6 text-content-secondary">
Chats
</h2>
<div className="flex items-center gap-1">
@@ -446,7 +446,7 @@ export const ChatsPanel: FC<ChatsPanelProps> = ({
"sm:[mask-image:none] sm:[-webkit-mask-image:none]",
)}
>
<div className="flex flex-col gap-2 px-2 pb-3 pt-5">
<div className="flex flex-col gap-2 px-2 pb-3">
{loadError ? (
<div className="space-y-3 px-1">
<ErrorAlert error={loadError} />
@@ -34,7 +34,7 @@ const navItemClassName = (
className: string | undefined,
) =>
cn(
"flex w-full items-center gap-2.5 rounded-md border-0 px-2.5 py-2 text-left text-sm cursor-pointer transition-colors no-underline",
"flex w-full items-center gap-2.5 rounded-md border-0 px-2.5 py-1.5 text-left text-sm cursor-pointer transition-colors no-underline",
active
? "bg-surface-quaternary/25 text-content-primary font-medium"
: "bg-transparent text-content-secondary hover:bg-surface-tertiary/50 hover:text-content-primary",
@@ -208,7 +208,7 @@ export const ChatTreeNode: FC<ChatTreeNodeProps> = ({ chat, isChildNode }) => {
);
return (
<div className="flex min-w-0 flex-col">
<div className="flex min-w-0 flex-col gap-0.5">
<ContextMenu>
<ContextMenuTrigger asChild>
<div
@@ -329,7 +329,7 @@ export const ChatTreeNode: FC<ChatTreeNodeProps> = ({ chat, isChildNode }) => {
<span className="flex items-center justify-end text-xs text-content-secondary/50 tabular-nums [@media(hover:hover)]:group-hover:hidden group-has-[[data-state=open]]:hidden">
{chat.has_unread && !isActiveChat ? (
<span
className="size-2 shrink-0 rounded-full bg-content-link"
className="size-2 shrink-0 rounded-full bg-content-link pr-1"
data-testid={`unread-indicator-${chat.id}`}
aria-hidden="true"
/>
@@ -374,7 +374,7 @@ export const ChatTreeNode: FC<ChatTreeNodeProps> = ({ chat, isChildNode }) => {
</ContextMenu>
{hasChildren && isExpanded && (
<div className="relative ml-4 border-l border-border-default/60 pl-2.5">
<div className="relative ml-4 flex flex-col border-l border-border-default/60 pl-2.5">
{childIDs.map((childID) => {
const childChat = chatById.get(childID);
if (!childChat) return null;