Skip to content

Conversation

@roomote
Copy link
Contributor

@roomote roomote bot commented Jan 15, 2026

Improves the error details popup by adding a "Send details to Roo Code support" button that appears only when users are logged into Roo Code Cloud.

Changes

  • Added new "Send details to Roo Code support" button in the error details dialog (conditional on authentication state)
  • Implemented authenticated API call to {baseCloudURL}/api/contact/issue endpoint
  • Sends error diagnostics as JSON file attachment via multipart/form-data
  • Added success feedback with check mark icon after sending
  • Updated tests to verify button appears only when authenticated
  • Added i18n translations for new button labels

Technical Details

  • Button uses the Send lucide icon
  • Sends same diagnostic data as "Get detailed error info" button
  • Uses CloudService session token for authentication
  • Positioned above the "Get detailed error info" button in the dialog footer

Testing

  • All existing tests pass
  • New tests verify:
    • Button is hidden when user is not authenticated
    • Button is shown when user is authenticated
    • Correct message is sent with proper metadata

Closes ROO-538


View task on Roo Code Cloud


Important

Adds a feature to send error details to support for authenticated users, with UI updates, API integration, and tests.

  • Behavior:
    • Adds "Send details to Roo Code support" button in ErrorRow.tsx for authenticated users.
    • Implements API call to {baseCloudURL}/api/contact/issue in webviewMessageHandler.ts.
    • Sends error diagnostics as JSON via multipart/form-data.
    • Provides success feedback with a check mark icon.
  • Testing:
    • Tests in ErrorRow.spec.tsx ensure button visibility based on authentication and correct message sending.
  • Misc:
    • Adds i18n translations for new button labels in chat.json.
    • Updates WebviewMessage type in vscode-extension-host.ts to include sendErrorToSupport.

This description was created by Ellipsis for 4fc418c. You can customize this summary. It will automatically update as commits are pushed.

@roomote
Copy link
Contributor Author

roomote bot commented Jan 15, 2026

Rooviewer Clock   See task on Roo Cloud

Review complete. Found 1 issue in the test file related to test isolation.

  • Test isolation: mockExtensionState is mutated across tests without being reset, which can cause flaky tests if execution order changes

Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues.

expect(typeof payload.values.timestamp).toBe("string")
})

it("does not show send to support button when user is not authenticated", () => {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The mockExtensionState object is shared and mutated across tests without being reset between runs. If vitest runs tests in a different order, the state from one test can leak into another, causing flaky behavior. Consider adding a beforeEach block to reset the mock state, or use a factory function that returns a fresh object for each test:

const createMockExtensionState = (overrides = {}) => ({
  version: "1.0.0",
  apiConfiguration: {},
  cloudIsAuthenticated: false,
  cloudApiUrl: "https://app.roocode.com",
  ...overrides,
});

Fix it with Roo Code or mention @roomote and request a fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

2 participants