From 15c11c98b99d6b788b91b8182864e0c6579a15b6 Mon Sep 17 00:00:00 2001 From: chriscrosstalk <49691103+chriscrosstalk@users.noreply.github.com> Date: Wed, 1 Apr 2026 16:06:53 -0700 Subject: [PATCH] feat(UI): add Installed Models section to AI Assistant settings (#612) Surfaces all installed AI models in a dedicated table between Settings and Active Model Downloads, so users can quickly see what's installed and delete models without hunting through the expandable model catalog. Co-authored-by: Claude Opus 4.6 (1M context) --- admin/inertia/pages/settings/models.tsx | 59 +++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/admin/inertia/pages/settings/models.tsx b/admin/inertia/pages/settings/models.tsx index fe40dbe..08d9616 100644 --- a/admin/inertia/pages/settings/models.tsx +++ b/admin/inertia/pages/settings/models.tsx @@ -17,6 +17,7 @@ import StyledSectionHeader from '~/components/StyledSectionHeader' import { useMutation, useQuery } from '@tanstack/react-query' import Input from '~/components/inputs/Input' import { IconSearch, IconRefresh } from '@tabler/icons-react' +import { formatBytes } from '~/lib/util' import useDebounce from '~/hooks/useDebounce' import ActiveModelDownloads from '~/components/ActiveModelDownloads' import { useSystemInfo } from '~/hooks/useSystemInfo' @@ -323,6 +324,64 @@ export default function ModelsPage(props: { /> + + +
+ {props.models.installedModels.length === 0 ? ( +

+ No models installed. Browse the model catalog below to get started. +

+ ) : ( + + + + + + + + + + + {props.models.installedModels.map((model) => ( + + + + + + + ))} + +
+ Model + + Parameters + + Disk Size + + Action +
+ {model.name} + + + {model.details.parameter_size || 'N/A'} + + + + {formatBytes(model.size)} + + + confirmDeleteModel(model.name)} + icon="IconTrash" + > + Delete + +
+ )} +
+