Skip to content

Commit 04e9d44

Browse files
author
shanchunhua
committed
fix: keep fallback row identity stable
1 parent 2c8001f commit 04e9d44

67 files changed

Lines changed: 137 additions & 123 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

frontend/src/create/ModelFallbackFields.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,12 +136,16 @@ export function ModelFallbackFields({
136136
? modelFallbackApiKeyEnv(agentName, index, values, endpoint)
137137
: defaultModelFallbackApiKeyEnv(agentName, index);
138138
const secretValue = secretValues?.[fallbackApiKeyEnv] ?? "";
139+
const rowKey =
140+
endpoint
141+
? `endpoint-${fallbackApiKeyEnv}-${index}`
142+
: `same-provider-${index}`;
139143
return (
140144
<div
141145
className={`model-fallback-fields__item${
142146
endpoint ? " is-endpoint" : ""
143147
}`}
144-
key={`${fallbackValue || "empty"}-${index}`}
148+
key={rowKey}
145149
>
146150
<div className="model-fallback-fields__toolbar">
147151
<div

frontend/tests/modelSelector.test.mjs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,16 @@ test("cross-provider fallback editor hides env internals and keeps rows on blur"
146146
assert.match(modelFallbackFieldsSource, /modelApiKeyEnv: fallbackApiKeyEnv/);
147147
});
148148

149+
test("cross-provider fallback editor keeps row identity stable while typing model names", () => {
150+
assert.doesNotMatch(modelFallbackFieldsSource, /key=\{`\$\{fallbackValue/);
151+
assert.match(modelFallbackFieldsSource, /const rowKey =/);
152+
assert.match(
153+
modelFallbackFieldsSource,
154+
/endpoint-\$\{fallbackApiKeyEnv\}-\$\{index\}/,
155+
);
156+
assert.match(modelFallbackFieldsSource, /key=\{rowKey\}/);
157+
});
158+
149159
test("selected ModelArk API Key is resolved only by the Studio server", () => {
150160
assert.match(clientSource, /export async function revealModelApiKey/);
151161
assert.doesNotMatch(customCreateSource, /getModelApiKeyValue\(/);
Lines changed: 49 additions & 49 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

veadk/webui/assets/chunks/CodeDiffEditor-trt2RBWV.js renamed to veadk/webui/assets/chunks/CodeDiffEditor-DwnkhanG.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

veadk/webui/assets/chunks/MarkdownPromptEditor-D7cJt2v8.js renamed to veadk/webui/assets/chunks/MarkdownPromptEditor-KdlI1y3u.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
import{U as a,C as n}from"../visualizations/mermaid/mermaid.core-C3MtEgEh.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
1+
import{U as a,C as n}from"../visualizations/mermaid/mermaid.core-DU-yPz3F.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};

veadk/webui/assets/chunks/index.es-uxZsoe5_.js renamed to veadk/webui/assets/chunks/index.es-DepWIAyE.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

veadk/webui/assets/chunks/jspdf.es.min-DpciD7e6.js renamed to veadk/webui/assets/chunks/jspdf.es.min-Cds7CMLZ.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

veadk/webui/assets/chunks/linear-BIhS7M2b.js renamed to veadk/webui/assets/chunks/linear-CvR7DKn0.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)