fix: expose session-specific thinking levels#76548
Conversation
|
Codex review: needs changes before merge. Summary Reproducibility: yes. Source inspection shows current main lightweight Next step before merge Security Review findings
Review detailsBest possible solution: Expose the DeepSeek V4 thinking profile through the startup-lazy provider-policy surface or an equivalent gateway-backed contract, then verify Do we have a high-confidence way to reproduce the issue? Yes. Source inspection shows current main lightweight Is this the best way to solve the issue? No. The fallback changes are directionally useful, but relying on lightweight row hydration is incomplete until the real DeepSeek V4 profile is available to the gateway path that builds those rows. Full review comments:
Overall correctness: patch is incorrect Acceptance criteria:
What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 9772ce6ce975. |
…UI (#76482) The Control UI cannot resolve provider-specific thinking levels client-side (ui/src/ui/thinking.ts always returns base 5 levels). The gateway must provide them even in lightweight rows. listThinkingLevelOptions is a cheap in-memory lookup — negligible perf impact vs the transcript/cost/model ops that the lightweight flag still skips. Also update existing test assertions that expected thinkingOptions: [] for lightweight rows (flagged by ClawSweeper review).
|
E2E validation found the gateway change is needed — the Control UI cannot resolve provider-specific thinking levels client-side ( Changes since initial review:
183 tests pass across 7 files. |
* fix: expose session-specific thinking levels (openclaw#76482) * fix: preserve lightweight sessions.list contract, fix consumer-side fallbacks only * fix: include thinking levels in lightweight session rows for Control UI (openclaw#76482) The Control UI cannot resolve provider-specific thinking levels client-side (ui/src/ui/thinking.ts always returns base 5 levels). The gateway must provide them even in lightweight rows. listThinkingLevelOptions is a cheap in-memory lookup — negligible perf impact vs the transcript/cost/model ops that the lightweight flag still skips. Also update existing test assertions that expected thinkingOptions: [] for lightweight rows (flagged by ClawSweeper review). * test: add e2e regression tests for thinking level pipeline (openclaw#76482)
* fix: expose session-specific thinking levels (openclaw#76482) * fix: preserve lightweight sessions.list contract, fix consumer-side fallbacks only * fix: include thinking levels in lightweight session rows for Control UI (openclaw#76482) The Control UI cannot resolve provider-specific thinking levels client-side (ui/src/ui/thinking.ts always returns base 5 levels). The gateway must provide them even in lightweight rows. listThinkingLevelOptions is a cheap in-memory lookup — negligible perf impact vs the transcript/cost/model ops that the lightweight flag still skips. Also update existing test assertions that expected thinkingOptions: [] for lightweight rows (flagged by ClawSweeper review). * test: add e2e regression tests for thinking level pipeline (openclaw#76482)
* fix: expose session-specific thinking levels (openclaw#76482) * fix: preserve lightweight sessions.list contract, fix consumer-side fallbacks only * fix: include thinking levels in lightweight session rows for Control UI (openclaw#76482) The Control UI cannot resolve provider-specific thinking levels client-side (ui/src/ui/thinking.ts always returns base 5 levels). The gateway must provide them even in lightweight rows. listThinkingLevelOptions is a cheap in-memory lookup — negligible perf impact vs the transcript/cost/model ops that the lightweight flag still skips. Also update existing test assertions that expected thinkingOptions: [] for lightweight rows (flagged by ClawSweeper review). * test: add e2e regression tests for thinking level pipeline (openclaw#76482)
* fix: expose session-specific thinking levels (openclaw#76482) * fix: preserve lightweight sessions.list contract, fix consumer-side fallbacks only * fix: include thinking levels in lightweight session rows for Control UI (openclaw#76482) The Control UI cannot resolve provider-specific thinking levels client-side (ui/src/ui/thinking.ts always returns base 5 levels). The gateway must provide them even in lightweight rows. listThinkingLevelOptions is a cheap in-memory lookup — negligible perf impact vs the transcript/cost/model ops that the lightweight flag still skips. Also update existing test assertions that expected thinkingOptions: [] for lightweight rows (flagged by ClawSweeper review). * test: add e2e regression tests for thinking level pipeline (openclaw#76482)
* fix: expose session-specific thinking levels (openclaw#76482) * fix: preserve lightweight sessions.list contract, fix consumer-side fallbacks only * fix: include thinking levels in lightweight session rows for Control UI (openclaw#76482) The Control UI cannot resolve provider-specific thinking levels client-side (ui/src/ui/thinking.ts always returns base 5 levels). The gateway must provide them even in lightweight rows. listThinkingLevelOptions is a cheap in-memory lookup — negligible perf impact vs the transcript/cost/model ops that the lightweight flag still skips. Also update existing test assertions that expected thinkingOptions: [] for lightweight rows (flagged by ClawSweeper review). * test: add e2e regression tests for thinking level pipeline (openclaw#76482)
Fixes #76482
Summary
DeepSeek V4 Pro exposes seven thinking levels, but session list rows and UI/TUI fallback behavior could collapse
/thinkchoices to the default model's smaller level set or to an empty list.This PR:
/thinkautocomplete fallback for empty arraysTests
Reported by the local fanout worker:
src/gateway/server.sessions.list-changed.test.ts— passsrc/tui/commands.test.ts— passui/src/ui/chat/slash-command-executor.node.test.ts— passextensions/deepseek/index.test.ts— passsrc/auto-reply/thinking.test.ts— passoxfmtformatting check — passLocal orchestration report
A local, uncommitted fanout report exists at:
/Users/aknight/Development/worktrees/openclaw-issues/_runs/20260503T072204Z/reports/issue-76482.md