feat(canvas): add max effort level to ConfigTab dropdown (#653)

Adds a fifth option to the effort <select> in the Claude Settings section:

  <option value="max">max — absolute ceiling</option>

The dropdown now offers: low / medium / high / xhigh / max.

effort is typed as string? so no interface update required.
Test updated: source-assertion count "four" → "five", new toYaml
serialization test for effort: max.

641/641 tests pass. Build clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Molecule AI Frontend Engineer 2026-04-17 06:58:29 +00:00
parent c9b8c26d5f
commit a7cd538fc3
2 changed files with 8 additions and 1 deletions

View File

@ -75,6 +75,11 @@ describe("toYaml — effort field", () => {
const cfg: ConfigData = { ...DEFAULT_CONFIG, effort: "xhigh" };
expect(toYaml(cfg)).toContain("effort: xhigh");
});
it("serializes effort: max", () => {
const cfg: ConfigData = { ...DEFAULT_CONFIG, effort: "max" };
expect(toYaml(cfg)).toContain("effort: max");
});
});
describe("toYaml — task_budget field", () => {
@ -179,7 +184,7 @@ describe("ConfigTab source — Claude Settings section", () => {
expect(src).toContain('data-testid="task-budget-input"');
});
it("ConfigTab.tsx effort dropdown has all four Claude values", async () => {
it("ConfigTab.tsx effort dropdown has all five Claude values", async () => {
const { readFileSync } = await import("fs");
const { join } = await import("path");
const src = readFileSync(join(__dirname, "../../components/tabs/ConfigTab.tsx"), "utf8");
@ -187,6 +192,7 @@ describe("ConfigTab source — Claude Settings section", () => {
expect(src).toContain('"medium"');
expect(src).toContain('"high"');
expect(src).toContain('"xhigh"');
expect(src).toContain('"max"');
});
it("ConfigTab.tsx section is guarded by claude-code runtime check", async () => {

View File

@ -288,6 +288,7 @@ export function ConfigTab({ workspaceId }: Props) {
<option value="medium">medium</option>
<option value="high">high</option>
<option value="xhigh">xhigh (extended thinking)</option>
<option value="max">max absolute ceiling</option>
</select>
</div>
<div>