🌐 US-Proxy
class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
Skip to content

feat: add reasoning effort slider to the chat model selector - #26977

Merged
DanielleMaywood merged 1 commit into
dm/reasoning-effort-2-per-turnfrom
dm/reasoning-effort-4-selector-slider
Jul 9, 2026
Merged

feat: add reasoning effort slider to the chat model selector#26977
DanielleMaywood merged 1 commit into
dm/reasoning-effort-2-per-turnfrom
dm/reasoning-effort-4-selector-slider

Conversation

@DanielleMaywood

@DanielleMaywood DanielleMaywood commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Adds an "Effort" slider to the chat model selector dropdown, matching the Figma design: label with an info tooltip, a discrete slider, and a value badge (e.g. "Xhigh"), pinned below the model list.

Behavior

  • Rendered only when the selected model config has a max reasoning effort configured; slider steps span the provider's supported efforts up to the model's max.
  • Initialized from the chat's last_reasoning_effort when valid, else the model's default; re-clamps when switching models.
  • The selection is sent as reasoning_effort on chat creation, message send, and message edit (on edit only when the user changed the slider, so historical turns keep their original effort). The backend re-clamps regardless.
  • Wired into both the chat page composer and the new-chat create form.

Part of the reasoning effort stack (base: #26975).

🤖 Generated by Coder Agents on behalf of @DanielleMaywood

@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from cd73e8f to ed3b43c Compare July 6, 2026 17:22
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch 2 times, most recently from e26d472 to 94e5bb9 Compare July 7, 2026 10:22
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from ed3b43c to 1934e5b Compare July 7, 2026 10:22
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from 94e5bb9 to 8d6506c Compare July 7, 2026 12:38
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from 1934e5b to 26325c8 Compare July 7, 2026 12:38
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from 8d6506c to c4f372b Compare July 7, 2026 14:11
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from 26325c8 to 3685d3c Compare July 7, 2026 14:11
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from c4f372b to 28bf556 Compare July 7, 2026 23:27
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from 3685d3c to c1f9fc4 Compare July 7, 2026 23:27
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from 28bf556 to 56104c4 Compare July 7, 2026 23:44
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from c1f9fc4 to 2f40dd5 Compare July 7, 2026 23:44
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from 56104c4 to 51acd5d Compare July 8, 2026 07:53
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from 2f40dd5 to 35efe67 Compare July 8, 2026 07:53
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from 51acd5d to 474e71e Compare July 8, 2026 08:59
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from 35efe67 to 5286cc9 Compare July 8, 2026 08:59
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from 474e71e to 514790b Compare July 8, 2026 09:32
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from 5286cc9 to cc24930 Compare July 8, 2026 09:33
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from 514790b to c5b2fa9 Compare July 8, 2026 10:14
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from cc24930 to fd9e20c Compare July 8, 2026 10:14
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from c5b2fa9 to 847f0e7 Compare July 8, 2026 11:23
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from fd9e20c to 226f860 Compare July 8, 2026 11:23
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from 847f0e7 to 515eeef Compare July 8, 2026 12:10
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from 226f860 to 1f8421d Compare July 8, 2026 12:10
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from 515eeef to b6365c7 Compare July 8, 2026 14:06
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from 1f8421d to d6a7d4c Compare July 8, 2026 14:06
@coder-agents-review

coder-agents-review Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Chat: Review posted | View chat
Requested: 2026-07-09 21:29 UTC by @DanielleMaywood
Spend: $94.28 / $100.00

Review history
  • R1 (2026-07-08), 1 P2, 1 P3, COMMENT. Review
  • R2 (2026-07-08), 2 P2, 1 P3, COMMENT. Review
  • R3 (2026-07-09): 19 reviewers, 2 Nit, 3 Note, 1 P1, 2 P2, 3 P3, 1 P4, REQUEST_CHANGES. Review
  • R4 (2026-07-09): 7 reviewers, 3 Nit, 3 Note, 1 P1, 2 P2, 3 P3, 1 P4, APPROVE. Review

deep-review v0.9.0 | Round 4 | 63d94a3..1277de5

Last posted: Round 4, 13 findings (1 P1, 2 P2, 3 P3, 1 P4, 3 Nit, 3 Note), APPROVE. Review

Finding inventory

Findings

# Sev Status Location Summary Round Reviewer Posted
CRF-1 P2 Author fixed (76f68fe) 000541_chat_reasoning_effort.up.sql Up migration creates CHECK constraints that dump.sql and check_constraint.go no longer include R1 Netero Yes
CRF-2 P3 Author fixed (76f68fe) chatd.go:2951 appendMessageFields omits ReasoningEffort, leaving array length mismatch R1 Netero Yes
CRF-3 P2 Author fixed (3c16e1e) chatd_test.go:11663 Five backend tests deleted with no replacement; edit+effort, promote+effort, queue+effort paths untested R2 Netero Yes
CRF-4 P1 Author fixed (1277de5) exp_chats_test.go:3900 require.Equal assertion drops %q-formatted invalid value, always fails R3 Hisoka P1, Mafu-san P1, Mafuuu P1, Pariston P1, Kite P1, Chopper P1, Razor P2 Yes
CRF-5 P3 Author fixed (1277de5) chatd_test.go:80 Local ref[T] duplicates ptr.Ref; drive-by factoryPtr→ptr rename caused import collision R3 Robin P3, Zoro P3, Gon P3, Ging-go P3, Bisky Nit, Hisoka Nit, Mafu-san P3, Mafuuu Nit, Luffy Nit, Kite Nit, Meruem Nit, Chopper Note Yes
CRF-6 P3 Author contested; panel closed R4 (5/5 accept) reasoningEffort.ts:2 "Xhigh" display label is opaque; every other effort is a real English word R3 Leorio P3, Luffy P3 Yes
CRF-7 P4 Author fixed (1277de5) AgentChatPage.tsx:1138 7+ comments narrate what pickReasoningEffort does; the function name and arguments are self-documenting R3 Gon P2 Yes
CRF-8 Nit Author fixed (1277de5) reasoningEffort.ts:5 pickReasoningEffort doc says "highest effort" but returns last array element; undocumented sort precondition R3 Leorio Yes
CRF-9 Nit Author fixed (1277de5) commit message Scope site does not cover coderd/ files also changed R3 Leorio Yes
CRF-10 Note Author accepted R4 (existing unit + form story coverage sufficient) AgentCreateForm.stories.tsx:332 No story for default effort submission (slider not moved); gap narrow, covered by unit tests R3 Bisky Yes
CRF-11 Note Author fixed (1277de5) ModelSelector.tsx:286 InfoIcon tooltip unreachable via keyboard; slider aria-label provides essential context R3 Nami Yes
CRF-12 Note Author fixed (1277de5) AgentChatPage.tsx:1479 Edit effort gate uses selectedReasoningEffort truthiness vs model override's value comparison; asymmetric but correct R3 Nami Yes
CRF-13 Nit Open reasoningEffort.test.ts:21 Test description says "highest" but CRF-8 fixed doc to say "last selectable effort" R4 Leorio Yes

Contested and acknowledged

CRF-6 (P3, reasoningEffort.ts:2) - "Xhigh" display label

  • Finding: formatReasoningEffort("xhigh") produces "Xhigh", which reads like an internal enum value while every other label is a real English word. Two reviewers suggested a display map.
  • Author defense: "Retaining Xhigh per the prior explicit product decision for this stack." Cites a product decision made in the base PR (feat: add per-turn reasoning effort selection to chat API #26975).
  • Panel closure (R4, 5/5): Mafuuu confirmed the code-documentation contract is intact. Hisoka, Pariston, Leorio, and Meruem each independently traced the consequence (cosmetic inconsistency only) and found no evidence to invalidate the defense. The confusion is bounded by slider position context (between "High" and "Max").

CRF-10 (Note, AgentCreateForm.stories.tsx:332) - No default effort story

  • Finding: No story tests submitting without moving the slider.
  • Author defense: "Default fallback is already covered by focused pickReasoningEffort unit tests, and submission wiring is covered by the form story."
  • Author accepted R4: Existing unit + form story coverage is sufficient for the default-effort submission gap.

Round log

Round 1

Netero-only. 1 P2, 1 P3. Reviewed against 7b4f4ee..fd8c08a.

Round 2

Netero-only. CRF-1, CRF-2 addressed. 1 P2 new (CRF-3). Reviewed against 7b4f4ee..76f68fe.

Round 3

Panel (19 reviewers). CRF-3 addressed. 1 P1, 2 P3, 1 P4, 2 Nit, 3 Note new. Reviewed against 63d94a3..3c16e1e.

Round 4

Panel (8 reviewers). CRF-4/5/7/8/9/11/12 addressed. CRF-6 contested, panel closed (5/5 accept product decision). CRF-10 acknowledged. 1 Nit new (CRF-13). Reviewed against 63d94a3..1277de5.

About deep-review

CRF = Coder Review Finding (P0-P4, Nit, Note)

Reviewer Focus
Bisky tests
Chopper ops/errors
Churn-guard change verification
Ging language modernization
Gon naming
Hisoka edge cases
Killua perf
Kite change integrity
Knov contracts
Knuckle SQL
Komugi flake/determinism
Kurapika security
Law decomposition
Leorio docs
Luffy product
Mafu-san process
Mafuuu contracts
Melody dispatch/pairing
Meruem structural
Nami frontend
Netero mechanical checks
Pariston premise testing
Pen-botter product gaps
Razor verification
Robin duplication
Ryosuke Go arch
Takumi concurrency
Zoro shape

🤖 Managed by Coder Agents.

@coder-agents-review coder-agents-review Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The frontend wiring and Storybook coverage are well structured. The slider component reuse, keyboard navigation stories, and pickReasoningEffort unit tests show care. Two mechanical findings from the first pass below.

This is a first-pass review only: these are mechanical findings from Netero. The full review panel has not yet reviewed this PR and will review after these findings are addressed.

1 P2, 1 P3.


coderd/x/chatd/chatd.go:2951

P3 [CRF-2] appendMessageFields no longer appends to params.ReasoningEffort, so the ReasoningEffort slice stays at length 0 while every other field slice is length 1. PostgreSQL 10+ pads mismatched UNNEST lengths with NULLs, so the insert succeeds and reasoning_effort is NULL, which is functionally correct. But the explicit insertion path at line 2830 sets ReasoningEffort: []string{""} to keep arrays aligned. The inconsistency is fragile: if any validation or middleware starts asserting array length parity, this path breaks.

Add params.ReasoningEffort = append(params.ReasoningEffort, "") to keep the arrays aligned. (Netero)

🤖

🤖 This review was automatically generated with Coder Agents.

CheckAPIKeysAllowListNotEmpty CheckConstraint = "api_keys_allow_list_not_empty" // api_keys
CheckBoundaryLogsSequenceNumberCheck CheckConstraint = "boundary_logs_sequence_number_check" // boundary_logs
CheckChatMessagesReasoningEffortCheck CheckConstraint = "chat_messages_reasoning_effort_check" // chat_messages
CheckChatModelConfigsAIProviderRequiredWhenActive CheckConstraint = "chat_model_configs_ai_provider_required_when_active" // chat_model_configs

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 [CRF-1] The up migration (000541_chat_reasoning_effort.up.sql) still creates three CHECK constraints (chats_last_reasoning_effort_check, chat_messages_reasoning_effort_check, chat_queued_messages_reasoning_effort_check), but this PR removes them from dump.sql, check_constraint.go, and the down migration's DROP CONSTRAINT lines. The generated schema and the migration are now inconsistent: running make gen regenerates dump.sql with the constraints, producing a diff. This is the likely cause of the CI gen failure.

Remove the three ALTER TABLE ... ADD CONSTRAINT blocks from the up migration, then re-run make gen. (Netero)

🤖

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved in the latest push.

CRF-1 is fixed by restoring generated CHECK constraint consistency with PR26975, not by dropping the up migration constraints. make gen restored coderd/database/dump.sql and coderd/database/check_constraint.go, and the down migration keeps the explicit DROP CONSTRAINT IF EXISTS statements.

This reply was generated with Coder Agents.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified fixed in 76f68fe.

🤖

@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from fd8c08a to 76f68fe Compare July 8, 2026 17:53

@DanielleMaywood DanielleMaywood left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved in the latest push.

CRF-2 is fixed by appending "" to ReasoningEffort in appendMessageFields, matching the explicit insertion path and keeping the UNNEST arrays aligned.

This reply was generated with Coder Agents.

@DanielleMaywood

Copy link
Copy Markdown
Contributor Author

/coder-agents-review

@coder-agents-review coder-agents-review Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CRF-1 and CRF-2 verified fixed in 76f68fe. The constraint consistency is restored and the UNNEST arrays are aligned. One new finding from this pass.

This is a first-pass review only: these are mechanical findings from Netero. The full review panel has not yet reviewed this PR and will review after these findings are addressed.

1 P2.


coderd/x/chatd/chatd_test.go:11663

P2 [CRF-3] Five backend test functions were deleted with no replacement, but the code paths they covered still exist:

  • TestEditMessageReasoningEffort: edit preserves effort by default, overrides when explicitly set
  • TestPromoteQueuedPreservesReasoningEffort: promote carries effort from queued row to chat
  • TestSendMessageQueuesReasoningEffort: queuing preserves reasoning effort
  • TestPatchChatMessage/ReasoningEffort: HTTP-level edit effort preservation/override
  • TestPatchChatMessage/RejectsInvalidReasoningEffort: invalid effort rejection on edit

EditMessage at chatd.go:1679-1691 still accepts ReasoningEffort and chatstate.EditMessageInput.ReasoningEffortOverride still threads it through. No remaining test covers edit+effort, promote+effort, or queue+effort after this PR. The frontend stories cover the UI slider but not the backend round-trip. (Netero)

🤖

🤖 This review was automatically generated with Coder Agents.

@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from 7b4f4ee to d34a520 Compare July 9, 2026 09:44
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch 2 times, most recently from ead7707 to 0b08c0a Compare July 9, 2026 10:49

Copy link
Copy Markdown
Contributor Author

Resolved in the latest push.

Backend reasoning-effort coverage is restored and shrunk:

  • folded the queue reasoning-effort assertion into the existing queue test
  • restored HTTP edit override and invalid-value tests
  • restored chatd edit and promote tests

This reply was generated with Coder Agents.

@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from d34a520 to b8c5ac8 Compare July 9, 2026 12:12
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from 0b08c0a to 6455ba5 Compare July 9, 2026 12:12
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-2-per-turn branch from b8c5ac8 to 63d94a3 Compare July 9, 2026 13:26
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from 6455ba5 to 3c16e1e Compare July 9, 2026 13:28
@DanielleMaywood

Copy link
Copy Markdown
Contributor Author

/coder-agents-review

1 similar comment
@DanielleMaywood

Copy link
Copy Markdown
Contributor Author

/coder-agents-review

@DanielleMaywood
DanielleMaywood marked this pull request as ready for review July 9, 2026 16:00
@coder-tasks

coder-tasks Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Documentation Check

Updates Needed

  • docs/ai-coder/agents/models.md - The "How developers select models" section (line 230) describes the model selector dropdown but does not mention the per-turn reasoning effort slider. Should note that when an admin configures reasoning effort bounds on a model, developers see an "Effort" slider pinned below the model list, and that the selected effort applies to the current turn.

Automated review via Coder Agents

@DanielleMaywood
DanielleMaywood requested a review from johnstcn July 9, 2026 16:04

@coder-agents-review coder-agents-review Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CRF-1, CRF-2, CRF-3 all verified fixed. The slider component is well-structured, the prop threading mirrors the established model selection pattern, and test density at 63.8% is solid with genuine assertions throughout.

One P1 that is the likely root cause of the Go CI failures, plus two P3s, one P4, two Nits, and three Notes.

1 P1, 2 P3, 1 P4, 2 Nit, 3 Note.

"The comment paraphrases six lines of self-documenting code. Delete." — Gon, on the narrating comment pattern


site/src/pages/AgentsPage/utils/reasoningEffort.ts:2

P3 [CRF-6] formatReasoningEffort("xhigh") produces "Xhigh", which reads like an internal enum value. Every other effort level renders as a real English word (None, Minimal, Low, Medium, High, Max). A simple display map with a fallback to the capitalize path fixes it:

const effortLabels: Record<string, string> = { xhigh: "Extra high" };
export const formatReasoningEffort = (value: string): string =>
  effortLabels[value] ?? value.charAt(0).toUpperCase() + value.slice(1);

The test and the EffortRow story badge assertion would need updating. If the Figma spec genuinely says "Xhigh", push back on the spec. (Leorio P3, Luffy P3)

🤖

site/src/pages/AgentsPage/utils/reasoningEffort.ts:5

Nit [CRF-8] Doc comment says "the highest effort" but the code returns efforts[efforts.length - 1], which is only "highest" if the array is sorted ascending. The server sends them sorted today, but the comment documents a semantic guarantee the function doesn't enforce. Either note the precondition ("efforts must be sorted ascending") or describe the mechanical behavior ("the last selectable effort"). (Leorio)

🤖

🤖 This review was automatically generated with Coder Agents.

Comment thread coderd/exp_chats_test.go
Comment thread coderd/x/chatd/chatd_test.go Outdated
Comment thread site/src/pages/AgentsPage/AgentChatPage.tsx Outdated
Comment thread coderd/exp_chats_test.go
},
] as const;

export const SubmitsReasoningEffort: Story = {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note [CRF-10] No story tests submitting without moving the slider (the model default should flow through). The gap is narrow: pickReasoningEffort unit tests cover the fallback from "" to default, and the existing model-only submission stories don't carry reasoning efforts. Worth noting for completeness. (Bisky)

🤖

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not changing this: default fallback is already covered by focused pickReasoningEffort unit tests, and submission wiring is covered by the form story, so another story would duplicate non-blocking coverage. This reply was generated by Coder Agents.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acknowledged. Existing coverage is sufficient.

🤖

Comment thread site/src/pages/AgentsPage/components/ChatElements/ModelSelector.tsx Outdated
Comment thread site/src/pages/AgentsPage/AgentChatPage.tsx Outdated
@DanielleMaywood
DanielleMaywood force-pushed the dm/reasoning-effort-4-selector-slider branch from 3c16e1e to 1277de5 Compare July 9, 2026 21:01

Copy link
Copy Markdown
Contributor Author

CRF-6: retaining Xhigh per the prior explicit product decision for this stack. CRF-8: updated the wording to last selectable effort. This comment was generated by Coder Agents.

@DanielleMaywood DanielleMaywood changed the title feat(site): add reasoning effort slider to the chat model selector feat: add reasoning effort slider to the chat model selector Jul 9, 2026
@DanielleMaywood

Copy link
Copy Markdown
Contributor Author

/coder-agents-review

@coder-agents-review coder-agents-review Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All prior findings verified fixed. CRF-6 ("Xhigh" label) panel vote: 5/5 accept the product decision defense — the cosmetic inconsistency is bounded by slider position context and does not affect functionality.

The iteration from R3 to R4 was thorough: the isEditReasoningEffortDirtyRef fix for CRF-12 went beyond the Note's assessment and improved the design (truthiness would break on default-value selection since "" is falsy). The InfoIcon keyboard accessibility fix added proper <button> wrapping with story coverage. Test density climbed to 67.8%.

One residual Nit below.

"I tried to build a case against this change and couldn't." — Pariston


site/src/pages/AgentsPage/utils/reasoningEffort.test.ts:21

Nit [CRF-13] Test description says "falls back to the highest server-provided effort" but CRF-8 fixed the pickReasoningEffort doc comment to say "the last selectable effort" (since the function returns efforts[efforts.length - 1] without enforcing sort order). The assertion is correct, but the description makes an ordering claim the function doesn't enforce. Consider: "falls back to the last selectable effort when value and default are out of range". (Leorio)

🤖

🤖 This review was automatically generated with Coder Agents.

@johnstcn johnstcn left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stamp

@DanielleMaywood
DanielleMaywood merged commit 54bf64c into dm/reasoning-effort-2-per-turn Jul 9, 2026
31 of 33 checks passed
@DanielleMaywood
DanielleMaywood deleted the dm/reasoning-effort-4-selector-slider branch July 9, 2026 22:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants