v1.3.1
[1.3.1] - 2025-06-02
π Bug Fixes - Windows Path Compatibility
- Log File Path Handling: Fixed Windows path compatibility issues in logging system
- Relative Path Recording: Changed from absolute to relative paths in unresolved case logs
- Cross-platform File Names: Enhanced filename sanitization to handle Windows path separators
- Log File Creation: Added project name sanitization for safe log file creation
π§ Technical Improvements
- Enhanced Filename Sanitization: Updated regex pattern from
[^a-zA-Z0-9.-]to[^a-zA-Z0-9._-] - Relative Path Storage: Log entries now store
src/test/java/com/example/Test.javainstead of full paths - Project Name Cleaning: Automatic removal of invalid characters from project names in log filenames
π Cross-Platform Benefits
- β
Windows: Log files now correctly handle
C:\Users\...style paths - β Unix/Linux/macOS: Maintains full backward compatibility
- β JSON Compatibility: Eliminates escaping issues with backslashes in JSON output
π Log File Improvements
{
"unresolvedCases": [
{
"fileName": "src/test/java/com/example/Test.java", // β
Relative path
"className": "com.example.Test",
"methodName": "testMethod"
}
]
}Before (v1.3.0): "fileName": "C:\\Users\\user\\project\\src\\test\\java\\Test.java" β
After (v1.3.1): "fileName": "src/test/java/Test.java" β
[1.3.0] - 2025-06-02
π Major Features
- Runtime Logging System: Added comprehensive analysis session logging
- Execution Time Tracking: Automatic recording of start time, end time, and duration
- Test Case Statistics: Total and processed test case counts
- Unresolved Invocation Detection: Automatic detection and detailed tracking of unresolved method calls
- Structured Log Output: JSON format log files saved to
<output_dir>/<project_name>-log.json
β¨ New Features
- LogData Class: Dedicated data structure for logging analysis session information
- Smart Status Tracking: RUNNING β COMPLETED/FAILED/INTERRUPTED status progression
- Unresolved Code Analysis: Identifies and catalogues:
UNRESOLVED_INVOCATION- Method calls that couldn't be resolvedUNRESOLVED_CONSTRUCTOR- Constructor calls that couldn't be resolvedUNRESOLVED_METHOD_REF- Method references that couldn't be resolvedMETHOD_NOT_FOUND_IN_SOURCE- Methods not found in source codeSOURCE_FILE_NOT_FOUND- Source files that couldn't be located
- Graceful Interruption Handling: Shutdown hooks to save logs even when interrupted
- Project Context Integration: LogData integrated into ProjectCtx for task access
π§ Technical Improvements
- Exception Handling: Robust error handling with detailed error message logging
- Cross-platform Compatibility: All logging functionality works on Windows/Linux/macOS
- Memory Efficient: Streaming JSON output without memory overhead
- Thread Safe: Volatile flags for proper multi-threading support
π Log File Structure
{
"projectName": "example-project",
"taskName": "ParseTestCaseToLlmContext",
"startTime": "2025-06-02T01:42:33",
"endTime": "2025-06-02T01:42:34",
"durationMs": 1243,
"totalTestCases": 3,
"processedTestCases": 3,
"unresolvedInvocationCount": 2,
"unresolvedCases": [
{
"className": "com.example.SampleTest",
"methodName": "testWithUnresolvedCode",
"fileName": "/path/to/SampleTest.java",
"startLine": 14,
"endLine": 22,
"unresolvedCount": 2,
"unresolvedInvocations": [
"UNRESOLVED_CONSTRUCTOR: new SomeUnknownClass()#[17-17]",
"UNRESOLVED_INVOCATION: unknown.someMethod()#[18-18]"
]
}
],
"status": "COMPLETED"
}π― Use Cases
- Performance Monitoring: Track analysis execution time across different projects
- Quality Assessment: Identify test cases with resolution issues
- Problem Debugging: Pinpoint exact locations of unresolved method calls
- Project Analytics: Generate reports on test coverage and code quality