# 🚀 CodeBuddy Code v2.91.0 Release

## ✨ New Features

### Canvas Terminal

The brand-new `#/canvas` view supports freely arranging multiple terminal tiles on an infinite canvas. Key features:

- Drag to move and 8-directional resize
- Grid snapping for a tidy layout
- Zoom and pan for easy management of many terminals
- Box selection and per-pane terminal title display

### Pre-Message Compression

Before sending a message, the system automatically detects the context ratio. When it exceeds the threshold (default 10%), the context is compressed first to prevent oversized context from degrading conversation quality. After compression, the original message is processed directly without any additional recovery steps. You can customize the threshold via the `CODEBUDDY_PRE_MESSAGE_COMPACT_PCT` environment variable.

## 🔧 Improvements

- **Permission Security Hardening**: HIGH-level dangerous commands (e.g., sudo, rm -rf) now require user confirmation even in bypass mode, enhancing command execution safety. Users can customize overrides via allow rules in the configuration
- **DeferExecuteTool Permission Enhancement**: Supports more flexible permission rule matching, such as `DeferExecuteTool(*)` and `DeferExecuteTool(TeamCreate)`
- **New Model Support**: Added GLM-4.7 and other large language models
- **MCP Tool List Fallback**: When a MCP Server's listTools call fails, it automatically falls back to cached results with a cooldown period to avoid frequent retries
- **Installation Script Optimization**: Download source switched to a globally accelerated domain, improving installation speed for overseas users
- **Context Usage Query Fix**: Fixed a broken chain traversal issue after resume, ensuring complete usage data
- **SDK Cache Fields**: Properly populate cache-related token statistics in messages, replacing previous empty values

## 🐛 Bug Fixes

- **Headless Mode Proxy Connection**: Fixed MCP connection failures in proxy environments by correctly bundling undici in headless builds
