Skip to content

v1.3.1

Choose a tag to compare

@Codegass Codegass released this 02 Jun 05:58
· 1 commit to main since this release

[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.java instead 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 resolved
    • UNRESOLVED_CONSTRUCTOR - Constructor calls that couldn't be resolved
    • UNRESOLVED_METHOD_REF - Method references that couldn't be resolved
    • METHOD_NOT_FOUND_IN_SOURCE - Methods not found in source code
    • SOURCE_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