58 lines
2.9 KiB
Markdown
58 lines
2.9 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [Unreleased]
|
|
|
|
### Added
|
|
- Security module (`security.py`) with path traversal protection and command injection prevention
|
|
- Centralized configuration (`config.py`) with environment variable support
|
|
- `.env.example` for environment variable documentation
|
|
- Path validation for all file operations (`drawing_open`, `drawing_save`, `drawing_export_*`)
|
|
- Command sanitization for `system_run_command` and `system_run_lisp`
|
|
- Ruff linting configuration in `pyproject.toml`
|
|
- Pre-commit hooks (`.pre-commit-config.yaml`) for automated code quality
|
|
- pytest-cov for test coverage reporting
|
|
- Comprehensive test suite: 95 tests across 7 test files
|
|
- `test_entity_creation.py` — 13 entity creation tests
|
|
- `test_drawing.py` — 8 drawing operation tests
|
|
- `test_dimensions.py` — 5 dimension tests
|
|
- `test_layer_block.py` — 12 layer and block tests
|
|
- `test_analysis.py` — 12 analysis and modification tests
|
|
- `test_security.py` — 29 security tests
|
|
- GitHub Actions CI workflow (lint + test on Python 3.11/3.12)
|
|
- README.md with full documentation
|
|
- CHANGELOG.md
|
|
- `.gitignore`
|
|
|
|
### Changed
|
|
- All silent `except Exception: pass` blocks now include logging
|
|
- Removed unused imports across all source files
|
|
- Renamed ambiguous variable `l` to `lyr` in layer iteration code
|
|
- Import sorting organized with ruff isort rules
|
|
|
|
### Fixed
|
|
- `_detect_autocad_running` now logs detection failures instead of silently swallowing them
|
|
- Resource functions now log errors before returning error JSON
|
|
|
|
## [1.0.0] — 2026-03-01
|
|
|
|
### Added
|
|
- Initial release with 67 tools, 6 resources, 5 prompt templates
|
|
- Dual-engine architecture: COM backend (live AutoCAD) + ezdxf backend (headless)
|
|
- FastMCP 3.0 server with middleware stack (error handling, audit, timing, logging)
|
|
- Drawing management: new, open, save, save-as, export DXF/PDF, purge, audit, undo/redo
|
|
- Entity creation: line, circle, arc, polyline, rectangle, text, mtext, hatch, spline, ellipse, point, block reference
|
|
- Dimensions: linear, aligned, angular, radius, diameter
|
|
- Entity modification: move, copy, rotate, scale, mirror, offset, delete, rectangular/polar array
|
|
- Layer management: create, delete, set current, modify, freeze/thaw, lock/unlock, hide/show, isolate
|
|
- Block operations: list, insert, explode, attributes, create from entities, find references
|
|
- Analysis: entity stats, region search, distance/area measurement, bounding box, select by layer/type
|
|
- View control: zoom extents/window, screenshot
|
|
- Transaction support: begin, commit, rollback
|
|
- System tools: status, variables, command execution, AutoLISP evaluation
|
|
- 5 prompt templates: floor plan, P&ID, electrical schematic, mechanical drawing, quick drawing
|