From f1986db6cc5fd97fd1e813ac3d173f8d955b160c Mon Sep 17 00:00:00 2001 From: Ryan Malloy Date: Thu, 5 Feb 2026 10:39:18 -0700 Subject: [PATCH] docs: Update CHANGELOG with Sprint 3+4 features and stability fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added: - Symbol CRUD operations (create/rename/delete/imports/exports) - Bookmark management tools - Enum and typedef creation - Variable management (list/rename/functions_variables) - Namespace and class tools - Memory segment tools Changed: - Docker port allocation now auto-allocated from pool (8192-8223) - docker_auto_start defaults to wait=False Fixed: - instances_use hanging (lazy registration pattern) - Event loop blocking in docker_health (run_in_executor) - Session isolation for docker_stop/docker_cleanup - Background discovery thread timeout (30s → 0.5s) - Typedef/variable type resolution --- CHANGELOG.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) 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