From d2eb1f4eba5d55608b63567284d73b6d0cf90d4d Mon Sep 17 00:00:00 2001
From: 1151280699 <1151280699@qq.com>
Date: Tue, 2 Jun 2026 10:14:50 +0800
Subject: [PATCH] Restore compact model forwarding settings
---
apps/src/app/settings/page.tsx | 63 ++++++++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)
diff --git a/apps/src/app/settings/page.tsx b/apps/src/app/settings/page.tsx
index 702007ce7..73168b503 100644
--- a/apps/src/app/settings/page.tsx
+++ b/apps/src/app/settings/page.tsx
@@ -313,6 +313,10 @@ function AdminSettingsPage() {
const [modelForwardRuleRowsDraft, setModelForwardRuleRowsDraft] = useState<
ReturnType | null
>(null);
+ const [
+ compactModelForwardRuleRowsDraft,
+ setCompactModelForwardRuleRowsDraft,
+ ] = useState | null>(null);
const [lastUpdateCheck, setLastUpdateCheck] =
useState(null);
const [updateDialogCheck, setUpdateDialogCheck] =
@@ -404,6 +408,10 @@ function AdminSettingsPage() {
modelForwardRuleRowsDraft ??
parseModelForwardRules(snapshot?.modelForwardRules || ""),
);
+ const compactModelForwardRuleRows = ensureModelForwardRuleRows(
+ compactModelForwardRuleRowsDraft ??
+ parseModelForwardRules(snapshot?.compactModelForwardRules || ""),
+ );
usePageTransitionReady(
"/settings/",
!canAccessManagementRpc || Boolean(snapshot) || isSnapshotError,
@@ -760,6 +768,37 @@ function AdminSettingsPage() {
.then(() => setModelForwardRuleRowsDraft(null))
.catch(() => undefined);
};
+ const updateCompactModelForwardRuleRows = (
+ updater: (rows: ReturnType) => ReturnType<
+ typeof parseModelForwardRules
+ >,
+ ) => {
+ const sourceRows =
+ compactModelForwardRuleRowsDraft ??
+ parseModelForwardRules(snapshot?.compactModelForwardRules || "");
+ setCompactModelForwardRuleRowsDraft(
+ updater(ensureModelForwardRuleRows(sourceRows)),
+ );
+ };
+ const commitCompactModelForwardRulesDraft = () => {
+ if (compactModelForwardRuleRowsDraft == null) return;
+ const nextSerialized = serializeModelForwardRules(
+ compactModelForwardRuleRowsDraft,
+ );
+ if (
+ nextSerialized.trim() ===
+ (snapshot?.compactModelForwardRules || "").trim()
+ ) {
+ setCompactModelForwardRuleRowsDraft(null);
+ return;
+ }
+ void updateSettings
+ .mutateAsync({
+ compactModelForwardRules: nextSerialized,
+ })
+ .then(() => setCompactModelForwardRuleRowsDraft(null))
+ .catch(() => undefined);
+ };
const transportInputValues = {
sseKeepaliveIntervalMs:
transportDraft.sseKeepaliveIntervalMs ??
@@ -1786,6 +1825,30 @@ function AdminSettingsPage() {
+
+
+
+ updateCompactModelForwardRuleRows((rows) =>
+ ensureModelForwardRuleRows(updater(rows)),
+ )
+ }
+ onCommit={commitCompactModelForwardRulesDraft}
+ />
+
+ {t(
+ "仅对 /v1/responses/compact 生效;命中后会在 compact 请求里优先改写模型。",
+ )}
+
+
+