* Fixes#5294: Add instruction to Architect mode to avoid time estimates
- Updated Architect mode custom instructions to explicitly prohibit providing time estimates
- Added clear guidance to focus on actionable plans without speculating about implementation timeframes
- Updated test snapshot to reflect the new instruction
- All tests passing
* More tweaks to prompt
---------
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
* chore: adding x-title header and testing for litellm
* chore: indentation fi and headers order fix
* chore: spacing fix
* chore: removed white space
* fix: allow user headers to override default headers and clean up formatting
- Reorder header spread in router-provider.ts so user-provided openAiHeaders can override DEFAULT_HEADERS
- Remove unnecessary blank lines after imports for consistency
- This matches the pattern used in openai.ts where DEFAULT_HEADERS come first
---------
Co-authored-by: Brendan-Z <brendanzhou.99@gmail.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
* feat: change default mode to architect for new installations
- Reordered modes array to put architect mode first
- Updated test to reflect architect as the default mode
- Maintains backward compatibility for existing users
* test: update snapshots and fix tests for architect default mode
- Update all snapshot tests to reflect architect as the default mode
- Fix mode destructuring in validateToolUse tests
- All tests now pass with the new default mode configuration
* docs: add comment explaining mode ordering for default selection
Addresses PR review feedback to clarify that the first mode in the array
serves as the default for new installations
* fix: Update integration test to use lowercase mode name
The test was using 'Ask' (capitalized) but modes are now lowercase 'ask'.
This was causing the test to timeout as the mode validation failed.
* https parsing in URL sanatizing for git repo
* fix: remove duplicate JSDoc and add SSH to HTTPS conversion test
- Remove duplicate JSDoc comment from convertGitUrlToHttps function
- Add test case to verify getGitRepositoryInfo converts SSH URLs to HTTPS format
---------
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
* fix: resolve E2BIG error by passing large prompts via stdin to Claude CLI
- Pass messages via stdin instead of command line arguments to avoid Linux argument length limits
- Add --input-format text flag to claude CLI command
- Update execa configuration to use stdin pipe
- Fix corresponding unit tests with proper async iterator mocking
- Resolves spawn E2BIG errors when using very large conversation histories
* fix: address race condition and improve error handling
- Use setImmediate to ensure process is spawned before writing to stdin
- Add proper error handling for stdin write operations
- Add tests for error scenarios
- Update existing tests to handle async behavior properly
* fix: remove --input-format text flag to prevent CLI parsing errors
The --input-format text flag was causing the Claude CLI to misinterpret
the JSON content passed via stdin, leading to errors like 'unknown option -------'
when the system prompt contained dashes. Removing this flag allows the CLI
to properly handle the JSON input via stdin.
---------
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
## Fix terminal keyboard shortcut error when adding content to context
**Fixes:** [#2276](https://github.com/RooCodeInc/Roo-Code/issues/2276)
**Problem:**
- Using keyboard shortcuts to add terminal content to context threw error: "Cannot read properties of undefined (reading 'selection')"
- Context menu worked correctly, but keyboard shortcuts failed
**Root Cause:**
- Command handler accessed `args.selection` without null checking
- When triggered via keyboard shortcut, VS Code passes `undefined` for `args` parameter
- When triggered via context menu, VS Code passes an object with `selection` property
**Solution:**
- Changed `args.selection` to `args?.selection` using optional chaining
- Maintains existing fallback behavior when no selection is available
- Preserves backward compatibility with context menu functionality
**Files Modified:**
- `src/activate/registerTerminalActions.ts` - Added null safety for args parameter
**Testing:**
- ✅ Keyboard shortcuts now work without errors
- ✅ Context menu functionality preserved
- ✅ Fallback to `Terminal.getTerminalContents()` works in both scenarios
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>