Commit aaeb826
Enhance file organizer workflow and refactor node architecture for v0.8.0 (#34)
* Add comprehensive environment management system with default and graph-specific environments
* Fix virtual environment path resolution for development and compiled modes
* Fix environment selection dialog timing - defer until after GUI loads
* Update main application for environment system compatibility
* Improve toolbar layout and radio button styling
- Move execution controls to right side of toolbar with spacer
- Fix radio buttons to always use circular indicators
- Improve text contrast and readability for execution mode selection
- Add proper hover states and consistent sizing for radio buttons
* Optimize live mode performance and reduce button click delays
- Add UI update throttling to prevent redundant live mode updates
- Cache environment validation results to avoid repeated file system checks
- Optimize event handler setup to be incremental, not full rebuild
- Reduce logging spam during live mode activation
- Keep event handlers persistent for faster mode switching
- Fix performance regression introduced by environment management system
* Improve execution button visibility and remove emoji icons
- Change button text color to black for better visibility on bright backgrounds
- Remove emoji icons from all execution button text states
- Keep white text only on red (paused) button for contrast
- Update all button states: Execute Graph, Start Live Mode, Pause/Resume, etc.
* Rename Run menu to Environment menu for better clarity
- Changed 'Run' menu to 'Environment' menu since it only contains environment management
- More descriptive and intuitive menu organization
- Better reflects the actual functionality contained within
* Implement comprehensive graph description editing and fix paragraph spacing
- Add graph description extraction from markdown H1 titles and following paragraphs
- Implement Graph Properties dialog accessible via File → Graph Properties menu
- Fix paragraph spacing preservation in both node and graph descriptions
- Update FlowFormatHandler to properly parse and generate graph metadata
- Ensure copy/paste operations exclude graph descriptions as requested
- Add proper paragraph break handling with double newlines between paragraphs
- Rename json_to_flow/flow_to_json methods to data_to_markdown/markdown_to_data
- Include actual node descriptions in saved markdown instead of placeholder text
🤖 Generated with [Claude Code](https://claude.ai/code)
* Add node description editing capability
- Add description field to Node class with serialization support
- Enhance Node Properties dialog with description editor (QTextEdit)
- Update dialog constructor to accept and display node descriptions
- Preserve node descriptions in save/load cycle
- Support markdown formatting in node description editor
🤖 Generated with [Claude Code](https://claude.ai/code)
* Remove JSON file format support and update file operations
- Remove JSON file format from save/load dialogs (only .md files supported)
- Update _save_file() to use actual graph title/description instead of defaults
- Simplify _load_file() to only handle .md format using FlowFormatHandler
- Use data_to_markdown() and markdown_to_data() method names consistently
- Ensure graph metadata is properly preserved during save/load operations
🤖 Generated with [Claude Code](https://claude.ai/code)
* Improve view state persistence and add comprehensive testing
- Update save_view_state() to accept optional file_path parameter
- Simplify view state loading logic with robust transform and center point handling
- Add comprehensive GUI-based test for view state persistence functionality
- Test covers zoom/pan operations, file switching, and state restoration
- Ensure view state is properly saved when switching between files
🤖 Generated with [Claude Code](https://claude.ai/code)
* Update password generator example with comprehensive descriptions
- Add detailed graph description explaining the complete workflow
- Enhance node descriptions with multi-paragraph technical details
- Include implementation specifics for each component
- Demonstrate proper paragraph spacing in descriptions
- Update node positions and GUI state after testing
🤖 Generated with [Claude Code](https://claude.ai/code)
* Fix virtual environment dialog and view state persistence issues
- Fixed startup venv dialog not showing for new/example graphs
- Added proper environment selection prompts before execution
- Fixed QSettings path errors in environment manager using correct project root detection
- Fixed view state (pan/zoom) not being restored when loading last saved graph on startup
- Set default environment to True for new/untitled graphs
- Added ensure_environment_selected() method called before execution
* Fix pin generation for complex generic types and improve example graphs
Two major fixes for the pin generation system:
1. Fix _parse_type_hint() method to properly handle complex generic types like List[Dict]:
- Added support for ast.Name slices (simple generics)
- Added support for ast.Tuple slices (multiple parameters)
- Added fallback handling for other slice structures
2. Fix update_pins_from_code() logic error for List/Tuple detection:
- Changed to only treat Tuple types as multiple outputs
- Handle List[Dict] and other single-element generics correctly
- Prevents AttributeError when accessing .elts on non-Tuple slices
Example graph improvements:
- Fixed missing GUI State Handler functions (set_values, set_initial_state)
- Connected data-generator to rest of analysis pipeline
- Removed non-functional buttons from dashboard and password generator
- Updated node positions and metadata from GUI testing
🤖 Generated with [Claude Code](https://claude.ai/code)
* Fix file organizer automation workflow and refactor node architecture
- Add missing workflow starter entry point node for clean initiation
- Fix broken data flow connections between all nodes in pipeline
- Refactor complex @node_entry functions following FlowSpec best practices:
* File Categorizer: Extract FileCategorizer class with modular methods
* File Mover: Extract FileOrganizer class with specialized operations
* Operation Verifier: Extract OrganizationVerifier class with focused methods
- Add comprehensive error handling and validation throughout workflow
- Enhance GUI elements with tooltips and better user experience
- Fix folder scanner to return tuple with both file list and base path
- Add operation verification node for post-organization validation
- Create complete data pipeline: Scanner → Categorizer → Creator → Mover → Verifier
- Ensure all pin connections properly match function signatures
- Improve code maintainability and testability with helper classes
🤖 Generated with [Claude Code](https://claude.ai/code)
---------
Co-authored-by: Bryan Howard <[email protected]>1 parent 7294b9b commit aaeb826
File tree
20 files changed
+2089
-244
lines changed- examples
- src
- tests
20 files changed
+2089
-244
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | | - | |
| 22 | + | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
| 35 | + | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| |||
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
114 | 118 | | |
115 | 119 | | |
116 | 120 | | |
| |||
132 | 136 | | |
133 | 137 | | |
134 | 138 | | |
135 | | - | |
136 | | - | |
| 139 | + | |
| 140 | + | |
137 | 141 | | |
138 | 142 | | |
139 | 143 | | |
| |||
212 | 216 | | |
213 | 217 | | |
214 | 218 | | |
215 | | - | |
216 | | - | |
| 219 | + | |
| 220 | + | |
217 | 221 | | |
218 | 222 | | |
219 | 223 | | |
| |||
302 | 306 | | |
303 | 307 | | |
304 | 308 | | |
305 | | - | |
306 | | - | |
| 309 | + | |
| 310 | + | |
307 | 311 | | |
308 | 312 | | |
309 | | - | |
310 | | - | |
| 313 | + | |
| 314 | + | |
311 | 315 | | |
312 | 316 | | |
313 | 317 | | |
| |||
394 | 398 | | |
395 | 399 | | |
396 | 400 | | |
397 | | - | |
398 | | - | |
399 | | - | |
400 | | - | |
401 | | - | |
402 | | - | |
403 | 401 | | |
404 | 402 | | |
405 | 403 | | |
| |||
411 | 409 | | |
412 | 410 | | |
413 | 411 | | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
414 | 416 | | |
415 | 417 | | |
416 | 418 | | |
417 | 419 | | |
418 | 420 | | |
419 | 421 | | |
420 | 422 | | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
421 | 435 | | |
422 | 436 | | |
423 | 437 | | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
424 | 450 | | |
425 | 451 | | |
426 | 452 | | |
| |||
0 commit comments