feat(mobile): add persisted Hide thinking details setting - #6103
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryFull re-review after the branch was force-pushed (the previous review SHA Files Reviewed (108 files)
Previous Review Summaries (3 snapshots, latest commit 3648be5)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 3648be5)Status: No Issues Found | Recommendation: Merge Executive SummaryThe incremental commit on top of Files Reviewed (3 files)
Previous review (commit 29d1f99)Status: 1 Issue Found | Recommendation: Address before merge Executive SummaryThe three previously flagged issues (in-transcript task-card status, empty padded sheet row, cold-start paint) are fixed in this revision; one new gap remains where a running subagent card can still read "Writing response" while its reasoning streams behind opencode's empty text placeholder. Overview
Issue Details (click to expand)WARNING
Files Reviewed (10 files)
Fix these issues in Kilo Cloud Previous review (commit b8b4403)Status: 3 Issues Found | Recommendation: Address before merge Executive SummaryHiding thinking details strips reasoning from the main-transcript subagent card as well as the rows, so a running task card's activity and accessibility label silently leave "Thinking"; two minor consistency and initial-load gaps remain. Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (102 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
b8b4403 to
351fe1e
Compare
351fe1e to
2be00c1
Compare
2be00c1 to
29d1f99
Compare
29d1f99 to
3648be5
Compare
3648be5 to
741c27d
Compare
Changelog for users
Changelog for maintainers
apps/mobile/src/components/agents/child-session-card-state.ts:103— accepted: the running card read the raw last assistant part, so a streamed reasoning part behind opencode's pre-created empty text part surfaced as "Writing response"; the card now reuseslastActivePartto pick the part that carries activity, and a pending task with no child session still reads "Waiting for activity".apps/mobile/src/components/agents/session-detail-content.tsx:1078— accepted: feeding the stripped child list to the in-transcript task card made a running subagent show a stale activity or "Waiting for activity"; the card now reads the raw transcript.apps/mobile/src/components/agents/session-detail-content.tsx:1494— accepted: a reasoning-only child message left a padded empty row; the sheet now drops messages with no renderable part.apps/mobile/src/components/agents/session-detail-content.tsx:315— accepted:hasLoadedwas ignored, so thinking could paint before the preference resolved; the page now hides reasoning until the preference loads.agent-hide-thinking-details; only the stored string'true'enables it, and sign-out clears it.withoutReasoningPartsstrips reasoning parts while keeping message and array identity when nothing changes; the session page builds a visibility-onlydisplayedMessageslist from the rawvisibleMessagesfor the transcript, the details lookup, and subagent rows.ChildSessionSheetgains an optionalgetIndicatorMessages(defaults togetChildMessages).computeMessageStatusskips opencode's empty pre-created text part, so the spinner reads "Thinking" during reasoning and then "Writing response".preferences.hideThinking*keys to the English and translated catalogs; tests cover the preference parse/store/clear, reasoning stripping, hide/show on the session page, the empty padded row, the running-card label behind the empty placeholder, the spinner label, and the cold-start path. Review focus: spinner-label parity in both modes, no empty padded row for reasoning-only messages, and the cold-start paint.E2E proof
Seven Android captures are retained from the earlier proof, which replaced the unrecorded claims and the superseded option-on streaming captures: option-on streaming is proven by [p1] and the e2 recording, [p3] the subagent sheet, [e5] the cold start with the option on, [p2] persistence, and [p7]/[p5] layout stability. The running-subagent card is now proven by the new [e1] log evidence, which replaces the earlier static running-card claim: with the child transcript loaded the parent card reads "Thinking", then flips to "Writing response" once the pre-created text part gains content. Limitations: the running-subagent state came from a temporary fixture, because no fake-LLM directive or seed recipe exists for a running subagent, so it is not a re-timed live reasoning token stream; the e2 recording's mid-reasoning spinner label was not captured in a digest (p1 records "Thinking · 4 sec"); recording waits are trimmed.
https://github.com/user-attachments/assets/8944e45f-4847-4cce-bf3a-1e3824427a61
p1-stream.mp4.trim.mp4
Owner request