This release includes 2 security fixes for security teams reviewing exposed deployments.
Topics
Affected surfaces
Summary
AI summaryUpdates New Features, Performance, and Bug Fixes across a mixed release.
Full changelog
What's New in v1.2.17
This release brings major provider expansion, MCP-powered agent tools, performance improvements, security hardening, and comprehensive test coverage.
New Providers
| Provider | Models |
|----------|--------|
| DeepSeek | DeepSeek V3 (general), DeepSeek R1 (reasoning with chain-of-thought) |
| Anthropic | Claude Sonnet 4.6, Claude Opus 4.6, Claude Haiku 4.5 |
| Z.AI China | GLM-5, GLM-4.7, GLM-4.7 Flash (via open.bigmodel.cn) |
| MiniMax China | MiniMax M2.5 (via api.minimaxi.com) |
All providers support both OpenAI-compatible and Anthropic API protocols where applicable. Switch with /provider.
New Features
MCP-Powered Agent Tools
When using Z.AI or Z.AI China, the agent now has access to:
web_search— Search the web for current informationweb_reader— Fetch and parse any URLunderstand_image— Analyze images via MiniMax vision API
/apply Command
Apply file changes from an AI response without re-running the agent:
> /apply
# Finds and applies code blocks from the last AI message
Word Navigation (macOS/Linux)
New keyboard shortcuts for faster input editing:
Alt+F/Opt+F— Move cursor forward one wordAlt+B/Opt+B— Move cursor backward one wordAlt+D/Opt+D— Delete word forward
Rate Limiter
Configurable per-minute rate limits for both API calls and agent commands — prevents runaway usage and API bans. Adjust in /settings.
Session History as Agent Context
The agent now receives recent chat session history as context, enabling better continuity across agent invocations within the same session.
Improvements
Performance
- Import resolution cache —
smartContext.tscaches resolved import paths in memory, avoiding repeated disk I/O on every agent iteration - Render optimization — Agent progress stats computed in a single
reduce()pass instead of 7 separate.filter()calls - Async I/O — All file system operations in the renderer now use async APIs
Security
- Shell injection prevention —
sanitizeForShellnow strips$(),${},$var,;,|,&&,||patterns from user input - Symlink traversal —
validatePathresolves symlinks viarealpathSyncto prevent path traversal attacks - Circular symlink detection —
listDirectorytracks visited inodes to prevent infinite loops on circular symlinks - Keychain fallback warning — Explicit warning logged when API keys fall back to plaintext config storage
Type Safety
- Replaced all
as anycasts inapi/index.tswith typedApiErrorandTimeoutErrorclasses shouldRetrynow uses properinstanceofchecks
Bug Fixes
- Fixed race condition in agent start —
isAgentRunningflag set synchronously before any async work JSON.parsecalls inproject.tsandlearning.tsnow wrapped in try-catch for corrupt file resilience- Fixed bracketed paste (Cmd+V) handling in terminal
Code Architecture
Large files split for better maintainability:
| Before | After |
|--------|-------|
| main.ts (2100 lines) | main.ts + commands.ts + agentExecution.ts |
| tools.ts (1600 lines) | tools.ts + toolParsing.ts + toolExecution.ts + mcpIntegration.ts |
| agent.ts (1400 lines) | agent.ts + agentChat.ts + agentStream.ts |
Tests
Test suite expanded from 577 → 721 tests across 23 test files:
| New Test File | Coverage |
|---|---|
| shell.test.ts | validateCommand, executeCommand, execSimple |
| keychain.test.ts | SmartStorage keychain/fallback/migration |
| agentChat.test.ts | loadProjectRules, formatChatHistoryForAgent |
| agentStream.test.ts | SSE stream parsing (OpenAI & Anthropic) |
| context.test.ts | Session context save/load/merge/summarize |
| learning.test.ts | Preference learning, custom rules |
| verify.test.ts | Build/test/typecheck detection |
| history.test.ts | Undo/redo action history |
| projectIntelligence.test.ts | Project scan & intelligence caching |
| api/index.test.ts | chat() retry logic, token tracking |
Installation
# npm
npm install -g codeep
# curl
curl -fsSL https://raw.githubusercontent.com/VladoIvankovic/Codeep/main/install.sh | bash
# Homebrew
brew upgrade codeep
Full changelog: https://github.com/VladoIvankovic/Codeep/compare/v1.2.0...v1.2.17
Security Fixes
- Sanitize shell input by stripping `$()`, `${}`, `$var`, `;`, `|`, `&&`, `||` patterns
- Resolve symlinks with realpathSync and detect circular symlink loops in listDirectory
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Codeep
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]