feat(FN-2601): merge fusion/fn-2601 (auto-resolved)
- test(FN-2601): complete Step 3 — cover updated default copy - feat(FN-2601): complete Step 2 — polish intro styling - feat(FN-2601): complete Step 1 — update models tab copy
This commit is contained in:
@@ -10,6 +10,9 @@
|
||||
.model-selector-intro {
|
||||
color: var(--text-muted);
|
||||
font-size: 13px;
|
||||
line-height: 1.5;
|
||||
border-left: var(--space-xs) solid var(--todo);
|
||||
padding-left: var(--space-md);
|
||||
margin-bottom: var(--space-lg);
|
||||
}
|
||||
|
||||
@@ -23,7 +26,7 @@
|
||||
|
||||
.model-selector-error {
|
||||
padding: var(--space-lg);
|
||||
background: rgba(248, 81, 73, 0.1);
|
||||
background: color-mix(in srgb, var(--color-error) 10%, transparent);
|
||||
color: var(--color-error);
|
||||
border-radius: var(--radius);
|
||||
font-size: 13px;
|
||||
|
||||
@@ -416,7 +416,7 @@ export function ModelSelectorTab({ task, addToast, onTaskUpdated, settings }: Mo
|
||||
<div className="model-selector-tab">
|
||||
<h4>Model Configuration</h4>
|
||||
<p className="model-selector-intro">
|
||||
Override the AI models used for this task. When not specified, global default settings are used.
|
||||
Override the AI models used for this task. When not specified, project or global defaults are used.
|
||||
</p>
|
||||
|
||||
{modelsLoading ? (
|
||||
@@ -571,7 +571,7 @@ export function ModelSelectorTab({ task, addToast, onTaskUpdated, settings }: Mo
|
||||
|
||||
<div className="model-selector-status">
|
||||
{executorUsingDefault && validatorUsingDefault && planningUsingDefault && savedThinking === null
|
||||
? "Using global default models."
|
||||
? "Using project or global default models."
|
||||
: "Model settings are up to date."}
|
||||
</div>
|
||||
</>
|
||||
|
||||
@@ -127,6 +127,26 @@ describe("ModelSelectorTab", () => {
|
||||
expect(screen.queryByText("Reset")).not.toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("shows updated intro copy mentioning project or global defaults", async () => {
|
||||
render(<ModelSelectorTab task={FAKE_TASK} addToast={mockAddToast} />);
|
||||
|
||||
await waitForSelectors();
|
||||
|
||||
expect(
|
||||
screen.getByText(
|
||||
"Override the AI models used for this task. When not specified, project or global defaults are used.",
|
||||
),
|
||||
).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("shows updated status copy when all selections use defaults", async () => {
|
||||
render(<ModelSelectorTab task={FAKE_TASK} addToast={mockAddToast} />);
|
||||
|
||||
await waitForSelectors();
|
||||
|
||||
expect(screen.getByText("Using project or global default models.")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("shows 'Using default' when no model overrides are set", async () => {
|
||||
render(<ModelSelectorTab task={FAKE_TASK} addToast={mockAddToast} />);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user