diff --git a/CHANGELOG.md b/CHANGELOG.md index 77115e4..37d0288 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,30 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased] ### Added +- **Symbol CRUD Operations:** Full create/rename/delete support for symbols and labels: + - `symbols_create` - Create new label/symbol at an address + - `symbols_rename` - Rename existing symbol + - `symbols_delete` - Delete symbol at an address + - `symbols_imports` - List imported symbols with pagination + - `symbols_exports` - List exported symbols with pagination +- **Bookmark Management:** Tools for managing Ghidra bookmarks: + - `bookmarks_list` - List bookmarks with type/category filtering + - `bookmarks_create` - Create bookmark at address (Note, Warning, Error, Info types) + - `bookmarks_delete` - Delete bookmarks at an address +- **Enum & Typedef Creation:** Data type creation tools: + - `enums_create` - Create new enum data type + - `enums_list` - List enum types with members + - `typedefs_create` - Create new typedef + - `typedefs_list` - List typedef data types +- **Variable Management:** Enhanced variable operations: + - `variables_list` - List variables with global_only filter + - `variables_rename` - Rename and retype function variables + - `functions_variables` - List local variables and parameters for a function +- **Namespace & Class Tools:** + - `namespaces_list` - List all non-global namespaces + - `classes_list` - List class namespaces with qualified names +- **Memory Segment Tools:** + - `segments_list` - List memory segments with R/W/X permissions and size info - **Progress Reporting for Long Operations:** 7 MCP prompts now report real-time progress during multi-step scanning operations: - `malware_triage` - Reports progress across 21 scanning steps - `analyze_imports` - Reports progress across 12 capability categories @@ -33,6 +57,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - `document_struct` - Comprehensively document data structure fields and usage - `find_error_handlers` - Map error handling, cleanup routines, and exit paths +### Changed +- **Docker Port Allocation:** Ports are now auto-allocated from pool (8192-8223) instead of client-specified. Prevents session collisions in multi-agent environments. +- **docker_auto_start:** Default `wait=False` for immediate return. Use `docker_wait` separately to poll for container readiness. + +### Fixed +- **instances_use Hanging:** Eliminated 4+ hour hangs by removing blocking HTTP call. Now uses lazy registration — just creates a stub entry, validates on first real tool call. +- **Event Loop Blocking:** `docker_health` now runs HTTP checks in thread executor via `run_in_executor()`, preventing MCP server freeze during health polling. +- **Session Isolation:** `docker_stop` now validates container belongs to current session before stopping. `docker_cleanup` defaults to `session_only=True` to prevent cross-session interference. +- **Background Discovery Thread:** Fixed timeout from 30s to 0.5s for port scanning, reducing discovery cycle from 300s+ to ~15s. +- **Typedef/Variable Type Resolution:** Fixed `handle_typedef_create` and `handle_variable_rename` to use shared `resolve_data_type()` for builtin types (int, char, etc.). + ## [2025.12.1] - 2025-12-01 ### Added