Description
The extension has no error reporting or telemetry. When the CLI fails, diagnostics fail, or unexpected errors occur, there is no way to understand what went wrong without asking the user to check the developer console.
Current State
- Errors are logged to
console.error (invisible to most users)
- The output channel (
client.ts) is only used for binary checks
- No crash reporting
- No usage analytics
Expected Behavior
Error Reporting
- Route all errors through a centralized error handler that:
- Logs to the output channel with timestamps
- Shows user-friendly notifications for actionable errors
- Optionally sends anonymized error reports (opt-in)
Output Channel Improvements
- Use
client.ts for all diagnostic-related logging
- Log each scan start/end/duration
- Log CLI invocation commands (without arguments that might contain sensitive paths)
- Add log level filtering (error/warn/info/debug)
Telemetry (Optional)
- Integrate with VS Code's
TelemetryLogger API for basic usage stats
- Track: scan count, findings per scan, common rule IDs triggered
- Make telemetry opt-in through VS Code's global telemetry setting
Implementation Notes
- VS Code 1.69+ provides
TelemetryLogger via vscode.env — use this if available
- The output channel class in
client.ts should be the single logging entry point
- Add a
sorobanGuard.logLevel setting to control verbosity
- Do NOT log file contents or project names in telemetry
Acceptance Criteria
Complexity
Medium — requires centralized error handling, output channel integration, and optional telemetry API usage.
Points
150
Description
The extension has no error reporting or telemetry. When the CLI fails, diagnostics fail, or unexpected errors occur, there is no way to understand what went wrong without asking the user to check the developer console.
Current State
console.error(invisible to most users)client.ts) is only used for binary checksExpected Behavior
Error Reporting
Output Channel Improvements
client.tsfor all diagnostic-related loggingTelemetry (Optional)
TelemetryLoggerAPI for basic usage statsImplementation Notes
TelemetryLoggerviavscode.env— use this if availableclient.tsshould be the single logging entry pointsorobanGuard.logLevelsetting to control verbosityAcceptance Criteria
Complexity
Medium — requires centralized error handling, output channel integration, and optional telemetry API usage.
Points
150