feat: add mode subtitles (descriptions) to all 90 pre-loaded custom modes - #63
Merged
Conversation
The semble binary download was failing with HTTP 404 because the Roo-Plus-Org/sembleexec repository did not exist. Changes: - Migrated download source to Audare-est-Facere/sembleexec (v0.5.2) - Added configurable binary path setting for manual installation - Implemented multi-source fallback with exponential backoff retry - Added dynamic version resolution from GitHub API - Added checksum manifest download with fallback - Added pre-flight disk space and permission validation - Created offline bundling script for air-gapped environments - Updated all SHA-256 checksums and version references - Added comprehensive test coverage (11 new test cases) Co-authored-by: hanneke-de-vries <dhanneke204@gmail.com>
The test for insufficient disk space used mockExecFileImpl which was not declared. Changed to use mockExecFileCallback matching the existing mock infrastructure. Co-authored-by: hanneke-de-vries <dhanneke204@gmail.com>
- Fixed https.get mock to handle 3-argument form (url, options, callback) used by fetchLatestVersionFromUrl() — tests no longer hang - Removed 'any' type annotations in catch clauses across semble-downloader.ts and provider.ts to satisfy lint rules - Error messages now use instanceof Error narrowing instead of 'any' Co-authored-by: hanneke-de-vries <dhanneke204@gmail.com>
…nt suppressions - Moved installed-version check before resolveSembleVersion() to avoid unnecessary HTTP calls when binary is already up-to-date (fixes test timeouts) - Updated eslint-suppressions.json for modified files Co-authored-by: hanneke-de-vries <dhanneke204@gmail.com>
Co-authored-by: hanneke-de-vries <dhanneke204@gmail.com>
- Added pnpm override for js-yaml@^4.3.0 to fix high-severity vulnerability (GHSA-2prx-84p2-4v8w) in @vscode/vsce dep chain - Ran eslint --prune-suppressions to correct suppression counts Co-authored-by: hanneke-de-vries <dhanneke204@gmail.com>
- Renamed zoo-code-auth references to roo-plus-auth in ClineProvider.spec.ts and webviewMessageHandler.spec.ts (module path + function names) - Updated command handler prefix from zoo-code to roo-plus in registerCommands.spec.ts - Updated originator string from zoo-code to roo-plus in openai-codex.spec.ts - Fixed semble-downloader.spec.ts: added node: prefix for built-in module mocks (vitest v4 compatibility) and fixed https.get callback parameter handling for 3-argument call pattern (url, options, callback) Co-authored-by: hanneke-de-vries <dhanneke204@gmail.com>
- Renamed zoo-code-auth references to roo-plus-auth in ClineProvider.spec.ts and webviewMessageHandler.spec.ts (module path + function names) - Updated command handler prefix from zoo-code to roo-plus in registerCommands.spec.ts - Updated originator string from zoo-code to roo-plus in openai-codex.spec.ts - Fixed semble-downloader.spec.ts: added dual-register mocks (bare + node: prefix) for vitest v4 compatibility; fixed https.get callback parameter handling for 3-argument call pattern (url, options, callback); suppressed pre-existing no-explicit-any with file-level directive - Ran eslint --prune-suppressions to update suppression counts
- Replaced callCount-based https.get mocks with URL-pattern-based mocks that distinguish resolveSembleVersion HEAD requests from downloadFile archive requests - Fixed always-redirect mocks: version resolution HEAD requests get 200 to avoid infinite redirect loops; only archive downloads get redirects - Added explicit fs.unlink mock reset in beforeEach to prevent mock implementation leakage across tests - Fixed condition ordering in redirect test: CDN domain check must come before archive filename check to avoid substring collisions - Added validateInstallPath path-filtering: only reject fs.unlink for non-.write-test paths so validateInstallPath can succeed
…odes All 97 pre-loaded modes in .roomodes now have 'description:' fields, providing clear subtitles in the VS Code mode selector UI. Root cause: The 233 agent source YAML files in custom-modes/agents/ never included a 'description' field. The sync-custom-modes.mjs script supports description in ALLOWED_FIELDS but the field was absent from the upstream source, so it was never populated into .roomodes during regeneration. Fix applied at two levels: 1. Source: Added description fields to all 233 agent YAML files in custom-modes/agents/ (submodule commit 906e503) 2. Output: Added description fields to all 90 custom mode entries in .roomodes, sourced from custom_modes.d/ reference files Closes: #39 Co-authored-by: hanneke-de-vries <dhanneke204@gmail.com>
…des-#39 # Conflicts: # CHANGELOG.md # src/services/code-index/semble/__tests__/semble-downloader.spec.ts
xavier-arosemena
had a problem deploying
to
marketplace-production
July 29, 2026 19:12 — with
GitHub Actions
Failure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Added
description:(subtitle) fields to all custom modes that were missing them. Fixes issue #39.Changes
description:fields to all 90 custom mode entries (97 total now have subtitles)description:fields to all 233 agent source YAML filesRoot Cause
The 233 agent source YAML files in
custom-modes/agents/never included adescriptionfield. Thesync-custom-modes.mjsscript supports it inALLOWED_FIELDS(line 42), but since the upstream source lacked it, it was never populated into.roomodes.Verification
.roomodesentries validv3.73.0(MINOR bump)Closes: #39
Co-authored-by: hanneke-de-vries dhanneke204@gmail.com