Initial commit

This commit is contained in:
U-C4N
2026-04-27 12:20:57 +03:00
commit 7b121ab416
49 changed files with 9904 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
# 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