Skip to content

Mirror: fix: preserve original line_ranges format (#5370)#13

Merged
jeremylongshore merged 2 commits intomainfrom
review/PR-5370
Feb 15, 2026
Merged

Mirror: fix: preserve original line_ranges format (#5370)#13
jeremylongshore merged 2 commits intomainfrom
review/PR-5370

Conversation

@jeremylongshore
Copy link
Copy Markdown
Owner

@jeremylongshore jeremylongshore commented Feb 14, 2026

Mirror of Kilo-Org#5370

Field Value
Upstream PR #5370
Author @eliasyin
Category fix
Tier 3
Size 59 lines, 4 files

This PR mirrors the upstream change for multi-AI review analysis.

Bot Review Tracker

  • CodeRabbit
  • Gemini Code Assist
  • Greptile
  • CodeQL
  • Qodo PR-Agent

Summary by CodeRabbit

Bug Fixes

  • Improved tool call handling to preserve the original input format in conversation history, ensuring API records maintain consistency and accuracy with original parameter specifications.

Tests

  • Added comprehensive test coverage to validate raw input preservation across various parameter format scenarios, confirming that original formats are properly retained throughout the system.

congfeng.yin and others added 2 commits January 24, 2026 21:49
…c-provider

When using anthropic-provider mode, the read_file tool's line_ranges parameter
was being converted from snake_case to camelCase and from tuple format to object
format before saving to conversation history. This caused inconsistency between
the API response format and the saved history format.

Changes:
- Add rawInput field to ToolUse interface to preserve original API parameters
- Save original args to rawInput in NativeToolCallParser.parseToolCall()
- Use rawInput (if available) when saving tool calls to history in Task.ts
- Add test case to verify rawInput preserves original line_ranges format

This ensures line_ranges stays as [[1, 50]] instead of being converted to
lineRanges: [{ start: 1, end: 50 }] in the conversation history.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @jeremylongshore, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request resolves an issue where tool call arguments, specifically line_ranges, were being inadvertently transformed from their original API format during processing. By introducing and utilizing a rawInput field, the PR ensures that the exact arguments received from the API are preserved for historical logging, thereby maintaining data consistency and accuracy in the API history.

Highlights

  • Preservation of Original API Arguments: Introduced a rawInput field within the ToolUse interface and its implementation to store the exact, untransformed arguments received from the API. This ensures that data structures like line_ranges retain their original format (e.g., [[1, 50]] tuples) rather than being converted to an internal representation (e.g., [{ start: 1, end: 50 }] objects).
  • API History Consistency: Modified the Task class to prioritize the newly added rawInput when logging tool call history. This change guarantees that the historical record accurately reflects the API's original argument format, which is crucial for debugging, auditing, and replaying interactions.
  • Enhanced Tool Call Parsing: The NativeToolCallParser now populates the rawInput field with the original arguments during tool call parsing, ensuring that this untransformed data is available downstream for history purposes.
  • New Test Coverage: Added a dedicated test case to NativeToolCallParser.spec.ts to explicitly verify that rawInput correctly preserves the original line_ranges format, while nativeArgs continues to provide the converted, structured format.
Changelog
  • src/core/assistant-message/NativeToolCallParser.ts
    • Added rawInput: args to the ToolUse object created by parseToolCall to store the original arguments.
  • src/core/assistant-message/tests/NativeToolCallParser.spec.ts
    • Added a new test case to verify that rawInput correctly preserves the line_ranges format as [[start, end]] tuples, while nativeArgs correctly converts it to [{ start, end }] objects.
  • src/core/task/Task.ts
    • Modified the logic for determining the input to be used for API history, prioritizing toolUse.rawInput over toolUse.nativeArgs and toolUse.params to ensure original format preservation.
  • src/shared/tools.ts
    • Added an optional rawInput?: Record<string, unknown> property to the ToolUse interface, along with a JSDoc comment explaining its purpose.
Activity
  • The pull request is a mirror of an upstream change for multi-AI review analysis.
  • No human activity or comments have been recorded on this pull request yet, beyond the initial creation.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 14, 2026

📝 Walkthrough

Walkthrough

A new rawInput field is added to the ToolUse interface to preserve the original API input format. The NativeToolCallParser populates this field with raw arguments, Task references it for history building with a fallback pattern, and tests validate the preservation behavior alongside existing parsing logic.

Changes

Cohort / File(s) Summary
Interface Definition
src/shared/tools.ts
Added optional rawInput: Record<string, unknown> field to ToolUse<TName> interface to store original API input format for conversation history.
Parser Implementation
src/core/assistant-message/NativeToolCallParser.ts
Updated ToolUse construction to populate rawInput with the original raw arguments object (args) during native tool call parsing.
History Building
src/core/task/Task.ts
Modified tool invocation input selection to prefer toolUse.rawInput, with fallback to toolUse.nativeArgs then toolUse.params for consistency in API history.
Test Coverage
src/core/assistant-message/__tests__/NativeToolCallParser.spec.ts
Added test case verifying that rawInput preserves original tuple format (e.g., line_ranges) while nativeArgs contains converted object format.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A raw input preserved, with care so keen,
No conversions lost in the history's scene,
From parser to task, the fields align,
Original formats in rawInput shine!

🚥 Pre-merge checks | ✅ 2 | ❌ 2
❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Description check ⚠️ Warning The description indicates this is a mirror of an upstream PR with a bot review tracker, but lacks the Context, Implementation, and How to Test sections required by the template. Add Context section explaining what problem is being fixed, Implementation section describing the technical approach, and How to Test section with steps to verify the fix works correctly.
Merge Conflict Detection ⚠️ Warning ❌ Merge conflicts detected (687 files):

⚔️ .changeset/config.json (content)
⚔️ .devcontainer/devcontainer.json (content)
⚔️ .github/copilot-instructions.md (content)
⚔️ .github/dependabot.yml (content)
⚔️ .gitignore (content)
⚔️ .kilocode/skills/translation/SKILL.md (content)
⚔️ .kilocode/workflows/add-missing-translations.md (content)
⚔️ AGENTS.md (content)
⚔️ CHANGELOG.md (content)
⚔️ CONTRIBUTING.md (content)
⚔️ README.md (content)
⚔️ apps/kilocode-docs/.gitignore (content)
⚔️ apps/kilocode-docs/README.md (content)
⚔️ apps/kilocode-docs/package.json (content)
⚔️ apps/kilocode-docs/tsconfig.json (content)
⚔️ apps/vscode-e2e/src/suite/index.ts (content)
⚔️ apps/vscode-e2e/src/suite/modes.test.ts (content)
⚔️ apps/vscode-e2e/src/suite/subtasks.test.ts (content)
⚔️ apps/vscode-e2e/src/suite/tools/apply-diff.test.ts (content)
⚔️ apps/vscode-e2e/src/suite/tools/execute-command.test.ts (content)
⚔️ apps/vscode-e2e/src/suite/tools/list-files.test.ts (content)
⚔️ apps/vscode-e2e/src/suite/tools/read-file.test.ts (content)
⚔️ apps/vscode-e2e/src/suite/tools/search-files.test.ts (content)
⚔️ apps/vscode-e2e/src/suite/tools/use-mcp-tool.test.ts (content)
⚔️ apps/vscode-e2e/src/suite/tools/write-to-file.test.ts (content)
⚔️ apps/web-evals/src/actions/runs.ts (content)
⚔️ apps/web-evals/src/app/runs/new/new-run.tsx (content)
⚔️ apps/web-evals/src/lib/schemas.ts (content)
⚔️ apps/web-roo-code/src/app/cloud/team/page.tsx (content)
⚔️ apps/web-roo-code/src/app/pricing/page.tsx (content)
⚔️ apps/web-roo-code/src/app/provider/page.tsx (content)
⚔️ apps/web-roo-code/src/app/terms/terms.md (content)
⚔️ apps/web-roo-code/src/components/chromes/nav-bar.tsx (content)
⚔️ apps/web-roo-code/src/components/homepage/features.tsx (content)
⚔️ cli/AGENTS.md (content)
⚔️ cli/CHANGELOG.md (content)
⚔️ cli/README.md (content)
⚔️ cli/docs/PROVIDER_CONFIGURATION.md (content)
⚔️ cli/package.dist.json (content)
⚔️ cli/package.json (content)
⚔️ cli/src/__tests__/commander-flags.test.ts (content)
⚔️ cli/src/auth/index.ts (content)
⚔️ cli/src/commands/__tests__/models-api.test.ts (content)
⚔️ cli/src/commands/checkpoint.ts (content)
⚔️ cli/src/commands/core/registry.ts (content)
⚔️ cli/src/commands/model.ts (content)
⚔️ cli/src/config/mapper.ts (content)
⚔️ cli/src/config/schema.json (content)
⚔️ cli/src/config/types.ts (content)
⚔️ cli/src/constants/providers/__tests__/models.test.ts (content)
⚔️ cli/src/constants/providers/labels.ts (content)
⚔️ cli/src/constants/providers/models.ts (content)
⚔️ cli/src/constants/providers/settings.ts (content)
⚔️ cli/src/constants/providers/validation.ts (content)
⚔️ cli/src/services/__tests__/autocomplete.detectInputState.test.ts (content)
⚔️ cli/src/state/atoms/__tests__/keyboard.test.ts (content)
⚔️ cli/src/state/hooks/__tests__/useSessionCost.test.ts (content)
⚔️ cli/src/types/messages.ts (content)
⚔️ cli/src/ui/App.tsx (content)
⚔️ cli/src/ui/messages/MessageRow.tsx (content)
⚔️ cli/src/utils/context.ts (content)
⚔️ jetbrains/plugin/src/main/kotlin/ai/kilocode/jetbrains/commands/SetContextCommands.kt (content)
⚔️ jetbrains/plugin/src/main/kotlin/ai/kilocode/jetbrains/core/ContextManager.kt (content)
⚔️ jetbrains/plugin/src/main/kotlin/ai/kilocode/jetbrains/inline/InlineCompletionConstants.kt (content)
⚔️ jetbrains/plugin/src/main/kotlin/ai/kilocode/jetbrains/inline/InlineCompletionService.kt (content)
⚔️ jetbrains/plugin/src/main/kotlin/ai/kilocode/jetbrains/inline/KiloCodeInlineCompletionProvider.kt (content)
⚔️ jetbrains/plugin/src/test/kotlin/ai/kilocode/jetbrains/util/ReflectUtilsStatusBarTest.kt (content)
⚔️ jetbrains/plugin/turbo.json (content)
⚔️ package.json (content)
⚔️ packages/agent-runtime/src/communication/__tests__/ipc.test.ts (content)
⚔️ packages/agent-runtime/src/utils/__tests__/safe-stringify.test.ts (content)
⚔️ packages/core-schemas/src/agent-manager/types.ts (content)
⚔️ packages/core-schemas/src/config/provider.ts (content)
⚔️ packages/core/package.json (content)
⚔️ packages/core/src/custom-tools/__tests__/custom-tool-registry.spec.ts (content)
⚔️ packages/core/src/index.ts (content)
⚔️ packages/core/tsconfig.json (content)
⚔️ packages/evals/Dockerfile.runner (content)
⚔️ packages/evals/src/cli/index.ts (content)
⚔️ packages/evals/src/cli/runEvals.ts (content)
⚔️ packages/evals/src/cli/utils.ts (content)
⚔️ packages/evals/src/db/migrations/meta/_journal.json (content)
⚔️ packages/evals/src/db/schema.ts (content)
⚔️ packages/types/npm/package.metadata.json (content)
⚔️ packages/types/package.json (content)
⚔️ packages/types/src/__tests__/cloud.test.ts (content)
⚔️ packages/types/src/__tests__/kilocode.test.ts (content)
⚔️ packages/types/src/cloud.ts (content)
⚔️ packages/types/src/codebase-index.ts (content)
⚔️ packages/types/src/global-settings.ts (content)
⚔️ packages/types/src/history.ts (content)
⚔️ packages/types/src/index.ts (content)
⚔️ packages/types/src/kilocode/kiloLanguages.ts (content)
⚔️ packages/types/src/kilocode/kilocode.ts (content)
⚔️ packages/types/src/marketplace.ts (content)
⚔️ packages/types/src/mcp.ts (content)
⚔️ packages/types/src/message.ts (content)
⚔️ packages/types/src/mode.ts (content)
⚔️ packages/types/src/model.ts (content)
⚔️ packages/types/src/provider-settings.ts (content)
⚔️ packages/types/src/providers/anthropic.ts (content)
⚔️ packages/types/src/providers/bedrock.ts (content)
⚔️ packages/types/src/providers/cerebras.ts (content)
⚔️ packages/types/src/providers/fireworks.ts (content)
⚔️ packages/types/src/providers/gemini.ts (content)
⚔️ packages/types/src/providers/index.ts (content)
⚔️ packages/types/src/providers/mistral.ts (content)
⚔️ packages/types/src/providers/moonshot.ts (content)
⚔️ packages/types/src/providers/openai-codex.ts (content)
⚔️ packages/types/src/providers/vertex.ts (content)
⚔️ packages/types/src/providers/zai.ts (content)
⚔️ packages/types/src/vscode.ts (content)
⚔️ pnpm-lock.yaml (content)
⚔️ src/__tests__/extension.spec.ts (content)
⚔️ src/activate/handleUri.ts (content)
⚔️ src/api/index.ts (content)
⚔️ src/api/providers/__tests__/bedrock-custom-arn.spec.ts (content)
⚔️ src/api/providers/__tests__/bedrock-invokedModelId.spec.ts (content)
⚔️ src/api/providers/__tests__/chutes.spec.ts (content)
⚔️ src/api/providers/__tests__/fireworks.spec.ts (content)
⚔️ src/api/providers/__tests__/gemini-handler.spec.ts (content)
⚔️ src/api/providers/__tests__/kilocode-openrouter.spec.ts (content)
⚔️ src/api/providers/__tests__/lite-llm.spec.ts (content)
⚔️ src/api/providers/__tests__/mistral-fim.spec.ts (content)
⚔️ src/api/providers/__tests__/moonshot.spec.ts (content)
⚔️ src/api/providers/__tests__/native-ollama.spec.ts (content)
⚔️ src/api/providers/__tests__/openai-codex.spec.ts (content)
⚔️ src/api/providers/__tests__/openai-native-tools.spec.ts (content)
⚔️ src/api/providers/__tests__/openai-native.spec.ts (content)
⚔️ src/api/providers/__tests__/zai.spec.ts (content)
⚔️ src/api/providers/anthropic-vertex.ts (content)
⚔️ src/api/providers/anthropic.ts (content)
⚔️ src/api/providers/base-openai-compatible-provider.ts (content)
⚔️ src/api/providers/base-provider.ts (content)
⚔️ src/api/providers/chutes.ts (content)
⚔️ src/api/providers/fetchers/__tests__/ollama.test.ts (content)
⚔️ src/api/providers/fetchers/huggingface.ts (content)
⚔️ src/api/providers/fetchers/io-intelligence.ts (content)
⚔️ src/api/providers/fetchers/litellm.ts (content)
⚔️ src/api/providers/fetchers/modelCache.ts (content)
⚔️ src/api/providers/fetchers/modelEndpointCache.ts (content)
⚔️ src/api/providers/fetchers/ollama.ts (content)
⚔️ src/api/providers/fetchers/roo.ts (content)
⚔️ src/api/providers/gemini.ts (content)
⚔️ src/api/providers/huggingface.ts (content)
⚔️ src/api/providers/index.ts (content)
⚔️ src/api/providers/kilocode-openrouter.ts (content)
⚔️ src/api/providers/kilocode/getKilocodeDefaultModel.ts (content)
⚔️ src/api/providers/lite-llm.ts (content)
⚔️ src/api/providers/mistral.ts (content)
⚔️ src/api/providers/moonshot.ts (content)
⚔️ src/api/providers/nano-gpt.ts (content)
⚔️ src/api/providers/native-ollama.ts (content)
⚔️ src/api/providers/openai-codex.ts (content)
⚔️ src/api/providers/openai-native.ts (content)
⚔️ src/api/providers/openai.ts (content)
⚔️ src/api/providers/openrouter.ts (content)
⚔️ src/api/providers/requesty.ts (content)
⚔️ src/api/providers/roo.ts (content)
⚔️ src/api/providers/router-provider.ts (content)
⚔️ src/api/providers/utils/router-tool-preferences.ts (content)
⚔️ src/api/providers/zai.ts (content)
⚔️ src/api/transform/__tests__/gemini-format.spec.ts (content)
⚔️ src/api/transform/__tests__/model-params.spec.ts (content)
⚔️ src/api/transform/__tests__/openai-format.spec.ts (content)
⚔️ src/api/transform/__tests__/reasoning.spec.ts (content)
⚔️ src/api/transform/__tests__/vscode-lm-format.spec.ts (content)
⚔️ src/api/transform/gemini-format.ts (content)
⚔️ src/api/transform/model-params.ts (content)
⚔️ src/api/transform/openai-format.ts (content)
⚔️ src/api/transform/reasoning.ts (content)
⚔️ src/api/transform/vscode-lm-format.ts (content)
⚔️ src/assets/icons/kilo-dark.svg (content)
⚔️ src/assets/icons/kilo-light.svg (content)
⚔️ src/core/assistant-message/NativeToolCallParser.ts (content)
⚔️ src/core/assistant-message/__tests__/NativeToolCallParser.spec.ts (content)
⚔️ src/core/assistant-message/presentAssistantMessage.ts (content)
⚔️ src/core/auto-approval/commands.ts (content)
⚔️ src/core/auto-approval/index.ts (content)
⚔️ src/core/auto-approval/mcp.ts (content)
⚔️ src/core/auto-approval/tools.ts (content)
⚔️ src/core/checkpoints/index.ts (content)
⚔️ src/core/condense/__tests__/index.spec.ts (content)
⚔️ src/core/condense/index.ts (content)
⚔️ src/core/config/ProviderSettingsManager.ts (content)
⚔️ src/core/config/__tests__/ProviderSettingsManager.spec.ts (content)
⚔️ src/core/kilocode/agent-manager/AgentManagerProvider.ts (content)
⚔️ src/core/kilocode/agent-manager/AgentRegistry.ts (content)
⚔️ src/core/kilocode/agent-manager/KilocodeEventProcessor.ts (content)
⚔️ src/core/kilocode/agent-manager/RuntimeProcessHandler.ts (content)
⚔️ src/core/kilocode/agent-manager/__tests__/AgentManagerProvider.spec.ts (content)
⚔️ src/core/kilocode/agent-manager/__tests__/WorktreeManager.test.ts (content)
⚔️ src/core/kilocode/agent-manager/__tests__/telemetry.test.ts (content)
⚔️ src/core/kilocode/webview/webviewMessageHandlerUtils.ts (content)
⚔️ src/core/mentions/index.ts (content)
⚔️ src/core/prompts/__tests__/sections.spec.ts (content)
⚔️ src/core/prompts/commands.ts (content)
⚔️ src/core/prompts/responses.ts (content)
⚔️ src/core/prompts/sections/__tests__/tool-use-guidelines.spec.ts (content)
⚔️ src/core/prompts/sections/rules.ts (content)
⚔️ src/core/prompts/sections/system-info.ts (content)
⚔️ src/core/prompts/sections/tool-use-guidelines.ts (content)
⚔️ src/core/prompts/tools/__tests__/filter-tools-for-mode.spec.ts (content)
⚔️ src/core/prompts/tools/native-tools/__tests__/mcp_server.spec.ts (content)
⚔️ src/core/prompts/tools/native-tools/__tests__/read_file.spec.ts (content)
⚔️ src/core/prompts/tools/native-tools/ask_followup_question.ts (content)
⚔️ src/core/prompts/tools/native-tools/edit_file.ts (content)
⚔️ src/core/prompts/tools/native-tools/index.ts (content)
⚔️ src/core/prompts/tools/native-tools/read_file.ts (content)
⚔️ src/core/task-persistence/taskMetadata.ts (content)
⚔️ src/core/task/Task.ts (content)
⚔️ src/core/task/__tests__/Task.spec.ts (content)
⚔️ src/core/task/build-tools.ts (content)
⚔️ src/core/tools/ApplyDiffTool.ts (content)
⚔️ src/core/tools/ApplyPatchTool.ts (content)
⚔️ src/core/tools/AskFollowupQuestionTool.ts (content)
⚔️ src/core/tools/AttemptCompletionTool.ts (content)
⚔️ src/core/tools/BaseTool.ts (content)
⚔️ src/core/tools/BrowserActionTool.ts (content)
⚔️ src/core/tools/EditFileTool.ts (content)
⚔️ src/core/tools/ExecuteCommandTool.ts (content)
⚔️ src/core/tools/FetchInstructionsTool.ts (content)
⚔️ src/core/tools/ListFilesTool.ts (content)
⚔️ src/core/tools/MultiApplyDiffTool.ts (content)
⚔️ src/core/tools/ReadFileTool.ts (content)
⚔️ src/core/tools/SearchAndReplaceTool.ts (content)
⚔️ src/core/tools/SearchFilesTool.ts (content)
⚔️ src/core/tools/SearchReplaceTool.ts (content)
⚔️ src/core/tools/UseMcpToolTool.ts (content)
⚔️ src/core/tools/WriteToFileTool.ts (content)
⚔️ src/core/tools/__tests__/BrowserActionTool.screenshot.spec.ts (content)
⚔️ src/core/tools/__tests__/editFileTool.spec.ts (content)
⚔️ src/core/tools/__tests__/searchAndReplaceTool.spec.ts (content)
⚔️ src/core/tools/__tests__/searchReplaceTool.spec.ts (content)
⚔️ src/core/tools/accessMcpResourceTool.ts (content)
⚔️ src/core/webview/ClineProvider.ts (content)
⚔️ src/core/webview/__tests__/ClineProvider.apiHandlerRebuild.spec.ts (content)
⚔️ src/core/webview/__tests__/ClineProvider.spec.ts (content)
⚔️ src/core/webview/__tests__/ClineProvider.sticky-mode.spec.ts (content)
⚔️ src/core/webview/__tests__/webviewMessageHandler.autoSwitch.spec.ts (content)
⚔️ src/core/webview/__tests__/webviewMessageHandler.checkpoint.spec.ts (content)
⚔️ src/core/webview/__tests__/webviewMessageHandler.edit.spec.ts (content)
⚔️ src/core/webview/__tests__/webviewMessageHandler.spec.ts (content)
⚔️ src/core/webview/sttHandlers.ts (content)
⚔️ src/core/webview/webviewMessageHandler.ts (content)
⚔️ src/esbuild.mjs (content)
⚔️ src/eslint.config.mjs (content)
⚔️ src/extension.ts (content)
⚔️ src/i18n/locales/ar/common.json (content)
⚔️ src/i18n/locales/ar/embeddings.json (content)
⚔️ src/i18n/locales/ar/kilocode.json (content)
⚔️ src/i18n/locales/ca/common.json (content)
⚔️ src/i18n/locales/ca/embeddings.json (content)
⚔️ src/i18n/locales/ca/kilocode.json (content)
⚔️ src/i18n/locales/cs/common.json (content)
⚔️ src/i18n/locales/cs/embeddings.json (content)
⚔️ src/i18n/locales/cs/kilocode.json (content)
⚔️ src/i18n/locales/de/common.json (content)
⚔️ src/i18n/locales/de/embeddings.json (content)
⚔️ src/i18n/locales/de/kilocode.json (content)
⚔️ src/i18n/locales/en/common.json (content)
⚔️ src/i18n/locales/en/embeddings.json (content)
⚔️ src/i18n/locales/en/kilocode.json (content)
⚔️ src/i18n/locales/es/common.json (content)
⚔️ src/i18n/locales/es/embeddings.json (content)
⚔️ src/i18n/locales/es/kilocode.json (content)
⚔️ src/i18n/locales/fr/common.json (content)
⚔️ src/i18n/locales/fr/embeddings.json (content)
⚔️ src/i18n/locales/fr/kilocode.json (content)
⚔️ src/i18n/locales/hi/common.json (content)
⚔️ src/i18n/locales/hi/embeddings.json (content)
⚔️ src/i18n/locales/hi/kilocode.json (content)
⚔️ src/i18n/locales/id/common.json (content)
⚔️ src/i18n/locales/id/embeddings.json (content)
⚔️ src/i18n/locales/id/kilocode.json (content)
⚔️ src/i18n/locales/it/common.json (content)
⚔️ src/i18n/locales/it/embeddings.json (content)
⚔️ src/i18n/locales/it/kilocode.json (content)
⚔️ src/i18n/locales/ja/common.json (content)
⚔️ src/i18n/locales/ja/embeddings.json (content)
⚔️ src/i18n/locales/ja/kilocode.json (content)
⚔️ src/i18n/locales/ko/common.json (content)
⚔️ src/i18n/locales/ko/embeddings.json (content)
⚔️ src/i18n/locales/ko/kilocode.json (content)
⚔️ src/i18n/locales/nl/common.json (content)
⚔️ src/i18n/locales/nl/embeddings.json (content)
⚔️ src/i18n/locales/nl/kilocode.json (content)
⚔️ src/i18n/locales/pl/common.json (content)
⚔️ src/i18n/locales/pl/embeddings.json (content)
⚔️ src/i18n/locales/pl/kilocode.json (content)
⚔️ src/i18n/locales/pt-BR/common.json (content)
⚔️ src/i18n/locales/pt-BR/embeddings.json (content)
⚔️ src/i18n/locales/pt-BR/kilocode.json (content)
⚔️ src/i18n/locales/ru/common.json (content)
⚔️ src/i18n/locales/ru/embeddings.json (content)
⚔️ src/i18n/locales/ru/kilocode.json (content)
⚔️ src/i18n/locales/th/common.json (content)
⚔️ src/i18n/locales/th/embeddings.json (content)
⚔️ src/i18n/locales/th/kilocode.json (content)
⚔️ src/i18n/locales/tr/common.json (content)
⚔️ src/i18n/locales/tr/embeddings.json (content)
⚔️ src/i18n/locales/tr/kilocode.json (content)
⚔️ src/i18n/locales/uk/common.json (content)
⚔️ src/i18n/locales/uk/embeddings.json (content)
⚔️ src/i18n/locales/uk/kilocode.json (content)
⚔️ src/i18n/locales/vi/common.json (content)
⚔️ src/i18n/locales/vi/embeddings.json (content)
⚔️ src/i18n/locales/vi/kilocode.json (content)
⚔️ src/i18n/locales/zh-CN/common.json (content)
⚔️ src/i18n/locales/zh-CN/embeddings.json (content)
⚔️ src/i18n/locales/zh-CN/kilocode.json (content)
⚔️ src/i18n/locales/zh-TW/common.json (content)
⚔️ src/i18n/locales/zh-TW/embeddings.json (content)
⚔️ src/i18n/locales/zh-TW/kilocode.json (content)
⚔️ src/i18n/locales/zh-TW/mcp.json (content)
⚔️ src/integrations/claude-code/__tests__/streaming-client.spec.ts (content)
⚔️ src/integrations/claude-code/streaming-client.ts (content)
⚔️ src/integrations/editor/DiffViewProvider.ts (content)
⚔️ src/integrations/terminal/BaseTerminal.ts (content)
⚔️ src/integrations/terminal/BaseTerminalProcess.ts (content)
⚔️ src/integrations/terminal/ShellIntegrationManager.ts (content)
⚔️ src/integrations/terminal/TerminalProcess.ts (content)
⚔️ src/integrations/terminal/__tests__/ExecaTerminalProcess.spec.ts (content)
⚔️ src/integrations/terminal/__tests__/TerminalProcess.spec.ts (content)
⚔️ src/integrations/terminal/types.ts (content)
⚔️ src/integrations/theme/getTheme.ts (content)
⚔️ src/package.json (content)
⚔️ src/package.nls.ar.json (content)
⚔️ src/package.nls.ca.json (content)
⚔️ src/package.nls.cs.json (content)
⚔️ src/package.nls.de.json (content)
⚔️ src/package.nls.es.json (content)
⚔️ src/package.nls.fr.json (content)
⚔️ src/package.nls.hi.json (content)
⚔️ src/package.nls.id.json (content)
⚔️ src/package.nls.it.json (content)
⚔️ src/package.nls.ja.json (content)
⚔️ src/package.nls.json (content)
⚔️ src/package.nls.ko.json (content)
⚔️ src/package.nls.nl.json (content)
⚔️ src/package.nls.pl.json (content)
⚔️ src/package.nls.pt-BR.json (content)
⚔️ src/package.nls.ru.json (content)
⚔️ src/package.nls.th.json (content)
⚔️ src/package.nls.tr.json (content)
⚔️ src/package.nls.uk.json (content)
⚔️ src/package.nls.vi.json (content)
⚔️ src/package.nls.zh-CN.json (content)
⚔️ src/package.nls.zh-TW.json (content)
⚔️ src/services/browser/BrowserSession.ts (content)
⚔️ src/services/code-index/__tests__/service-factory.spec.ts (content)
⚔️ src/services/code-index/config-manager.ts (content)
⚔️ src/services/code-index/embedders/ollama.ts (content)
⚔️ src/services/code-index/interfaces/config.ts (content)
⚔️ src/services/code-index/interfaces/embedder.ts (content)
⚔️ src/services/code-index/interfaces/manager.ts (content)
⚔️ src/services/code-index/service-factory.ts (content)
⚔️ src/services/command/__tests__/built-in-commands.spec.ts (content)
⚔️ src/services/command/built-in-commands.ts (content)
⚔️ src/services/mcp/McpHub.ts (content)
⚔️ src/services/mcp/kilocode/NotificationService.ts (content)
⚔️ src/services/roo-config/__tests__/index.spec.ts (content)
⚔️ src/services/roo-config/index.ts (content)
⚔️ src/services/skills/SkillsManager.ts (content)
⚔️ src/services/stt/context/__tests__/codeGlossaryExtractor.spec.ts (content)
⚔️ src/services/stt/context/codeGlossaryExtractor.ts (content)
⚔️ src/shared/ExtensionMessage.ts (content)
⚔️ src/shared/WebviewMessage.ts (content)
⚔️ src/shared/__tests__/checkExistApiConfig.spec.ts (content)
⚔️ src/shared/api.ts (content)
⚔️ src/shared/checkExistApiConfig.ts (content)
⚔️ src/shared/combineApiRequests.ts (content)
⚔️ src/shared/combineCommandSequences.ts (content)
⚔️ src/shared/embeddingModels.ts (content)
⚔️ src/shared/getApiMetrics.ts (content)
⚔️ src/shared/kilocode/errorUtils.ts (content)
⚔️ src/shared/kilocode/getTaskHistory.ts (content)
⚔️ src/shared/kilocode/headers.ts (content)
⚔️ src/shared/kilocode/kiloLanguages.ts (content)
⚔️ src/shared/kilocode/mcp.ts (content)
⚔️ src/shared/kilocode/wrapper.ts (content)
⚔️ src/shared/mcp.ts (content)
⚔️ src/shared/safeJsonParse.ts (content)
⚔️ src/shared/support-prompt.ts (content)
⚔️ src/shared/todo.ts (content)
⚔️ src/shared/tools.ts (content)
⚔️ src/test-llm-autocompletion/README.md (content)
⚔️ src/test-llm-autocompletion/approvals.spec.ts (content)
⚔️ src/test-llm-autocompletion/llm-client.ts (content)
⚔️ src/test-llm-autocompletion/mock-context-provider.ts (content)
⚔️ src/test-llm-autocompletion/package.json (content)
⚔️ src/test-llm-autocompletion/runner.ts (content)
⚔️ src/test-llm-autocompletion/utils.ts (content)
⚔️ src/utils/__tests__/image-parsing.spec.ts (content)
⚔️ src/utils/__tests__/json-schema.spec.ts (content)
⚔️ src/utils/__tests__/mcp-name.spec.ts (content)
⚔️ src/utils/__tests__/path.spec.ts (content)
⚔️ src/utils/git.ts (content)
⚔️ src/utils/json-schema.ts (content)
⚔️ src/utils/mcp-name.ts (content)
⚔️ src/utils/path.ts (content)
⚔️ src/vitest.config.ts (content)
⚔️ webview-ui/package.json (content)
⚔️ webview-ui/src/App.tsx (content)
⚔️ webview-ui/src/__tests__/App.spec.tsx (content)
⚔️ webview-ui/src/__tests__/command-autocomplete.spec.ts (content)
⚔️ webview-ui/src/components/browser-session/BrowserPanelStateProvider.tsx (content)
⚔️ webview-ui/src/components/browser-session/BrowserSessionPanel.tsx (content)
⚔️ webview-ui/src/components/chat/Announcement.tsx (content)
⚔️ webview-ui/src/components/chat/AutoApproveDropdown.tsx (content)
⚔️ webview-ui/src/components/chat/BrowserActionRow.tsx (content)
⚔️ webview-ui/src/components/chat/BrowserSessionRow.tsx (content)
⚔️ webview-ui/src/components/chat/ChatRow.tsx (content)
⚔️ webview-ui/src/components/chat/ChatTextArea.tsx (content)
⚔️ webview-ui/src/components/chat/ChatView.tsx (content)
⚔️ webview-ui/src/components/chat/CodeIndexPopover.tsx (content)
⚔️ webview-ui/src/components/chat/CommandExecution.tsx (content)
⚔️ webview-ui/src/components/chat/ContextMenu.tsx (content)
⚔️ webview-ui/src/components/chat/ErrorRow.tsx (content)
⚔️ webview-ui/src/components/chat/FollowUpSuggest.tsx (content)
⚔️ webview-ui/src/components/chat/IndexingStatusBadge.tsx (content)
⚔️ webview-ui/src/components/chat/McpExecution.tsx (content)
⚔️ webview-ui/src/components/chat/ReasoningBlock.tsx (content)
⚔️ webview-ui/src/components/chat/SlashCommandItem.tsx (content)
⚔️ webview-ui/src/components/chat/SlashCommandItemSimple.tsx (content)
⚔️ webview-ui/src/components/chat/TaskHeader.tsx (content)
⚔️ webview-ui/src/components/chat/__tests__/SlashCommandItemSimple.spec.tsx (content)
⚔️ webview-ui/src/components/chat/__tests__/TaskHeader.spec.tsx (content)
⚔️ webview-ui/src/components/chat/checkpoints/CheckpointSaved.tsx (content)
⚔️ webview-ui/src/components/chat/context-management/CondensationResultRow.tsx (content)
⚔️ webview-ui/src/components/cloud/OrganizationSwitcher.tsx (content)
⚔️ webview-ui/src/components/history/BatchDeleteTaskDialog.tsx (content)
⚔️ webview-ui/src/components/history/HistoryView.tsx (content)
⚔️ webview-ui/src/components/history/TaskItemFooter.tsx (content)
⚔️ webview-ui/src/components/history/__tests__/BatchDeleteTaskDialog.spec.tsx (content)
⚔️ webview-ui/src/components/history/__tests__/TaskItem.spec.tsx (content)
⚔️ webview-ui/src/components/history/__tests__/TaskItemFooter.spec.tsx (content)
⚔️ webview-ui/src/components/kilocode/KiloTaskHeader.tsx (content)
⚔️ webview-ui/src/components/kilocode/chat/IdeaSuggestionsBox.tsx (content)
⚔️ webview-ui/src/components/kilocode/chat/KiloProfileSelector.tsx (content)
⚔️ webview-ui/src/components/kilocode/chat/LowCreditWarning.tsx (content)
⚔️ webview-ui/src/components/kilocode/chat/ModelSelector.tsx (content)
⚔️ webview-ui/src/components/kilocode/helpers.ts (content)
⚔️ webview-ui/src/components/kilocode/hooks/__tests__/getModelsByProvider.spec.ts (content)
⚔️ webview-ui/src/components/kilocode/hooks/useProviderModels.ts (content)
⚔️ webview-ui/src/components/kilocode/hooks/useSelectedModel.ts (content)
⚔️ webview-ui/src/components/kilocode/profile/ProfileView.tsx (content)
⚔️ webview-ui/src/components/kilocode/rules/RuleRow.tsx (content)
⚔️ webview-ui/src/components/kilocode/settings/providers/KiloCode.tsx (content)
⚔️ webview-ui/src/components/marketplace/MarketplaceView.tsx (content)
⚔️ webview-ui/src/components/marketplace/MarketplaceViewStateManager.ts (content)
⚔️ webview-ui/src/components/marketplace/components/MarketplaceItemCard.tsx (content)
⚔️ webview-ui/src/components/mcp/McpEnabledToggle.tsx (content)
⚔️ webview-ui/src/components/mcp/McpErrorRow.tsx (content)
⚔️ webview-ui/src/components/mcp/McpResourceRow.tsx (content)
⚔️ webview-ui/src/components/mcp/McpToolRow.tsx (content)
⚔️ webview-ui/src/components/mcp/McpView.tsx (content)
⚔️ webview-ui/src/components/modes/ModesView.tsx (content)
⚔️ webview-ui/src/components/settings/ApiOptions.tsx (content)
⚔️ webview-ui/src/components/settings/AutoApproveSettings.tsx (content)
⚔️ webview-ui/src/components/settings/BrowserSettings.tsx (content)
⚔️ webview-ui/src/components/settings/CheckpointSettings.tsx (content)
⚔️ webview-ui/src/components/settings/ContextManagementSettings.tsx (content)
⚔️ webview-ui/src/components/settings/ExperimentalSettings.tsx (content)
⚔️ webview-ui/src/components/settings/LanguageSettings.tsx (content)
⚔️ webview-ui/src/components/settings/ModelPicker.tsx (content)
⚔️ webview-ui/src/components/settings/NotificationSettings.tsx (content)
⚔️ webview-ui/src/components/settings/PromptsSettings.tsx (content)
⚔️ webview-ui/src/components/settings/SectionHeader.tsx (content)
⚔️ webview-ui/src/components/settings/SettingsView.tsx (content)
⚔️ webview-ui/src/components/settings/SlashCommandsSettings.tsx (content)
⚔️ webview-ui/src/components/settings/TerminalSettings.tsx (content)
⚔️ webview-ui/src/components/settings/ThinkingBudget.tsx (content)
⚔️ webview-ui/src/components/settings/UISettings.tsx (content)
⚔️ webview-ui/src/components/settings/__tests__/ApiOptions.spec.tsx (content)
⚔️ webview-ui/src/components/settings/__tests__/SettingsView.change-detection.spec.tsx (content)
⚔️ webview-ui/src/components/settings/__tests__/SettingsView.spec.tsx (content)
⚔️ webview-ui/src/components/settings/__tests__/SettingsView.unsaved-changes.spec.tsx (content)
⚔️ webview-ui/src/components/settings/__tests__/SlashCommandsSettings.spec.tsx (content)
⚔️ webview-ui/src/components/settings/__tests__/ThinkingBudget.spec.tsx (content)
⚔️ webview-ui/src/components/settings/constants.ts (content)
⚔️ webview-ui/src/components/settings/providers/Chutes.tsx (content)
⚔️ webview-ui/src/components/settings/providers/ClaudeCode.tsx (content)
⚔️ webview-ui/src/components/settings/providers/DeepInfra.tsx (content)
⚔️ webview-ui/src/components/settings/providers/HuggingFace.tsx (content)
⚔️ webview-ui/src/components/settings/providers/LMStudio.tsx (content)
⚔️ webview-ui/src/components/settings/providers/LiteLLM.tsx (content)
⚔️ webview-ui/src/components/settings/providers/Mistral.tsx (content)
⚔️ webview-ui/src/components/settings/providers/Moonshot.tsx (content)
⚔️ webview-ui/src/components/settings/providers/Ollama.tsx (content)
⚔️ webview-ui/src/components/settings/providers/OpenAICodex.tsx (content)
⚔️ webview-ui/src/components/settings/providers/OpenAICompatible.tsx (content)
⚔️ webview-ui/src/components/settings/providers/OpenRouter.tsx (content)
⚔️ webview-ui/src/components/settings/providers/QwenCode.tsx (content)
⚔️ webview-ui/src/components/settings/providers/Requesty.tsx (content)
⚔️ webview-ui/src/components/settings/providers/Roo.tsx (content)
⚔️ webview-ui/src/components/settings/providers/SapAiCore.tsx (content)
⚔️ webview-ui/src/components/settings/providers/Unbound.tsx (content)
⚔️ webview-ui/src/components/settings/providers/VSCodeLM.tsx (content)
⚔️ webview-ui/src/components/settings/providers/VercelAiGateway.tsx (content)
⚔️ webview-ui/src/components/settings/providers/ZAi.tsx (content)
⚔️ webview-ui/src/components/settings/providers/index.ts (content)
⚔️ webview-ui/src/components/ui/hooks/__tests__/useSelectedModel.spec.ts (content)
⚔️ webview-ui/src/components/ui/hooks/useLmStudioModels.ts (content)
⚔️ webview-ui/src/components/ui/hooks/useOllamaModels.ts (content)
⚔️ webview-ui/src/components/ui/hooks/useRooCreditBalance.ts (content)
⚔️ webview-ui/src/components/ui/hooks/useRouterModels.ts (content)
⚔️ webview-ui/src/components/ui/hooks/useSelectedModel.ts (content)
⚔️ webview-ui/src/components/welcome/RooHero.tsx (content)
⚔️ webview-ui/src/components/welcome/WelcomeViewProvider.tsx (content)
⚔️ webview-ui/src/context/ExtensionStateContext.tsx (content)
⚔️ webview-ui/src/context/__tests__/ExtensionStateContext.spec.tsx (content)
⚔️ webview-ui/src/hooks/useKeybindings.spec.ts (content)
⚔️ webview-ui/src/hooks/useKeybindings.ts (content)
⚔️ webview-ui/src/i18n/locales/ar/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/ar/chat.json (content)
⚔️ webview-ui/src/i18n/locales/ar/common.json (content)
⚔️ webview-ui/src/i18n/locales/ar/history.json (content)
⚔️ webview-ui/src/i18n/locales/ar/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/ar/settings.json (content)
⚔️ webview-ui/src/i18n/locales/ar/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/ca/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/ca/chat.json (content)
⚔️ webview-ui/src/i18n/locales/ca/common.json (content)
⚔️ webview-ui/src/i18n/locales/ca/history.json (content)
⚔️ webview-ui/src/i18n/locales/ca/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/ca/settings.json (content)
⚔️ webview-ui/src/i18n/locales/ca/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/cs/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/cs/chat.json (content)
⚔️ webview-ui/src/i18n/locales/cs/common.json (content)
⚔️ webview-ui/src/i18n/locales/cs/history.json (content)
⚔️ webview-ui/src/i18n/locales/cs/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/cs/settings.json (content)
⚔️ webview-ui/src/i18n/locales/cs/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/de/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/de/chat.json (content)
⚔️ webview-ui/src/i18n/locales/de/common.json (content)
⚔️ webview-ui/src/i18n/locales/de/history.json (content)
⚔️ webview-ui/src/i18n/locales/de/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/de/settings.json (content)
⚔️ webview-ui/src/i18n/locales/de/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/en/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/en/chat.json (content)
⚔️ webview-ui/src/i18n/locales/en/common.json (content)
⚔️ webview-ui/src/i18n/locales/en/history.json (content)
⚔️ webview-ui/src/i18n/locales/en/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/en/settings.json (content)
⚔️ webview-ui/src/i18n/locales/en/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/es/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/es/chat.json (content)
⚔️ webview-ui/src/i18n/locales/es/common.json (content)
⚔️ webview-ui/src/i18n/locales/es/history.json (content)
⚔️ webview-ui/src/i18n/locales/es/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/es/settings.json (content)
⚔️ webview-ui/src/i18n/locales/es/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/fr/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/fr/chat.json (content)
⚔️ webview-ui/src/i18n/locales/fr/common.json (content)
⚔️ webview-ui/src/i18n/locales/fr/history.json (content)
⚔️ webview-ui/src/i18n/locales/fr/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/fr/settings.json (content)
⚔️ webview-ui/src/i18n/locales/fr/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/hi/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/hi/chat.json (content)
⚔️ webview-ui/src/i18n/locales/hi/common.json (content)
⚔️ webview-ui/src/i18n/locales/hi/history.json (content)
⚔️ webview-ui/src/i18n/locales/hi/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/hi/settings.json (content)
⚔️ webview-ui/src/i18n/locales/hi/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/id/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/id/chat.json (content)
⚔️ webview-ui/src/i18n/locales/id/common.json (content)
⚔️ webview-ui/src/i18n/locales/id/history.json (content)
⚔️ webview-ui/src/i18n/locales/id/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/id/settings.json (content)
⚔️ webview-ui/src/i18n/locales/id/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/it/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/it/chat.json (content)
⚔️ webview-ui/src/i18n/locales/it/common.json (content)
⚔️ webview-ui/src/i18n/locales/it/history.json (content)
⚔️ webview-ui/src/i18n/locales/it/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/it/settings.json (content)
⚔️ webview-ui/src/i18n/locales/it/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/ja/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/ja/chat.json (content)
⚔️ webview-ui/src/i18n/locales/ja/common.json (content)
⚔️ webview-ui/src/i18n/locales/ja/history.json (content)
⚔️ webview-ui/src/i18n/locales/ja/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/ja/settings.json (content)
⚔️ webview-ui/src/i18n/locales/ja/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/ko/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/ko/chat.json (content)
⚔️ webview-ui/src/i18n/locales/ko/common.json (content)
⚔️ webview-ui/src/i18n/locales/ko/history.json (content)
⚔️ webview-ui/src/i18n/locales/ko/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/ko/settings.json (content)
⚔️ webview-ui/src/i18n/locales/ko/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/nl/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/nl/chat.json (content)
⚔️ webview-ui/src/i18n/locales/nl/common.json (content)
⚔️ webview-ui/src/i18n/locales/nl/history.json (content)
⚔️ webview-ui/src/i18n/locales/nl/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/nl/settings.json (content)
⚔️ webview-ui/src/i18n/locales/nl/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/pl/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/pl/chat.json (content)
⚔️ webview-ui/src/i18n/locales/pl/common.json (content)
⚔️ webview-ui/src/i18n/locales/pl/history.json (content)
⚔️ webview-ui/src/i18n/locales/pl/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/pl/settings.json (content)
⚔️ webview-ui/src/i18n/locales/pl/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/pt-BR/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/pt-BR/chat.json (content)
⚔️ webview-ui/src/i18n/locales/pt-BR/common.json (content)
⚔️ webview-ui/src/i18n/locales/pt-BR/history.json (content)
⚔️ webview-ui/src/i18n/locales/pt-BR/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/pt-BR/settings.json (content)
⚔️ webview-ui/src/i18n/locales/pt-BR/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/ru/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/ru/chat.json (content)
⚔️ webview-ui/src/i18n/locales/ru/common.json (content)
⚔️ webview-ui/src/i18n/locales/ru/history.json (content)
⚔️ webview-ui/src/i18n/locales/ru/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/ru/settings.json (content)
⚔️ webview-ui/src/i18n/locales/ru/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/th/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/th/chat.json (content)
⚔️ webview-ui/src/i18n/locales/th/common.json (content)
⚔️ webview-ui/src/i18n/locales/th/history.json (content)
⚔️ webview-ui/src/i18n/locales/th/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/th/settings.json (content)
⚔️ webview-ui/src/i18n/locales/th/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/tr/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/tr/chat.json (content)
⚔️ webview-ui/src/i18n/locales/tr/common.json (content)
⚔️ webview-ui/src/i18n/locales/tr/history.json (content)
⚔️ webview-ui/src/i18n/locales/tr/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/tr/settings.json (content)
⚔️ webview-ui/src/i18n/locales/tr/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/uk/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/uk/chat.json (content)
⚔️ webview-ui/src/i18n/locales/uk/common.json (content)
⚔️ webview-ui/src/i18n/locales/uk/history.json (content)
⚔️ webview-ui/src/i18n/locales/uk/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/uk/settings.json (content)
⚔️ webview-ui/src/i18n/locales/uk/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/vi/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/vi/chat.json (content)
⚔️ webview-ui/src/i18n/locales/vi/common.json (content)
⚔️ webview-ui/src/i18n/locales/vi/history.json (content)
⚔️ webview-ui/src/i18n/locales/vi/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/vi/settings.json (content)
⚔️ webview-ui/src/i18n/locales/vi/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/zh-CN/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/zh-CN/chat.json (content)
⚔️ webview-ui/src/i18n/locales/zh-CN/common.json (content)
⚔️ webview-ui/src/i18n/locales/zh-CN/history.json (content)
⚔️ webview-ui/src/i18n/locales/zh-CN/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/zh-CN/settings.json (content)
⚔️ webview-ui/src/i18n/locales/zh-CN/welcome.json (content)
⚔️ webview-ui/src/i18n/locales/zh-TW/agentManager.json (content)
⚔️ webview-ui/src/i18n/locales/zh-TW/chat.json (content)
⚔️ webview-ui/src/i18n/locales/zh-TW/cloud.json (content)
⚔️ webview-ui/src/i18n/locales/zh-TW/common.json (content)
⚔️ webview-ui/src/i18n/locales/zh-TW/history.json (content)
⚔️ webview-ui/src/i18n/locales/zh-TW/kilocode.json (content)
⚔️ webview-ui/src/i18n/locales/zh-TW/marketplace.json (content)
⚔️ webview-ui/src/i18n/locales/zh-TW/prompts.json (content)
⚔️ webview-ui/src/i18n/locales/zh-TW/settings.json (content)
⚔️ webview-ui/src/i18n/locales/zh-TW/welcome.json (content)
⚔️ webview-ui/src/index.css (content)
⚔️ webview-ui/src/kilocode/agent-manager/components/AgentManagerApp.css (content)
⚔️ webview-ui/src/kilocode/agent-manager/components/KiloLogo.tsx (content)
⚔️ webview-ui/src/kilocode/agent-manager/components/MessageList.tsx (content)
⚔️ webview-ui/src/kilocode/agent-manager/components/SessionDetail.tsx (content)
⚔️ webview-ui/src/kilocode/agent-manager/components/SessionSidebar.tsx (content)
⚔️ webview-ui/src/kilocode/agent-manager/components/__tests__/MessageList.spec.tsx (content)
⚔️ webview-ui/src/kilocode/agent-manager/state/atoms/sessions.ts (content)
⚔️ webview-ui/src/utils/__tests__/slash-commands.spec.ts (content)
⚔️ webview-ui/src/utils/__tests__/validate.spec.ts (content)
⚔️ webview-ui/src/utils/context-mentions.ts (content)
⚔️ webview-ui/src/utils/kilocode/mcp.ts (content)
⚔️ webview-ui/src/utils/mcp.ts (content)
⚔️ webview-ui/src/utils/slash-commands.ts (content)
⚔️ webview-ui/src/utils/validate.ts (content)
⚔️ webview-ui/vite.config.ts (content)

These conflicts must be resolved before merging into main.
Resolve conflicts locally and push changes to this branch.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately reflects the main change: preserving the original line_ranges format in tool calls for conversation history.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch review/PR-5370
⚔️ Resolve merge conflicts (beta)
  • Auto-commit resolved conflicts to branch review/PR-5370
  • Create stacked PR with resolved conflicts
  • Post resolved changes as copyable diffs in a comment

No actionable comments were generated in the recent review. 🎉


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@qodo-code-review
Copy link
Copy Markdown

Review Summary by Qodo

Preserve original line_ranges format in API history

🐞 Bug fix

Grey Divider

Walkthroughs

Description
• Preserve original API parameter formats in conversation history
• Add rawInput field to ToolUse interface for storing unmodified arguments
• Update NativeToolCallParser to capture original args before transformation
• Use rawInput when saving tool calls to history in Task.ts
• Add test case verifying line_ranges format preservation
Diagram
flowchart LR
  A["API Response<br/>line_ranges: [[1, 50]]"] -->|parseToolCall| B["NativeToolCallParser<br/>stores rawInput"]
  B -->|nativeArgs conversion| C["Converted Format<br/>lineRanges: [{start, end}]"]
  B -->|rawInput preservation| D["Original Format<br/>line_ranges: [[1, 50]]"]
  C --> E["nativeArgs<br/>for processing"]
  D --> F["rawInput<br/>for history"]
  E --> G["Task.ts<br/>uses rawInput for history"]
  F --> G
Loading

Grey Divider

File Changes

1. src/shared/tools.ts ✨ Enhancement +6/-0

Add rawInput field to ToolUse interface

• Add rawInput optional field to ToolUse interface
• Document purpose of preserving original API parameter formats
• Ensure format consistency when saving to conversation history

src/shared/tools.ts


2. src/core/assistant-message/NativeToolCallParser.ts 🐞 Bug fix +3/-0

Store original args in rawInput field

• Capture original args object before transformation
• Store in new rawInput field of ToolUse result
• Add comments explaining preservation of format consistency

src/core/assistant-message/NativeToolCallParser.ts


3. src/core/task/Task.ts 🐞 Bug fix +5/-2

Use rawInput for tool call history

• Update tool call history logic to prioritize rawInput
• Fall back to nativeArgs then params for backward compatibility
• Add detailed comments explaining format preservation strategy

src/core/task/Task.ts


View more (1)
4. src/core/assistant-message/__tests__/NativeToolCallParser.spec.ts 🧪 Tests +43/-0

Add test for rawInput format preservation

• Add comprehensive test case for rawInput preservation
• Verify nativeArgs has converted format with object structure
• Verify rawInput preserves original tuple format [[1920, 1990]]
• Test with realistic read_file tool parameters

src/core/assistant-message/tests/NativeToolCallParser.spec.ts


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider


Action required

1. rawInput may be non-object 🐞 Bug ⛯ Reliability
Description
rawInput is assigned directly from JSON.parse() and then preferred when persisting
tool_use.input into API conversation history. If a tool call’s arguments parse to a non-object
JSON value (array/string/number/null), history may contain an invalid tool_use.input shape and
later cause provider/API request failures when history is reused.
Code

src/core/task/Task.ts[R3559-3566]

+								// Use rawInput to preserve original API format for history consistency.
+								// This ensures parameters like line_ranges stay as [[1, 50]] instead of
+								// being converted to lineRanges with object format [{ start: 1, end: 50 }].
+								// Fall back to nativeArgs for tools that don't have rawInput, then to params for legacy.
+								const input = toolUse.rawInput || toolUse.nativeArgs || toolUse.params

								// Use originalName (alias) if present for API history consistency.
								// When tool aliases are used (e.g., "edit_file" -> "search_and_replace"),
Evidence
parseToolCall parses toolCall.arguments without validating the parsed value is a plain object,
then stores it as rawInput. Task history persistence now prioritizes toolUse.rawInput for the
tool_use block input, so any non-object JSON value can be written into history verbatim.

src/core/assistant-message/NativeToolCallParser.ts[613-616]
src/core/assistant-message/NativeToolCallParser.ts[876-885]
src/core/task/Task.ts[3559-3576]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`rawInput` is set from `JSON.parse()` without ensuring the parsed value is a plain object. `Task` now prefers `rawInput` when constructing `tool_use` blocks for API conversation history. If parsed arguments are a non-object JSON value (e.g., `[]`, `&quot;str&quot;`, `null`), we can persist an invalid `tool_use.input` shape and potentially break subsequent API calls when replaying history.

### Issue Context
JSON allows non-object top-level values. The code currently assumes tool arguments are objects.

### Fix Focus Areas
- src/core/assistant-message/NativeToolCallParser.ts[613-616]
- src/core/assistant-message/NativeToolCallParser.ts[876-885]
- src/core/task/Task.ts[3559-3576]

### Notes
Implement a small `isPlainObject` check (or equivalent) and:
- Coerce `argsForProcessing` to `{}` when parsed value is not a plain object.
- Set `rawInput` only when the parsed value is a plain object.
- In `Task`, only prefer `rawInput` if it is a plain object; otherwise fall back to `nativeArgs`/`params`.
- Add a unit test covering a non-object parsed arguments payload to prevent regressions.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. rawInput duplicates large args 🐞 Bug ➹ Performance
Description
Every parsed native tool call now carries params + nativeArgs + rawInput, and rawInput is
always populated. For large arguments (e.g., apply_patch.patch, write_to_file.content), this
increases in-memory footprint of tool blocks and can inflate any serialization/debugging that
includes ToolUse objects.
Code

src/core/assistant-message/NativeToolCallParser.ts[R882-885]

+				// Preserve original args for API history to maintain format consistency
+				// This ensures line_ranges stays as [[1, 50]] instead of being converted to lineRanges
+				rawInput: args,
			}
Evidence
ToolUse now includes an additional rawInput field alongside params and nativeArgs, and
NativeToolCallParser unconditionally sets rawInput: args for parsed tool calls. This creates
argument duplication in memory for the same tool call.

src/shared/tools.ts[137-159]
src/core/assistant-message/NativeToolCallParser.ts[876-885]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`rawInput` is always stored on `ToolUse`, duplicating tool arguments that are already represented by `nativeArgs` and often `params`. This can add unnecessary memory overhead, especially for large tool payloads.

### Issue Context
The motivating case appears to be `read_file` where `line_ranges` is transformed to `lineRanges` for execution but should remain `line_ranges` in history.

### Fix Focus Areas
- src/core/assistant-message/NativeToolCallParser.ts[651-656]
- src/core/assistant-message/NativeToolCallParser.ts[876-885]
- src/core/task/Task.ts[3559-3563]

### Notes
Consider setting `rawInput` only when needed, e.g.:
- `rawInput: resolvedName === &quot;read_file&quot; ? args : undefined`
Or more generally, only when a normalization/transformation occurs that would otherwise alter history format.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Comment thread src/core/task/Task.ts
Comment on lines +3559 to 3566
// Use rawInput to preserve original API format for history consistency.
// This ensures parameters like line_ranges stay as [[1, 50]] instead of
// being converted to lineRanges with object format [{ start: 1, end: 50 }].
// Fall back to nativeArgs for tools that don't have rawInput, then to params for legacy.
const input = toolUse.rawInput || toolUse.nativeArgs || toolUse.params

// Use originalName (alias) if present for API history consistency.
// When tool aliases are used (e.g., "edit_file" -> "search_and_replace"),
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

1. Rawinput may be non-object 🐞 Bug ⛯ Reliability

rawInput is assigned directly from JSON.parse() and then preferred when persisting
tool_use.input into API conversation history. If a tool call’s arguments parse to a non-object
JSON value (array/string/number/null), history may contain an invalid tool_use.input shape and
later cause provider/API request failures when history is reused.
Agent Prompt
### Issue description
`rawInput` is set from `JSON.parse()` without ensuring the parsed value is a plain object. `Task` now prefers `rawInput` when constructing `tool_use` blocks for API conversation history. If parsed arguments are a non-object JSON value (e.g., `[]`, `"str"`, `null`), we can persist an invalid `tool_use.input` shape and potentially break subsequent API calls when replaying history.

### Issue Context
JSON allows non-object top-level values. The code currently assumes tool arguments are objects.

### Fix Focus Areas
- src/core/assistant-message/NativeToolCallParser.ts[613-616]
- src/core/assistant-message/NativeToolCallParser.ts[876-885]
- src/core/task/Task.ts[3559-3576]

### Notes
Implement a small `isPlainObject` check (or equivalent) and:
- Coerce `argsForProcessing` to `{}` when parsed value is not a plain object.
- Set `rawInput` only when the parsed value is a plain object.
- In `Task`, only prefer `rawInput` if it is a plain object; otherwise fall back to `nativeArgs`/`params`.
- Add a unit test covering a non-object parsed arguments payload to prevent regressions.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request correctly addresses the issue of preserving the original format of tool call arguments in the API conversation history. By introducing a rawInput field to the ToolUse object, the changes ensure that parameters like line_ranges maintain their original format (e.g., [[1, 50]]) instead of being converted to the internal representation. The implementation is clean, with appropriate fallback logic in Task.ts to maintain backward compatibility. The addition of a specific test case in NativeToolCallParser.spec.ts effectively validates this new behavior. Overall, this is a well-executed fix that improves data consistency.

@jeremylongshore jeremylongshore merged commit a8187d3 into main Feb 15, 2026
1 check passed
@jeremylongshore jeremylongshore deleted the review/PR-5370 branch February 15, 2026 20:44
@jeremylongshore
Copy link
Copy Markdown
Owner Author

Review Summary

Aspect Assessment
Verdict COMMENT
Confidence 4/5
Blocking Issues 1 (needs rebase)
Non-blocking Issues 2

Multi-AI analysis: Fork PR reviewed by CodeRabbit, Gemini, Qodo

Checklist

Check Result Notes
Correctness PASS rawInput preserves original API format without breaking existing behavior
Conventions PASS Follows existing patterns — originalName field uses same preservation strategy
Changeset MISSING No changeset included — needs one for kilo-code (patch)
Tests PASS Author included test verifying rawInput preserves line_ranges tuple format
i18n N/A No user-facing strings
Types NEEDS REBASE NotificationService.ts:13 type error — pre-existing on this branch, upstream main compiles clean
Security PASS No credential exposure, no new attack surface
Scope PASS Well-scoped — 4 files, each with a clear role

Findings

1. Needs rebase against current main (blocking)

The branch was created from an older commit. pnpm check-types fails with:

services/mcp/kilocode/NotificationService.ts(13,39): error TS2339:
Property 'message' does not exist on type '{ level: ... }'

This error does NOT exist on current upstream main (22/22 packages pass). The PR needs a rebase to pick up the fix.

Impact: No upstream CI ran (no checks reported on the 'fix/preserve-line-ranges-in-history' branch). Without CI, maintainers can't verify the PR passes. Rebasing will trigger CI automatically.

2. Missing changeset (non-blocking)

No changeset included. This modifies Task.ts behavior (how tool inputs are saved to conversation history), which affects the kilo-code package. A patch changeset is needed.

3. Fallback chain order matters (non-blocking, observation)

The new fallback in Task.ts:3559:

const input = toolUse.rawInput || toolUse.nativeArgs || toolUse.params

rawInput is only populated for native tool calls (via NativeToolCallParser.parseToolCall). XML-parsed tool calls won't have it, falling through to nativeArgs or params. This is correct — but worth confirming that non-native tool calls don't regress. The existing test suite (7524 tests) passes, which covers this.

Local Verification

We merged this PR on our fork and ran the full test suite.

Regression (existing tests)

Test Command Result Details
TypeScript pnpm check-types FAIL 19/20 pass — NotificationService.ts error (pre-existing on this branch, not from PR changes; upstream main passes 22/22)
Lint pnpm lint PASS 16/16 packages
Unit Tests pnpm test --continue PASS 7,524 tests, 0 failures

Why check-types fails but we're not blocking on it: The type error is in services/mcp/kilocode/NotificationService.ts, which this PR does not touch. Current upstream main compiles clean (22/22). The PR just needs a rebase to pick up the fix. This is standard for stale branches in active monorepos.

Behavioral (author's test)

Test Case Expected Result
rawInput preserves line_ranges: [[1920, 1990]] Original tuple format retained PASS
nativeArgs converts to lineRanges: [{start, end}] Converted object format for runtime PASS

Tested on fork branch review/PR-5370

CI Status

Check Result
Upstream CI NO CHECKS (branch too stale, needs rebase to trigger)
Fork CI PR #13
Local verification PASS (lint + tests), FAIL (check-types, pre-existing)

Code Analysis

Architecture

The fix adds a rawInput field to preserve the original API parameter format before internal transformations:

  1. tools.ts — Adds rawInput?: Record<string, unknown> to ToolUse interface
  2. NativeToolCallParser.ts — Populates rawInput with pre-transformation args
  3. Task.ts — Prefers rawInput when saving tool calls to conversation history

The key insight: the Anthropic API sends line_ranges: [[1, 50]] (snake_case, tuples). Internal processing converts to lineRanges: [{start: 1, end: 50}] (camelCase, objects). Without rawInput, the converted format gets saved back to conversation history, causing format inconsistency on subsequent API calls.

Design Assessment

  • Clean separation: rawInput stores originals, nativeArgs stores transformed, params stores legacy
  • Backward compatible: only populated for native tool calls, no impact on XML-parsed tools
  • Test coverage: author included a targeted test proving the preservation works

Verdict

COMMENT — The fix is well-designed and solves a real format inconsistency issue. The code passes all tests and follows existing patterns. However, the branch needs a rebase against current main to resolve the pre-existing type error and trigger upstream CI. A changeset is also needed. Once rebased, this should be a straightforward approval.


@jeremylongshore
Copy link
Copy Markdown
Owner Author

Review Journal: kilocode Kilo-Org#5370

PR: #5370 |
Author: @eliasyin | Size: 59 lines, 4 files | Confidence: 4/5

Summary

Preserves original API parameter format (line_ranges: [[1, 50]]) in conversation history instead of the internally transformed format (lineRanges: [{start: 1, end: 50}]). The fix adds a rawInput field to ToolUse that captures the pre-transformation arguments. COMMENT — needs rebase and changeset, but the code itself is clean.

What Changed

The Anthropic API returns tool parameters in snake_case with tuple arrays. Kilo Code's NativeToolCallParser transforms these into camelCase with object arrays for internal use. The problem: when saving tool calls back to conversation history for the next API turn, the transformed format was being used instead of the original. This PR adds a rawInput field that stores the original format before transformation.

Four files, each with a clear responsibility:

  1. tools.ts — Adds rawInput?: Record<string, unknown> to the ToolUse interface
  2. NativeToolCallParser.ts — Saves raw args to rawInput during parsing
  3. Task.ts — Uses rawInput (then nativeArgs, then params) when building history
  4. NativeToolCallParser.spec.ts — Test proving the preservation works

Verification

Regression (did we break anything?)

Test Command Result Details
TypeScript pnpm check-types FAIL 19/20 — NotificationService.ts error is pre-existing on this branch, not from PR. Upstream main passes 22/22.
Lint pnpm lint PASS 16/16 packages
Unit Tests pnpm test --continue PASS 7,524 tests, 0 failures

Behavioral (does the fix work?)

Test Assertion Result
rawInput preserves tuples line_ranges: [[1920, 1990]] stored as-is PASS
nativeArgs still transforms lineRanges: [{start: 1920, end: 1990}] for runtime PASS

Lessons Learned

  • Stale branches in active monorepos can have type errors that aren't related to the PR's changes. Always verify the error is in a file the PR touches before attributing it to the PR.
  • The NativeToolCallParserTask pipeline has three distinct representations of tool arguments: rawInput (API-original), nativeArgs (transformed), and params (legacy XML-parsed). The fallback chain rawInput || nativeArgs || params is the correct order.
  • No upstream CI means the branch needs a rebase. GitHub Actions only trigger when the branch is up-to-date enough to create a merge commit.

Review #20 of 75 | Multi-AI analysis | Methodology

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.

2 participants