Skip to content

Conversation

@hannesrudolph
Copy link
Collaborator

@hannesrudolph hannesrudolph commented Dec 8, 2025

Summary

image image image image image

Adds support for slash commands as a new marketplace item type, allowing users to browse, install, and manage custom slash commands from the marketplace.

Changes

  • Types: Added command type to marketplaceItemTypeSchema enum with new commandMarketplaceItemSchema (content + optional argumentHint)
  • MarketplaceManager: Added detection of installed commands in .roo/commands directory (both project and global scopes)
  • RemoteConfigLoader: Added fetchCommands() method to load commands from the marketplace API
  • SimpleInstaller: Added installCommand() and removeCommand() methods for slash command installation/removal
  • UI Components:
    • Added "Slash Commands" tab to marketplace view with 3-tab navigation (MCP, Slash Commands, Modes)
    • Updated install modal with command-specific titles and success messages
    • Updated item card with command type label and remove confirmation dialog
    • Added command-specific search placeholder
  • Tests: Comprehensive test coverage for new command functionality in RemoteConfigLoader, SimpleInstaller, and MarketplaceViewStateManager
  • i18n: Added translations for all 18 supported locales

Important

Adds support for slash commands in the marketplace, including backend logic, UI updates, and internationalization.

  • Behavior:
    • Adds command type to marketplaceItemTypeSchema in marketplace.ts.
    • Updates MarketplaceManager to detect installed commands in .roo/commands.
    • Adds fetchCommands() to RemoteConfigLoader to load commands from API.
    • Adds installCommand() and removeCommand() to SimpleInstaller for command management.
  • UI Components:
    • Adds "Slash Commands" tab in MarketplaceView.tsx.
    • Updates MarketplaceListView.tsx to support command filtering.
    • Updates MarketplaceInstallModal.tsx and MarketplaceItemCard.tsx for command-specific UI.
  • Tests:
    • Adds tests for command functionality in RemoteConfigLoader.spec.ts and SimpleInstaller.spec.ts.
  • i18n:
    • Adds translations for slash commands in all supported locales.

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

- Add 'command' type to marketplace item schema with content and argumentHint
- Implement command detection in MarketplaceManager for project and global directories
- Add fetchCommands() to RemoteConfigLoader for API integration
- Add installCommand() and removeCommand() to SimpleInstaller
- Add 'Slash Commands' tab to marketplace UI with 3-tab navigation
- Update install modal and item card components for command type
- Add translations for all 18 locales
- Include comprehensive test coverage for new functionality
@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. Enhancement New feature or request labels Dec 8, 2025
@roomote
Copy link
Contributor

roomote bot commented Dec 8, 2025

Oroocle Clock   See task on Roo Cloud

Completed review for the latest i18n consistency fixes for slash command marketplace strings. All previously flagged issues remain resolved and no new issues were identified.

Previous reviews \n> - 774c095: [Review #1](https://app.roocode.com/cloud-jobs/VPKVSvKO?utm_source=cloud-job-url&utm_medium=link&utm_campaign=previous-reviews) - 2527023: [Review #2](https://app.roocode.com/cloud-jobs/zWeRrBP7?utm_source=cloud-job-url&utm_medium=link&utm_campaign=previous-reviews)

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

@hannesrudolph hannesrudolph added the Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. label Dec 8, 2025
- MarketplaceManager: Use getGlobalRooDirectory() instead of extension settings path
  for global commands detection, matching SimpleInstaller behavior
- MarketplaceInstallModal: Pass name parameter to whatNextCommand translation
? t("marketplace:install.whatNextMcp")
: t("marketplace:install.whatNextMode")}
: item.type === "command"
? t("marketplace:install.whatNextCommand", { name: item.id })
Copy link
Contributor

Choose a reason for hiding this comment

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

When interpolating the command label, consider using item.name instead of item.id for a more user‐friendly display (if a proper name exists).

Suggested change
? t("marketplace:install.whatNextCommand", { name: item.id })
? t("marketplace:install.whatNextCommand", { name: item.name })

- Capitalize 'Slash' consistently in Catalan message
- Use formal 'Вы/хотите' instead of informal 'Ты/хочешь' in Russian
- Use formal '您' instead of informal '你' in Traditional Chinese
- Capitalize 'Slash' consistently in Traditional Chinese messages
@hannesrudolph hannesrudolph moved this from Triage to PR [Draft / In Progress] in Roo Code Roadmap Dec 12, 2025
@hannesrudolph hannesrudolph marked this pull request as draft December 12, 2025 23:03
@hannesrudolph hannesrudolph added PR - Draft / In Progress and removed Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. labels Dec 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Enhancement New feature or request PR - Draft / In Progress size:L This PR changes 100-499 lines, ignoring generated files.

Projects

Status: PR [Draft / In Progress]

Development

Successfully merging this pull request may close these issues.

2 participants