fix(bash): make description parameter optional in bash tool#13832
Open
hobostay wants to merge 3 commits intoanomalyco:devfrom
Open
fix(bash): make description parameter optional in bash tool#13832hobostay wants to merge 3 commits intoanomalyco:devfrom
hobostay wants to merge 3 commits intoanomalyco:devfrom
Conversation
This commit fixes multiple translation issues in the Russian zen.mdx file: **Critical fixes:** - Change "Открытый код" to "OpenCode" (product name should not be translated) - Change "opencode" to "OpenCode" throughout the document for consistency - Fix broken sentence structure on line 24-25 - Fix "обслуживаются. правильно." to "обслуживаются правильно." - Fix broken instruction text in "How it works" section **Terminology improvements:** - Change "агентов кодирования" to "кодинг-агентов" (more natural Russian) - Change "курировать модели" to "выбирать модели" (correct word choice) - Change "автоматическая перезагрузка" to "автопополнение" (correct meaning) - Change "Принесите свой ключ" to "Использование собственных API-ключей" (more professional) - Change "Дзен" to "Zen" (product name consistency) **Content updates:** - Add missing GLM 5 model to endpoint table - Add missing MiniMax M2.5 models to endpoint table - Update pricing table with new GLM 5 and MiniMax M2.5 entries - Update free models list to match current offering - Update privacy section to remove deprecated models - Fix grammar error "Мы будем скоро поделимся" to "Мы вскоре поделимся" These changes improve readability, consistency, and accuracy of the Russian translation while aligning it with the English source document. Fixes anomalyco#13808 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit adds a comprehensive keybinds reference section to the keybinds documentation, making it easier for users to understand what each keybind does. **Changes:** - Added "Keybinds reference" section after the config example - Organized keybinds into logical categories: - Application & UI (13 keybinds) - Session management (17 keybinds) - Messages & navigation (17 keybinds) - Model & agent management (12 keybinds) - Input editing (6 keybinds) - Cursor movement (12 keybinds) - Text selection (11 keybinds) - Text deletion (7 keybinds) - History (2 keybinds) - Each entry includes the keybind name, default value, and description - Descriptions are sourced directly from the config schema definitions This addresses issue anomalyco#13792 where users requested better documentation of keybind actions alongside their default values. Fixes anomalyco#13792 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The `description` parameter was marked as required in the schema but was not properly exposed to the AI model, causing ALL bash commands to fail with a Zod validation error. **Changes:** - Made `description` parameter optional by adding `.optional()` - Added fallback to `params.command` when description is not provided - This affects 4 locations where description was used: - Initial metadata setup (line 184) - Metadata updates during command execution (line 194) - Return value title (line 259) - Return value metadata (line 263) **Impact:** - Bash commands now work without requiring the description parameter - When description is not provided, it defaults to the command string - Backward compatible: existing calls with description still work **Root cause:** The bash tool defined `description` as a required `z.string()` but the tool schema exposed to the AI did not include this parameter. This meant the AI had no way to know it needed to pass this field, resulting in validation errors for every bash call. Fixes anomalyco#13146 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Contributor
|
The following comment was made by an LLM, it may be inaccurate: I found one highly relevant PR that should be investigated: Potential Duplicate Found:
Recommendation: Check PR #11605 to see if it was already closed/merged or if it needs to be reapplied. If it's an open/merged PR that attempts to fix the same issue, your PR #13832 may be a duplicate or addressing the same root cause. |
6 tasks
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
This PR fixes a critical bug where the bash tool's
descriptionparameter was marked as required but not exposed to the AI model, causing ALL bash commands to fail with a Zod validation error.The Bug
When running any bash command (even simple ones like
ls -la), the AI would receive:This completely broke the bash tool - one of OpenCode's most fundamental tools.
Root Cause
In
packages/opencode/src/tool/bash.ts, thedescriptionparameter was defined as:However, this parameter was not included in the tool schema exposed to the AI model, so the AI had no way to know it needed to pass it.
The Fix
Made
descriptionoptional and added fallback toparams.command:Added fallback values in 4 locations where description is used:
params.description ?? params.commandparams.description ?? params.commandparams.description ?? params.commandparams.description ?? params.commandImpact
✅ Bash commands now work without requiring the description parameter
✅ When description is not provided, it defaults to the command string
✅ Backward compatible: existing code that passes description still works
✅ Unblocks the bash tool - users can now run shell commands again
Test plan
descriptionis now optional in the schemaparams.descriptionFixes #13146
🤖 Generated with Claude Code