Skip to content

v1.3.5 Release Notes

Release Date: February 10, 2026

Highlights

  • Windows UnicodeEncodeError fix - codescalpel init no longer crashes on non-UTF-8 systems
  • MCP auto-init fix - First-boot codescalpel mcp now scaffolds all 20 config files
  • Startup update check - Non-blocking PyPI version check notifies you of available updates
  • TOML config relocation - limits.toml and features.toml moved to source tree for cleaner packaging

Bug Fixes

Windows UnicodeEncodeError on codescalpel init

On Windows systems with non-UTF-8 default encodings (e.g., cp1252), running codescalpel init would crash with UnicodeEncodeError when writing configuration files containing Unicode characters.

All write_text() and read_text() calls in the init pipeline now explicitly specify encoding='utf-8'.

MCP Server Auto-Init Created Empty Directory

When running codescalpel mcp for the first time, the auto-init created the .code-scalpel/ directory but left it empty instead of scaffolding all 20 configuration files.

auto_init_config_dir() now delegates to init_config_dir() for the actual directory creation and file scaffolding.

New Features

Startup Update Check

The MCP server now checks PyPI for a newer version on startup:

  • Runs in a background thread with a 3-second timeout
  • Prints a notification if a newer version is available:
    Update available: v1.3.5 -> v1.4.0. Run: pip install --upgrade codescalpel
    
  • Silently skips on any failure (no network, timeout, parse error)
  • Opt out by setting CODE_SCALPEL_UPDATE_CHECK=0

Enhanced MCP Server Boot Banner

The MCP server startup banner now displays:

  • License tier (COMMUNITY, PRO, ENTERPRISE)
  • License file path (relative when inside the project)
  • Visual separators for better readability

Unicode Encoding Validation CI Job

A new CI job (scripts/validate_encoding.py) detects missing encoding= parameters in write_text() and read_text() calls across the codebase.

Changes

Architectural Refactor: TOML Config Relocation

Moved limits.toml and features.toml from .code-scalpel/ to src/code_scalpel/capabilities/:

  • Files now live in the source tree and are packaged automatically into the wheel
  • Removed the force-include build hack from pyproject.toml
  • Simplified config_loader.py by removing dev-only fallback search paths
  • Fixed -1 sentinel conversion in test helpers for proper "unlimited" handling

.gitignore Restructured

Replaced the blanket /.code-scalpel/ ignore with selective rules:

  • User-facing config files (config.json, governance.yaml, budget.yaml, etc.) are now properly tracked
  • Sensitive/runtime data (license/, cache/, audit.*, *.pem, *.jwt) remains ignored

Documentation Cleanup

Removed references to internal-only configuration files (limits.toml, features.toml) from the public website documentation. These files are package-managed and should not be edited by users.

Breaking Changes

None. v1.3.5 is fully backward compatible with v1.3.4.

Upgrade Guide

From v1.3.4

pip install --upgrade codescalpel

No configuration changes required.

Known Issues

  • Inherited from v1.3.0: path suggestions may be slow on very large workspaces (>10,000 files)

Full Changelog

See the detailed changelog for all changes.