Merge feature/fix-csharp-and-config-type-bugs: C3.10 Signal Flow + Complete Godot Support

Features:
- C3.10: Signal Flow Analysis for Godot projects (208 signals, 634 connections)
- Complete Godot game engine support (.gd, .tscn, .tres, .gdshader)
- GDScript dependency extraction with preload/load/extends patterns
- GDScript test extraction (GUT, gdUnit4, WAT frameworks)
- Signal-based how-to guides generation

Fixes:
- GDScript dependency extraction (265+ syntax errors eliminated)
- Framework detection false positive (Unity → Godot)
- Circular dependency detection (self-loops filtered)
- GDScript test discovery (32 test files found)
- Config extractor array handling (JSON/YAML root arrays)
- Progress indicators for small batches

Tests:
- Added comprehensive GDScript test extraction test case
- 396 test cases extracted from 20 GUT test files
This commit is contained in:
yusyus
2026-02-02 23:10:51 +03:00
16 changed files with 1574 additions and 149 deletions

View File

@@ -17,6 +17,57 @@ This release brings powerful new code analysis features, performance optimizatio
### 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.)
@@ -74,7 +125,7 @@ This release brings powerful new code analysis features, performance optimizatio
- Updated documentation with GLM-4.7 configuration examples
- Rewritten LOCAL mode in `config_enhancer.py` to use Claude CLI properly with explicit output file paths
- Updated MCP `scrape_codebase_tool` with `skip_docs` and `enhance_level` parameters
- Updated CLAUDE.md with C3.9 documentation extraction feature and --enhance-level flag
- Updated CLAUDE.md with C3.9 documentation extraction feature
- Increased default batch size from 5 to 20 patterns for LOCAL mode
### Fixed
@@ -83,19 +134,61 @@ This release brings powerful new code analysis features, performance optimizatio
- **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)
#### 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
### 🙏 Contributors
A huge thank you to everyone who contributed to this release:
- **[@xuintl](https://github.com/xuintl)** - Chinese README improvements and documentation refinements
- **[@Zhichang Yu](https://github.com/yuzhichang)** - GLM-4.7 support and PDF scraper fixes
- **[@YusufKaraaslanSpyke](https://github.com/yusufkaraaslan)** - Core features, bug fixes, and project maintenance
Special thanks to all our community members who reported issues, provided feedback, and helped test new features. Your contributions make Skill Seekers better for everyone! 🎉
---
## [2.7.4] - 2026-01-22