During config loading in core, if any non-YAML files are in .continue/agents
or .continue/assistants directories, it tries to load them as configs. This
change filters out .md files by explicitly setting fileExtType to 'yaml' when
loading agent and assistant config profiles.
The getAllDotContinueDefinitionFiles function already supports filtering by
file extension type, but it wasn't being used in ConfigHandler. This ensures
only .yaml and .yml files are loaded as config profiles, preventing errors
when markdown documentation files exist in the agents/assistants directories.
Co-authored-by: dallin <dallin@continue.dev>
Generated with [Continue](https://continue.dev)
Co-Authored-By: Continue <noreply@continue.dev>
This commit refactors how IdeSettings and ControlPlaneClient are accessed throughout
the configuration system to improve state management and reduce coupling.
Previously, ideSettingsPromise was passed down from the top-level ConfigHandler
through various profile loaders and clients. This created a rigid dependency chain
and required manual promise replacement when settings were updated. Similarly,
downstream components could hold onto stale instances of ControlPlaneClient after a
change in authentication state.
The key changes are:
- Removed ideSettingsPromise prop drilling: Components that require IDE settings
now fetch them directly from the IDE object (ide.getIdeSettings()) when
needed.
- Updated globalLocalProfileManager during every cascadeInit: This ensures it
always holds the most recent ControlPlaneClient, preventing issues with stale
client objects after re-authentication.
- Simplified constructors: The constructors for ConfigHandler, ControlPlaneClient,
and various loaders have been simplified to reflect these changes, primarily by
passing the IDE object directly instead of its derived promises.
* feat: add sentry to core
* feat: implement comprehensive Sentry error tracking with privacy-first anonymization
- Add Sentry ErrorBoundary components following React best practices
- Implement shared anonymization logic between core and GUI environments
- Create organized sentry directory structure with clean exports
- Add Continue team member access control (@continue.dev email check)
- Preserve node_modules package names for debugging while anonymizing user paths
- Include comprehensive test coverage for all anonymization scenarios
- Set up source maps for readable production error stack traces
- Add browser-compatible hashing without crypto module dependency
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: complete Sentry integration with GUI components and tests
- Add GUI TelemetryProviders with Sentry ErrorBoundary
- Create shared isContinueTeamMember utilities for both core and GUI
- Update all imports and dependencies for new sentry structure
- Add comprehensive test coverage and fix all TypeScript issues
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* prettier
* fix: resolve GUI build errors by removing sentry index.ts and using specific imports
- Remove problematic index.ts that was pulling Node.js-specific Sentry code into browser bundle
- Update GUI to import specifically from anonymization.ts and constants.ts files
- Update core imports to use specific SentryLogger.ts import path
- GUI build now succeeds with proper source map upload to Sentry
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: move TelemetryProviders inside AuthProvider to fix test failures
- Move TelemetryProviders from main.tsx to Layout.tsx inside AuthProvider
- Fixes "useAuth must be used within an AuthProvider" error in tests
- TelemetryProviders now has access to auth context for Continue team member check
- GUI build and functionality remain working correctly
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* prettier
* merge main
* Update package.json
* fix tests
* fix errors
* Update extension.ts
* disable sentry in tests/local dev
* add additional error handling
* Update SentryLogger.ts
* remove global try/catch
* remove test code
* linting
* Update SentryLogger.ts
* more logs
* Update core.ts
* lower sampling rate
* fix tests
* feat: use `Logger`
* Update logger.ts
* Update logger.ts
Co-Authored-By: Claude <noreply@anthropic.com>
* lint fixes
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: rename logger.ts to Logger.ts for case sensitivity
This fixes TypeScript compilation errors in CI where the file
was tracked as lowercase logger.ts but referenced as Logger.ts
in imports.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* address ting-wai's feedback
* Update core.ts
---------
Co-authored-by: Claude <noreply@anthropic.com>
- Import Telemetry from util/posthog.js in ConfigHandler
- Track start and end time of reloadConfig method using performance.now()
- Send "config_reload" telemetry event with duration, reason, totalConfigLoads, and configLoadInterrupted
- Helps track config loading performance bottlenecks and understand reload patterns
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Instead of treating LLM logging as simply writing lines of text
sequentially, emit a stream of typed data objects that include
rich information about the interaction, such as timestamps,
message types, tool calls, etc.
These are then collected by a new custom webview in the vscode
extension (the "Continue Console"), allowing a user or developer
to browse through the different interactions and view them in detail.
In progress interactions are now streamed live, instead of being held back
to avoid concurrency issues.
This webview could be also exposed for IntelliJ or file logging
could be reimplemented on top of the new framework.