Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Dec 22, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

chrarnoldus and others added 21 commits December 17, 2025 14:04
- Add line ending detection to identify if file uses CRLF or LF
- Normalize search and replace strings to match file's line ending style
- Add helper function normalizeLineEndings_kilocode (same as SearchAndReplaceTool)
- Add comprehensive tests for both LF and CRLF line endings
- Fixes issue where search_replace fails on Windows files with CRLF

This fix mirrors the approach already used in SearchAndReplaceTool,
ensuring consistent behavior across both tools.
… module

- Create src/core/tools/helpers/stringUtils.ts with normalizeLineEndings_kilocode function
- Update SearchReplaceTool.ts to import from stringUtils.ts
- Update SearchAndReplaceTool.ts to import from stringUtils.ts
- Remove duplicate implementations of normalizeLineEndings_kilocode
- Improves code maintainability by centralizing line ending normalization logic
- Replace z.enum(toolNames) with z.string() for included_tools and excluded_tools
- Remove unused toolNames import from @roo-code/types
- Allows more flexible tool name validation
- Add SessionTitleGeneratedMessage type definition with sessionId, title, and timestamp fields
- Update SessionTitleService to emit session_title_generated event after successfully updating session title
- Add SessionTitleGeneratedStreamEvent to CliOutputParser for parsing the event from CLI output
- Wire up communication between CLI and extension to forward the event
- Add tests for parsing and emitting the new event type

This event is emitted when a session title is generated, which typically happens after a session is created.
…d dependency

- Remove duplicate SessionTitleGeneratedMessage type from SessionSyncService
- Import SessionTitleGeneratedMessage from SessionTitleService instead
- Remove unused onSessionTitleGenerated dependency from SessionSyncService
- Update SessionManager imports to reflect the changes
- Add changeset for the PR
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
* fix: resolve Windows CLI spawn ENOENT error in Agent Manager

Replace shell command-based CLI detection with filesystem-based
executable resolution using PATHEXT environment variable.

* fix: capture shell PATH for CLI spawn on macOS

When the editor is launched from Finder/Spotlight, the extension host
doesn't inherit the user's shell environment. This causes the CLI
spawn to fail as tools like git may not be in PATH.

- Added getLoginShellPath() to capture PATH from login shell
- Return CliDiscoveryResult with both cliPath and shellPath
- Use captured shell PATH when spawning CLI process
- Added telemetry for session timeout diagnostics

* fix: address PR review comments

- Use error.code instead of error.message for EACCES detection
- Rename fileExistsAsFile to pathExistsAsFile
- Remove redundant isSymbolicLink check (stat follows symlinks)
- Add clarifying comment about symlink behavior

* fix: merge Windows CLI spawn fix with macOS PATH fix

Merged the Windows fix from kilocode-win-fix branch which:
- Adds findExecutable() for proper Windows PATHEXT handling
- Adds case-insensitive environment variable lookup
- Adds cli_spawn_error telemetry for Windows debugging

Combined with the existing macOS fix for shell PATH capture:
- Captures shell PATH from login shell on macOS
- Uses captured PATH when spawning CLI process
- Adds session_timeout telemetry for debugging

Both fixes now work together to resolve:
- Windows: CLI spawn ENOENT errors due to PATHEXT handling
- macOS: CLI spawn failures when editor launched from Finder

* chore: restore slackbot.md to match main

* fix: add missing getPlatformDiagnostics mock in AgentManagerProvider tests

* fix: use platform-appropriate paths in Windows tests

* fix: separate Windows simulation tests from native Windows tests

- Skip platform-switching tests when already on target platform
- Add dedicated native Windows tests that run only on Windows CI
- Add proper lstat mock to fs mocks (code uses both stat and lstat)
- Use proper error codes in mock rejections

* fix: remove platform simulation tests, keep only native platform tests

Platform simulation (mocking process.platform) is fragile and doesn't
truly test platform-specific behavior. Instead:
- Windows tests run only on Windows CI (skipped elsewhere)
- Non-Windows tests run only on non-Windows (skipped on Windows)
- Let actual CI environments test their native platform behavior

* fix: handle spawnSync errors in getLoginShellPath

* fix: update CliSessionLauncher for CliDiscoveryResult return type

Update CliSessionLauncher to handle the new CliDiscoveryResult interface
returned by findKilocodeCli, passing shellPath to spawnProcess for macOS
shell environment inheritance.

* chore: add changeset for macOS CLI spawn PATH fix

* fix: use platform-aware path in CliPathResolver mock for Windows CI

* Fix remaining cli path discovery issues
…to-string

fix: change z.enum(toolNames) to z.string() in model-settings
Fix duplictate tool call processing in Chutes, DeepInfra, LiteLLM and xAI providers
Add example to read_file tool definition
* fix: handle cli configuration errors

* chore: add translations for CLI configuration error keys

Add translations for cliMisconfigured and configureCli keys
to all 21 supported locales.

* Address review comments and deduplicate and simplify error handling

* Simplify logic further

* Fix type errors
Fix search_replace tool to handle Windows line endings (CRLF)
)

* feat(cli): Add markdown theming support for Reasoning box content

- Extended Theme interface with markdown color properties (text, heading, strong, em, code, blockquote, link, list)
- Updated all 14 built-in themes with markdown color configurations
- Modified MarkdownText component to accept and apply theme colors via TerminalRenderer
- Updated SayReasoningMessage to pass theme to MarkdownText component
- Enables full theming of markdown content inside Reasoning boxes

* fix(cli): Add type assertion for TerminalRendererOptions

- Cast theme markdown colors to TerminalRendererOptions to fix TypeScript error
- marked-terminal expects ChalkInstance or functions, but our theme uses strings
- Type assertion allows the strings to be passed through correctly

* fix(cli): Use chalk instances for markdown colors

- Import chalk and create proper chalk color instances
- Add colorToChalk helper to handle both hex colors and named colors
- Replace type assertion with proper chalk.hex() and chalk[color] calls
- This ensures marked-terminal receives the correct ChalkInstance types

* fix(cli): Remove any type in colorToChalk helper

- Replace 'as any' with proper type assertion using ChalkColor type
- Fixes ESLint no-explicit-any error

* add change set

* fix

---------

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: syn <[email protected]>
@pull pull bot locked and limited conversation to collaborators Dec 22, 2025
@pull pull bot added the ⤵️ pull label Dec 22, 2025
@pull pull bot merged commit 845f8c1 into zimushui:main Dec 22, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants