From 174ce0a8fd45da4d104a3d16705a22e6dfae4930 Mon Sep 17 00:00:00 2001 From: yusyus Date: Mon, 2 Feb 2026 23:10:00 +0300 Subject: [PATCH] docs: Update CHANGELOG with C3.10 Signal Flow Analysis and Godot features --- CHANGELOG.md | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 82452f8..d813dd0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,57 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +#### C3.10: Signal Flow Analysis for Godot Projects +- **Complete Signal Flow Analysis System**: Analyze event-driven architectures in Godot game projects + - Signal declaration extraction (`signal` keyword detection) + - Connection mapping (`.connect()` calls with targets and methods) + - Emission tracking (`.emit()` and `emit_signal()` calls) + - **208 signals**, **634 connections**, and **298 emissions** detected in test project (Cosmic Idler) + - Signal density metrics (signals per file) + - Event chain detection (signals triggering other signals) + - Output: `signal_flow.json`, `signal_flow.mmd` (Mermaid diagram), `signal_reference.md` + +- **Signal Pattern Detection**: Three major patterns identified + - **EventBus Pattern** (0.90 confidence): Centralized signal hub in autoload + - **Observer Pattern** (0.85 confidence): Multi-observer signals (3+ listeners) + - **Event Chains** (0.80 confidence): Cascading signal propagation + +- **Signal-Based How-To Guides (C3.10.1)**: AI-generated usage guides + - Step-by-step guides (Connect → Emit → Handle) + - Real code examples from project + - Common usage locations + - Parameter documentation + - Output: `signal_how_to_guides.md` (10 guides for Cosmic Idler) + +#### Godot Game Engine Support +- **Comprehensive Godot File Type Support**: Full analysis of Godot 4.x projects + - **GDScript (.gd)**: 265 files analyzed in test project + - **Scene files (.tscn)**: 118 scene files + - **Resource files (.tres)**: 38 resource files + - **Shader files (.gdshader, .gdshaderinc)**: 9 shader files + - **C# integration**: Phantom Camera addon (13 files) + +- **GDScript Language Support**: Complete GDScript parsing with regex-based extraction + - Dependency extraction: `preload()`, `load()`, `extends` patterns + - Test framework detection: GUT, gdUnit4, WAT + - Test file patterns: `test_*.gd`, `*_test.gd` + - Signal syntax: `signal`, `.connect()`, `.emit()` + - Export decorators: `@export`, `@onready` + - Test decorators: `@test` (gdUnit4) + +- **Game Engine Framework Detection**: Improved detection for Unity, Unreal, Godot + - **Godot markers**: `project.godot`, `.godot` directory, `.tscn`, `.tres`, `.gd` files + - **Unity markers**: `Assembly-CSharp.csproj`, `UnityEngine.dll`, `ProjectSettings/ProjectVersion.txt` + - **Unreal markers**: `.uproject`, `Source/`, `Config/DefaultEngine.ini` + - Fixed false positive Unity detection (was using generic "Assets" keyword) + +- **GDScript Test Extraction**: Extract usage examples from Godot test files + - **396 test cases** extracted from 20 GUT test files in test project + - Patterns: instantiation (`preload().new()`, `load().new()`), assertions (`assert_eq`, `assert_true`), signals + - GUT framework: `extends GutTest`, `func test_*()`, `add_child_autofree()` + - Test categories: instantiation, assertions, signal connections, setup/teardown + - Real code examples from production test files + #### C3.9: Project Documentation Extraction - **Markdown Documentation Extraction**: Automatically extracts and categorizes all `.md` files from projects - Smart categorization by folder/filename (overview, architecture, guides, workflows, features, etc.) @@ -70,11 +121,59 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Increased default batch size from 5 to 20 patterns for LOCAL mode ### Fixed + +#### Godot Game Engine Fixes +- **GDScript Dependency Extraction**: Fixed 265+ "Syntax error in *.gd" warnings (commit 3e6c448) + - GDScript files were incorrectly routed to Python AST parser + - Created dedicated `_extract_gdscript_imports()` with regex patterns + - Now correctly parses `preload()`, `load()`, `extends` patterns + - Result: 377 dependencies extracted with 0 warnings + +- **Framework Detection False Positive**: Fixed Unity detection on Godot projects (commit 50b28fe) + - Was detecting "Unity" due to generic "Assets" keyword in comments + - Changed Unity markers to specific files: `Assembly-CSharp.csproj`, `UnityEngine.dll`, `Library/` + - Now correctly detects Godot via `project.godot`, `.godot` directory + +- **Circular Dependencies**: Fixed self-referential cycles (commit 50b28fe) + - 3 self-loop warnings (files depending on themselves) + - Added `target != file_path` check in dependency graph builder + - Result: 0 circular dependencies detected + +- **GDScript Test Discovery**: Fixed 0 test files found in Godot projects (commit 50b28fe) + - Added GDScript test patterns: `test_*.gd`, `*_test.gd` + - Added GDScript to LANGUAGE_MAP + - Result: 32 test files discovered (20 GUT files with 396 tests) + +- **GDScript Test Extraction**: Fixed "Language GDScript not supported" warning (commit c826690) + - Added GDScript regex patterns to PATTERNS dictionary + - Patterns: instantiation (`preload().new()`), assertions (`assert_eq`), signals (`.connect()`) + - Result: 22 test examples extracted successfully + +- **Config Extractor Array Handling**: Fixed JSON/YAML array parsing (commit fca0951) + - Error: `'list' object has no attribute 'items'` on root-level arrays + - Added isinstance checks for dict/list/primitive at root + - Result: No JSON array errors, save.json parsed correctly + +- **Progress Indicators**: Fixed missing progress for small batches (commit eec37f5) + - Progress only shown every 5 batches, invisible for small jobs + - Modified condition to always show for batches < 10 + - Result: "Progress: 1/2 batches completed" now visible + +#### Other Fixes - **C# Test Extraction**: Fixed "Language C# not supported" error with language alias mapping - **Config Type Field Mismatch**: Fixed KeyError in `config_enhancer.py` by supporting both "type" and "config_type" fields - **LocalSkillEnhancer Import**: Fixed incorrect import and method call in `main.py` (SkillEnhancer → LocalSkillEnhancer) - **Code Quality**: Fixed 4 critical linter errors (unused imports, variables, arguments, import sorting) +### Tests +- **GDScript Test Extraction Test**: Added comprehensive test case for GDScript GUT/gdUnit4 framework + - Tests player instantiation with `preload()` and `load()` + - Tests signal connections and emissions + - Tests gdUnit4 `@test` annotation syntax + - Tests game state management patterns + - 4 test functions with 60+ lines of GDScript code + - Validates extraction of instantiations, assertions, and signal patterns + ### Removed - Removed client-specific documentation files from repository