Skip to content

Conversation

@bhowiebkr
Copy link
Owner

Summary

Flow Format Implementation: Complete transition from JSON to human-readable Markdown (.md) format for graph files
Comprehensive Testing Suite: Added extensive GUI loading test framework with root cause analysis
Architecture Improvements: Enhanced node layout system, GUI refresh logic, and modular component structure
Claude Code Integration: Configured attribution settings and git hooks for clean commit messages

Key Features

Flow Format Support

  • New .md file format with structured markdown for better readability and version control
  • Bidirectional conversion between JSON and Flow format
  • Updated all example files to new format (9 examples converted)
  • Maintained backward compatibility with existing JSON files

Testing Framework

  • 6 comprehensive test suites covering GUI loading, pin creation, and rendering
  • Interactive test runner scripts with diagnostic capabilities
  • Root cause analysis identifying pin categorization bugs (not GUI rendering issues)
  • 3,000+ lines of test code with detailed documentation

Architecture Enhancements

  • Modular component separation (execution_controller.py, ui_utils.py, view_state_manager.py)
  • Improved node layout and refresh systems
  • Enhanced file operations with format detection
  • Better error handling and user feedback

Test Plan

  • Run comprehensive GUI loading tests (run_quick_test.bat)
  • Verify flow format conversion accuracy
  • Test backward compatibility with JSON files
  • Validate node layout improvements
  • Confirm Claude Code settings work correctly
  • All existing functionality preserved

Files Changed

Core Architecture: 8 files modified/added for modular design
Flow Format System: 3 new files (flow_format.py, flow_spec.md, file_operations.py)
Example Files: 9 examples converted from JSON to Markdown format
Testing Suite: 12 test files and documentation added
Infrastructure: Updated .gitignore, requirements.txt, CLAUDE.md

Bryan Howard and others added 13 commits August 12, 2025 23:07
- Change .flow file format to .md file format throughout
- Update comments and docstrings to reflect .md extension
- Handler now processes .md markdown format instead of .flow format

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Change file dialog filters from .flow to .md extension
- Update save/load logic to handle .md format instead of .flow
- Update default example file reference to use .md extension
- Change comments to reflect .md file format support

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Change specification title from .flow to .md file format
- Update file extension field to .md
- Update references throughout specification document
- Maintain same format structure with new extension

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add event system documentation for live mode support
- Document execution modes (Batch and Live)
- Add testing section with test_execution_flow.py
- Update development notes with dependency management

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Extract UI creation logic into separate utility modules
- Split file operations into dedicated FileOperationsManager
- Create ExecutionController for handling graph execution
- Add ViewStateManager for view state persistence
- Simplify main window class by delegating to specialized managers
- Improve code organization and separation of concerns

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add markdown-it-py to requirements.txt for parsing markdown files
- Required for FlowSpec .md file format handling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- execution_controller.py: Manages graph execution in batch and live modes
- ui_utils.py: Utility functions for UI creation and Font Awesome icons
- view_state_manager.py: Handles view state persistence and restoration
- examples/password_generator_tool.md: Convert example to new .md format

These components improve code organization and maintainability by
separating concerns from the main window class.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Change double-escaped character codes from "\uf15b" to "\uf15b"
- Fixes icon rendering issues where icons appeared malformed
- Affects file, save, copy, and folder icons in toolbar

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Remove all old JSON example files
- Add comprehensive markdown examples with technical descriptions
- Update existing password_generator_tool.md with technical details
- All descriptions focus on implementation specifics: Python functions, data types, algorithms, GUI components
- Remove marketing language and fluff, replace with programmer-focused technical content

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Fix reroute node serialization: preserve is_reroute flag in markdown metadata during save/load operations
- Fix GUI rendering: apply saved node size after GUI construction with validation to prevent zero-height nodes
- Add size validation to only apply saved dimensions when they are positive values
- Ensure reroute nodes are properly identified and handled in markdown format

These fixes resolve issues where:
1. Reroute nodes lost their routing functionality when saved/loaded from markdown files
2. Nodes loaded from markdown had incorrect GUI rendering with zero height

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Replace complex GUI refresh workaround with simpler approach that relies on existing deferred sizing fix from v0.5.0. This reduces code complexity while maintaining proper node rendering.
- Simplify node deserialization by removing size validation checks
- Update final_load_update to use proper layout rebuild process matching manual resize behavior
- Add .claude_code/ to .gitignore to exclude Claude Code configuration files
This commit introduces a complete testing framework for diagnosing and fixing GUI-related loading issues in PyFlowGraph's markdown format support.

Test Suite Components:
- test_gui_loading.py: Comprehensive GUI loading test suite with advanced scenarios
- test_gui_loading_bugs.py: Core bug detection tests for basic GUI functionality
- test_gui_rendering.py: Visual rendering verification tests
- test_specific_gui_bugs.py: Targeted tests for reported GUI loading issues
- test_pin_creation_bug.py: Root cause analysis tests for pin categorization bugs

Test Infrastructure:
- run_quick_test.bat: Fast diagnosis script for common issues
- run_tests.bat: Interactive test menu system
- run_gui_test.bat: GUI-specific test runner

Documentation:
- FINAL_TEST_SUMMARY.md: Investigation results identifying pin categorization as root cause
- TEST_GUI_LOADING.md: Comprehensive test strategy and methodology documentation
- TEST_RUNNER_README.md: Test execution guide and troubleshooting instructions

Key Findings:
The test suite revealed that reported "GUI loading failures" are actually caused by pin direction categorization bugs during markdown deserialization, not GUI rendering issues. This affects node connectivity and layout, making nodes appear broken when GUI components are actually functioning correctly.
@bhowiebkr bhowiebkr merged commit 4f3ac42 into main Aug 13, 2025
@bhowiebkr bhowiebkr deleted the flow-format branch August 13, 2025 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants