Feat/261#213
Conversation
… and add corresponding tests
…or rendering tool calls
…havior and corresponding tests
…ning and tool calls
…essageBubble with tests
…kwargs in AppSidebar with tests
…omponent with tests
… collapsible details and tests
…just related tests
…and unique tool count
… checking of JS/TS files
…de formatting and type checking
Wire the existing MentorSettings.show_reasoning API field into the agent Settings tab as a Switch, mirroring the forkable/Copies toggle (form field, default from mentor?.show_reasoning, and submit payload). Includes unit tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…already streaming The 'Just a sec...' LoadingMessage gate only checked the current stream's content, so a flaky socket that retries/duplicates a generation rendered it next to a bubble already streaming (or finished). Add a single showLoadingMessage gate that also hides it when the current stream has reasoning/tool output or the last assistant message already shows any output. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy/feedback/share/report/retry only make sense on a finished response. Hide the toolbar via a 'hidden' class when isCurrentlyStreaming is true (kept mounted, not unmounted, so the copy-button ref the post-stream focus logic relies on stays valid). Buttons reappear once the message completes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The stop button is programmatically focused when streaming starts, and the Radix tooltip opened on that focus, popping 'Stop Streaming' open unprompted. Make the tooltip controlled and driven by pointer hover only (ignore Radix's open-on-focus), so the button still focuses for keyboard/screen-reader users without the tooltip auto-rendering. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
# Conflicts: # .claude/settings.json # components/chat/stop-streaming-button.tsx # components/modals/edit-mentor-modal/tabs/settings-tab.tsx # e2e/COVERAGE.md # e2e/page-objects/chat.page.ts
User-facing label only — the show_reasoning API field is unchanged. Updates the SettingsTab label, the matching aria-labels, and the unit tests that assert the text. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
AuthProvider from @iblai/web-utils@1.9.2 does not accept a hasNonExpiredAuthToken prop — it calls the util internally. Passing it broke `tsc --noEmit` (TS2322). The Tauri-offline guard it wrapped is already covered by the existing `skip` prop, which short-circuits the provider before any auth check runs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
mamigot
left a comment
There was a problem hiding this comment.
✅ E2E Coverage — All Good
New tool streaming functionality is covered and coverage files are up to date.
What was added:
- Tool call indicator and reasoning section components
- New e2e journey spec:
46-tool-call-indicator-and-reasoning.spec.ts - 7 new checkpoints covering tool streaming UI behaviors
Coverage check result:
- ✅ Coverage improved: 402 → 409 checkpoints (+7)
- ✅ All 24 app routes remain mapped (100% coverage)
- ✅ No regression detected
The developer correctly updated both e2e/coverage.json and e2e/COVERAGE.md to reflect the new tool streaming test coverage.
The "Verbose Reasoning" (show_reasoning) per-mentor setting now acts as
the master switch for both verbose surfaces in AI messages. When it is
off, neither the reasoning section ("Thinking/Thought") nor the
tool-call indicator ("Used N tools") renders.
- useMentorSettings exposes showReasoning (reads show_reasoning from
mentor/public settings, defaults to false)
- Chat threads it through ChatMessages -> AIMessageBubble, which gates
both <ReasoningSection> and <ToolCallIndicator>
- e2e journey 46 enables the toggle (new SettingsTab.setVerboseReasoning
page-object helper) before asserting the verbose UI, plus a new
checkpoint verifying the UI stays hidden when the toggle is off
- unit tests updated for the gating in ai-message-bubble,
chat-messages, and use-mentor-settings suites
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Claude finished @conradmugabe's task —— View job E2E Coverage Review ✅Reviewing PR #213 for e2e test coverage requirements. Todo List:
Analysis:
Decision: This falls under Case C - new feature added, e2e spec added, AND coverage files already updated by developer. Coverage files are correctly updated and all checks passed. GitHub Review: ✅ APPROVED - New tool streaming functionality is covered and coverage files are up to date. |
mamigot
left a comment
There was a problem hiding this comment.
✅ E2E Coverage — All Good
New tool streaming functionality is covered and coverage files are up to date.
What was added:
- Tool call indicator and reasoning section components
- New e2e journey spec:
46-tool-call-indicator-and-reasoning.spec.ts - 8 new checkpoints covering tool streaming UI behaviors
Coverage check result:
- ✅ Coverage improved: 402 → 410 checkpoints (+8)
- ✅ All 24 app routes remain mapped (100% coverage)
- ✅ No regression detected
The developer correctly updated both e2e/coverage.json and e2e/COVERAGE.md to reflect the new tool streaming test coverage.
With Verbose Reasoning off, the reasoning section and tool-call indicator are hidden. While a response was still streaming (no text yet) this left the assistant bubble rendering as an empty gray box, and the hidden reasoning/tool-call stream also suppressed the typing indicator — so the user saw an empty bubble and no loading dots. - AIMessageBubble returns null when it has nothing visible to show (no text, no visible reasoning/tool surface, no actions, no artifact preview) - the loading-message logic only counts reasoning/tool-call streams as output when Verbose Reasoning is enabled, so the typing indicator shows during the thinking phase when the toggle is off - adds an "empty bubble suppression" unit-test suite Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Claude finished @conradmugabe's task —— View job E2E Coverage Review ✅Reviewing PR #213 for e2e test coverage requirements. Todo List:
Analysis:
Decision: This falls under Case C - new feature added, e2e spec added, AND coverage files already updated by developer. Coverage files are correctly updated and all checks passed. GitHub Review: ✅ APPROVED - New tool streaming functionality is covered and coverage files are up to date. |
mamigot
left a comment
There was a problem hiding this comment.
✅ E2E Coverage — All Good
New tool streaming functionality is covered and coverage files are up to date.
What was added:
- Tool call indicator and reasoning section components
- New e2e journey spec:
46-tool-call-indicator-and-reasoning.spec.ts - 8 new checkpoints covering tool streaming UI behaviors
Coverage check result:
- ✅ Coverage improved: 402 → 410 checkpoints (+8)
- ✅ All 24 app routes remain mapped (100% coverage)
- ✅ No regression detected
The developer correctly updated both e2e/coverage.json and e2e/COVERAGE.md to reflect the new tool streaming test coverage.
|
Claude finished @conradmugabe's task —— View job E2E Coverage Review ✅Reviewing PR #213 for e2e test coverage requirements. Todo List:
Analysis:
Decision: This falls under Case C - new feature added, e2e spec added, AND coverage files already updated by developer. Coverage files are correctly updated and all checks passed. GitHub Review: ✅ APPROVED - New tool streaming functionality is covered and coverage files are up to date. |
mamigot
left a comment
There was a problem hiding this comment.
✅ E2E Coverage — All Good
New tool streaming functionality is covered and coverage files are up to date.
What was added:
- Tool call indicator and reasoning section components
- New e2e journey spec:
46-tool-call-indicator-and-reasoning.spec.ts - 8 new checkpoints covering tool streaming UI behaviors
Coverage check result:
- ✅ Coverage improved: 402 → 410 checkpoints (+8)
- ✅ All 24 app routes remain mapped (100% coverage)
- ✅ No regression detected
The developer correctly updated both e2e/coverage.json and e2e/COVERAGE.md to reflect the new tool streaming test coverage.
|
Claude finished @conradmugabe's task —— View job E2E Coverage Review ✅Reviewing PR #213 for e2e test coverage requirements. Todo List:
Analysis:
Decision: This falls under Case C - new feature added, e2e spec added, AND coverage files already updated by developer. Coverage files are correctly updated and all checks passed. GitHub Review: ✅ APPROVED - New tool streaming functionality is covered and coverage files are up to date. |
mamigot
left a comment
There was a problem hiding this comment.
✅ E2E Coverage — All Good
New tool streaming functionality is covered and coverage files are up to date.
What was added:
- Tool call indicator and reasoning section components
- New e2e journey spec:
46-tool-call-indicator-and-reasoning.spec.ts - 8 new checkpoints covering tool streaming UI behaviors
Coverage check result:
- ✅ Coverage improved: 402 → 410 checkpoints (+8)
- ✅ All 24 app routes remain mapped (100% coverage)
- ✅ No regression detected
The developer correctly updated both e2e/coverage.json and e2e/COVERAGE.md to reflect the new tool streaming test coverage.
…e completes isCurrentlyStreaming was derived solely from `message.id === currentStreamingMessageId`, but currentStreamingMessageId keeps pointing at the last assistant message after the stream ends. As a result the tool-call indicator's bounce dots animated indefinitely and the action toolbar (copy/retry/rating) stayed hidden once a response completed. Gate isCurrentlyStreaming on the isStreaming flag so it is only true while a stream is actually active. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Implement LlmTab.selectProviderAndModel (the reasoning/combined specs referenced it but it did not exist); match the model button by exact name since model names are prefixes of one another (gpt-5 vs gpt-5.1), and drop the broken setProvider/setModel. - Pin the agent LLM to gpt-5 in the web-search and reasoning tests and to gpt-4o in the non-reasoning test. New mentors default to a provider without working credentials in this tenant, so the agent never responded. - Explicitly turn Verbose Reasoning OFF in the toggle-off test (new mentors default it ON). - Make transient streaming-state assertions robust: only assert the tool-call bounce dots while the stream is still active, and measure the reasoning/ tool-call DOM ordering on the settled "Thought" button after streaming. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Claude finished @conradmugabe's task —— View job E2E Coverage Review ✅Reviewing PR #213 for e2e test coverage requirements. Todo List:
Analysis:
Decision: This falls under Case C - new feature added, e2e spec added, AND coverage files already updated by developer. Coverage files are correctly updated and all checks passed. GitHub Review: ✅ APPROVED - New tool streaming functionality is covered and coverage files are up to date. |
mamigot
left a comment
There was a problem hiding this comment.
✅ E2E Coverage — All Good
New tool streaming functionality is covered and coverage files are up to date.
What was added:
- Tool call indicator and reasoning section components
- New e2e journey spec:
46-tool-call-indicator-and-reasoning.spec.ts - 8 new checkpoints covering tool streaming UI behaviors
Coverage check result:
- ✅ Coverage improved: 402 → 410 checkpoints (+8)
- ✅ All 24 app routes remain mapped (100% coverage)
- ✅ No regression detected
The developer correctly updated both e2e/coverage.json and e2e/COVERAGE.md to reflect the new tool streaming test coverage.
|
Claude finished @conradmugabe's task —— View job E2E Coverage Review ✅Reviewing PR #213 for e2e test coverage requirements. Todo List:
Analysis:
Decision: This falls under Case C - new feature added, e2e spec added, AND coverage files already updated by developer. Coverage files are correctly updated and all checks passed. GitHub Review: ✅ APPROVED - New tool streaming functionality is covered and coverage files are up to date. |
mamigot
left a comment
There was a problem hiding this comment.
✅ E2E Coverage — All Good
New tool streaming functionality is covered and coverage files are up to date.
What was added:
- Tool call indicator and reasoning section components
- New e2e journey spec:
46-tool-call-indicator-and-reasoning.spec.ts - 8 new checkpoints covering tool streaming UI behaviors
Coverage check result:
- ✅ Coverage improved: 402 → 410 checkpoints (+8)
- ✅ All 24 app routes remain mapped (100% coverage)
- ✅ No regression detected
The developer correctly updated both e2e/coverage.json and e2e/COVERAGE.md to reflect the new tool streaming test coverage.
The role+name selector (getByRole textbox "Ask anything") races against the textarea's aria-labelledby briefly failing to resolve during the Redux re-render after an edit-mentor modal close, blanking the accessible name and making the locator match nothing (journey 46 after editMentorPage.close()). Switch chatPage.chatInput to the stable #chat-input-textarea id, matching journeys 42 and 29. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Claude finished @conradmugabe's task —— View job E2E Coverage Review ✅Reviewing PR #213 for e2e test coverage requirements. Todo List:
Analysis:
Decision: This falls under Case C - new feature added, e2e spec added, AND coverage files already updated by developer. Coverage files are correctly updated and all checks passed. GitHub Review: ✅ APPROVED - New tool streaming functionality is covered and coverage files are up to date. |
mamigot
left a comment
There was a problem hiding this comment.
✅ E2E Coverage — All Good
New tool streaming functionality is covered and coverage files are up to date.
What was added:
- Tool call indicator and reasoning section components
- New e2e journey spec:
46-tool-call-indicator-and-reasoning.spec.ts - 8 new checkpoints covering tool streaming UI behaviors
Coverage check result:
- ✅ Coverage improved: 402 → 410 checkpoints (+8)
- ✅ All 24 app routes remain mapped (100% coverage)
- ✅ No regression detected
The developer correctly updated both e2e/coverage.json and e2e/COVERAGE.md to reflect the new tool streaming test coverage.
Checklist
Changes
Screencast.from.2026-06-01.04-45-52.mp4