The caching tests were using outdated mocks for the deprecated runClaudeCode function.
Updated to mock claudeCodeOAuthManager and createStreamingMessage instead,
matching the pattern used in claude-code.spec.ts.
- Changed model ID from 'claude-sonnet-4-20250514' to 'claude-sonnet-4-5' (valid model)
- Updated supportsImages expectation from false to true (Claude Code now supports images)
- Updated maxTokens expectation from 64_000 to 32768 (actual model value)
- Renamed test to 'should return claude-code model with correct model info'
The test expectations incorrectly expected maxTokens of 16384, but the
claudeCodeModels definition specifies maxTokens of 32768 for all models.
The handler code 'model.info.maxTokens ?? 16384' correctly evaluates to
32768 since the model definition provides the value.
Updated 3 test expectations to use the correct value of 32768.
* feat: add WorkspaceTaskVisibility type and workspaceTaskVisibility property to OrganizationCloudSettings
* refactor: create workspaceTaskVisibilitySchema and derive WorkspaceTaskVisibility type from it
---------
Co-authored-by: Roo Code <roomote@roocode.com>
OpenRouter wraps upstream provider errors in a generic message but includes
the actual error in metadata.raw. This change:
- Adds OpenRouterErrorResponse interface for proper typing
- Creates handleStreamingError() helper for DRY error handling
- Extracts metadata.raw for actionable error messages in PostHog
- Includes nested error structure so getErrorMessage() can extract raw message
Before: PostHog receives '400 Provider returned error' (generic)
After: PostHog receives 'Model xyz not found' (actionable)
This enables proper error tracking and debugging via PostHog telemetry.
* feat: add error details modal with on-demand display
- Add errorDetails prop to ErrorRow component
- Show Info icon on hover in error header when errorDetails is provided
- Display detailed error message in modal dialog on Info icon click
- Add Copy to Clipboard button in error details modal
- Update generic error case to show localized message with details on demand
- Add i18n translations for error details UI
* UI Tweaks
* Properly handles error details
* i18n
* Lighter visual treatment for errors
---------
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
* Add a way to save screenshots from the browser tool
* fix: use cross-platform paths in BrowserSession screenshot tests
* fix: validate screenshot paths to prevent filesystem escape
---------
Co-authored-by: Roo Code <roomote@roocode.com>