-
-
Notifications
You must be signed in to change notification settings - Fork 6
Flow format #30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Flow format #30
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- 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.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
.mdfile format with structured markdown for better readability and version controlTesting Framework
Architecture Enhancements
Test Plan
run_quick_test.bat)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