The renderer was reading config/models.json via workspace:readFile and
manually parsing the provider/model structure. This moves that logic into
a dedicated models:getConfiguredModels IPC handler backed by a new
getAllConfiguredModels() method on the model config repo, matching the
existing models:saveConfig pattern.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix URL construction in composioApiCall to preserve base path (/api/v3)
- Make ZToolkit and ZTool schema fields optional to match actual API responses
- Fix error detection to not trigger on successful responses with null error
- Fix executeAction calls in sync_gmail to use correct request object shape
- Use .successful instead of .success to match ZExecuteActionResponse schema
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* agent slack
* add to settings
* select workspace
* skill changes
* chain commands
* fix: Use Git Bash on Windows instead of hardcoded /bin/sh for command execution
* Refactor command execution shell handling
Replace the getShell() function with EXECUTION_SHELL for consistency in command execution. This change simplifies the code and aligns with the recent updates from the dev branch.
---------
Co-authored-by: Tushar Magar <tushmag@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Detect the runtime platform and default shell at startup, inject
platform context into assistant instructions, and replace hardcoded
/bin/sh with the detected shell in command executors (cli + electron).
Made-with: Cursor
Session-scoped permissions are stored in the run log and rebuilt by
the state-builder, scoping them to a single run. Always-scoped
permissions persist to security.json. The backend derives command
names from the run log instead of receiving them from the frontend.
Uses regex-based command parsing with subshell/parenthesis support.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>