Skip to content

Comments

feat: add multi agent#160

Open
TartanLeGrand wants to merge 7 commits intortk-ai:masterfrom
TartanLeGrand:master
Open

feat: add multi agent#160
TartanLeGrand wants to merge 7 commits intortk-ai:masterfrom
TartanLeGrand:master

Conversation

@TartanLeGrand
Copy link

This pull request introduces infrastructure for supporting multiple AI coding assistant platforms in RTK, allowing users to select between Claude (default), Gemini, Cursor, and Windsurf via configuration. While only Claude is fully integrated at this stage, the groundwork is laid for future support of the other platforms. The changes span configuration, provider abstraction, documentation, and testing.

Multi-platform AI assistant support:

  • Added a new AIPlatform enum and PlatformConfig struct to src/config.rs to represent and configure the selected AI platform; updated the main Config struct and implemented defaulting to Claude. [1] [2]
  • Created new provider structs and implemented the SessionProvider trait for Gemini, Cursor, and Windsurf in src/discover/provider.rs, including helpful error messages for unimplemented platforms. [1] [2]
  • Updated the discover module to dynamically select the provider based on configuration, so the discover command respects the chosen AI platform. [1] [2] [3]

Configuration and documentation:

  • Added a [platform] section to config.toml.example and documented the new configuration in README.md, including platform selection and current implementation status. [1] [2]
  • Updated CLAUDE.md to note multi-platform support and reference the new configuration.

Testing and validation:

  • Added tests in src/config.rs to verify default platform selection, serialization/deserialization, and support for all platform enum values.

Release notes:

  • Documented the new feature in CHANGELOG.md under the "Unreleased" section.

Copilot AI and others added 7 commits February 17, 2026 07:06
- Add AIPlatform enum with Claude, Gemini, Cursor, Windsurf variants
- Add PlatformConfig to main Config struct
- Implement SessionProvider for GeminiProvider, CursorProvider, WindsurfProvider
- Update discover module to use configured AI platform
- Providers return helpful error messages guiding users to configure Claude

Co-authored-by: TartanLeGrand <56931733+TartanLeGrand@users.noreply.github.com>
- Update README.md with AI Platform Configuration section
- Update CLAUDE.md to mention multi-platform support
- Add config.toml.example with platform configuration examples
- Add comprehensive tests for platform config (serialization, deserialization)
- Format code with cargo fmt
- All 364 tests passing

Co-authored-by: TartanLeGrand <56931733+TartanLeGrand@users.noreply.github.com>
- Document new platform configuration in Unreleased section
- List all platform-related features and changes
- Maintain changelog format consistency

Co-authored-by: TartanLeGrand <56931733+TartanLeGrand@users.noreply.github.com>
- Add encode_project_path() method to SessionProvider trait
- Implement encode_project_path() for all providers (Claude, Gemini, Cursor, Windsurf)
- Update discover module to use provider's encode method instead of hardcoded ClaudeProvider
- Fix comment spacing consistency in config.toml.example
- All 364 tests still passing

Co-authored-by: TartanLeGrand <56931733+TartanLeGrand@users.noreply.github.com>
- Add detailed comments explaining path encoding behavior for non-Claude providers
- Replace unwrap_or_default() with unwrap_or_else() that logs config errors in verbose mode
- Users now get warning when config file has errors instead of silent fallback
- Clarify that raw path is intentional for placeholder implementations
- All 364 tests passing

Co-authored-by: TartanLeGrand <56931733+TartanLeGrand@users.noreply.github.com>
Add multi-platform AI assistant support (Gemini, Cursor, Windsurf)
@pszymkowiak
Copy link
Collaborator

Thanks for the contribution Ugo. The multi-platform direction is interesting, but this PR adds infrastructure without any actual implementation — all three new providers (Gemini, Cursor,
Windsurf) just return bail!("not yet implemented").

We prefer not to merge dead code. When we add a new platform, the enum + provider + config should come together with the actual session discovery implementation, not as empty shells.

If you're interested in actually implementing one of these providers (e.g., Gemini — knowing where it stores sessions, how to parse them), that would be a great PR. But the scaffolding
alone isn't mergeable.

The config.toml.example is useful though — feel free to open a smaller PR for just that file.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants