Skip to content
Back to Changelog

Automated changelog | Aug 15 - Aug 24 | 42 hours (5 active days)

Aug 23, 2025 v0.9.7

Automated changelog | Aug 15 - Aug 24 | 42 hours (5 active days)

This changelog summarizes significant changes across multiple application layers, primarily focusing on the script_editor feature’s enhancements and refactorings. A substantial portion of the effort involved consolidating and standardizing script parsing, improving performance, and enhancing the user experience.

I. UI Enhancements:

  • Color Scheme Updates (color_schemes.dart): The application’s light and dark color schemes have been revised. The primary, onPrimary, primaryFixed, onPrimaryFixed, onPrimaryFixedVariant, inversePrimary, and surfaceTint colors have been inverted in both light and dark modes to improve contrast and readability. This involved modifying the lightColorScheme and darkColorScheme constants. The impact is an improved visual appearance and better accessibility across the application.
  • Theme Service Enhancement (theme_service.dart): The ThemeService now explicitly sets the cursorColor property in both light and dark themes. The cursorColor for light mode is set to lightColorScheme.primary, and for dark mode it’s darkColorScheme.primary, aligning the cursor color with the primary theme color for improved visual clarity.
  • New Keyboard Shortcut Wrapper (keyboard_shortcut_wrapper.dart): A new reusable widget, KeyboardShortcutWrapper, has been added to manage common keyboard shortcuts (Enter, Shift+Enter) for overlay actions. The widget utilizes Focus and HardwareKeyboard.instance.logicalKeysPressed to detect and handle key events, invoking callbacks (onEnter, onShiftEnter) to perform specific actions. The onKeyEvent callback allows for custom key handling. The purpose is to standardize and improve keyboard interaction with overlays.
  • Navigation Rail Update (take_stack_navigation_rail.dart): The NavigationItemEnum has been updated to remove the scriptBreakdown enum value, consolidating it under scriptEditor. The _CineLogNavigationRailState now correctly handles 'script-breakdown' routes as scriptEditor for consistent navigation. The impact is a simplified navigation structure.

II. Unit Tests Reorganization:

  • Massive Test Suite Restructuring: A comprehensive reorganization of the Flutter test suite was undertaken, resulting in the deletion of 2,032 lines of code and addition of 490 lines across 73 files. This effort focused on eliminating redundant tests, consolidating scattered test files, and establishing a clear organizational structure.
  • Test File Consolidation: Multiple debug and experimental test files were removed from the root test directory and properly organized into feature-specific directories. Key consolidations include:
    • debug_* files (unicode, validation, input analysis, etc.) were either removed or integrated into proper test suites
    • Character validation tests were consolidated into dedicated domain utils tests
    • Parser-related tests were moved to appropriate parser subdirectories
    • Performance tests were reorganized under domain utils with clearer naming conventions
  • Improved Test Structure: Test files were renamed and relocated to follow consistent naming conventions and logical grouping:
    • test_performance.dartcharacter_validation_performance_test.dart
    • surgical_test.dartcomprehensive_character_validation_test.dart
    • test_dash_fix.dartdash_ending_validation_test.dart
    • test_dialogue_detection.dartdialogue_detection_test.dart
    • Multiple debug files moved from root to feature-specific directories
  • Test Data Cleanup: Removed obsolete test data files and consolidated parser testing utilities:
    • Eliminated redundant RTF test files and parser consolidation experiments
    • Removed unused test helpers and isolate support files
    • Cleaned up performance testing artifacts and duplicate test scripts
  • Character Validation Test Fixes: Updated character edge case test expectations to align with current isBasicCharacterName method behavior, ensuring test suite reliability:
    • Fixed expectations for names with special characters (ROBOT #1, SOLDIER #456)
    • Updated action description detection tests (SUDDENLY A LOUD NOISE, MONTAGE BEGINS)
    • Corrected character variation tests for period handling (JOHN JR., SMITH SR.)
    • Achieved 100% test pass rate (297 passing tests) by adjusting test expectations to match production code behavior
  • New Focused Test Coverage: Added targeted test files for specific functionality:
    • character_continuation_test.dart for character name continuation patterns
    • fountain_syntax_detector_test.dart for core syntax detection
    • validation_edge_cases_test.dart for boundary condition testing

The reorganization resulted in a cleaner, more maintainable test suite with improved discoverability and reduced redundancy, while maintaining comprehensive coverage of the script editor functionality.

Authentication

Log in or sign up

Verify your email to manage your workspaces and subscriptions.