When a connection is broken in the flow view:
1. The node that lost its input moves to the end of the chain
2. The remaining nodes reconnect automatically
3. Tool model updates to reflect new order
4. Dependency validation warns about broken references
Flow: Input → A → B → C → Output
Break B's input: Input → A → C → B → Output
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Only parse {variable} patterns in PromptSteps, not CodeSteps.
In CodeSteps, variables are available directly as Python variables
(e.g., use `input` not `{input}`). The {var} syntax in code is
typically Python f-string or .format() syntax, not CmdForge
template substitution.
This fixes false positives like artifact-ai where Python f-strings
like f"{format_guide}" were incorrectly flagged as missing CmdForge
variable references.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
List View:
- Enable drag-drop reordering of steps
- Show broken dependency warnings when reordering
- Steps with missing variable refs shown in red with tooltip
Validation:
- Parse {variable} references from prompts and code
- Track available variables at each step position
- Warn when steps reference undefined variables
Flow View Sync:
- Deleting nodes in flow view updates the tool model
- steps_deleted signal propagates changes to builder
- Both views stay in sync
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- F key now fits to selected nodes (or all if none selected)
- A key selects all nodes
- Workflow: drag-select nodes then F to zoom, or A then F for all
- Updated help banner and context menu
- Context menu now has Select All (A) and Fit Selection (F)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Show banner on showEvent (when flow view becomes visible)
- Show banner on mouse enter event
- Raise banner to front to ensure visibility
- Recalculate size before positioning
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove Fit All button, F key shortcut is sufficient
- Add right-click context menu with "Fit All (F)" option
- Add floating help banner that appears on focus and auto-hides
- Banner stays visible when mouse hovers over it
- Fix default step naming to increment per type (Code 1, Prompt 1, Code 2)
instead of globally (Code 1, Prompt 2, Code 3)
- List view still shows overall step number (1, 2, 3) with per-type names
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create welcome_page.py with branded landing page
- Add quick action cards for common tasks (Create Tool, Registry, etc.)
- Add "CmdForge" entry at top of sidebar navigation
- Update page indices for navigation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add name field to PromptStep, CodeStep, and ToolStep dataclasses
- Update step dialogs to allow editing step names
- Display custom step names in both list and flow views
- Fix F key shortcut by installing event filter on graph widget
- Steps without custom names show default "Prompt N" / "Code N"
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add navigation help bar at top of flow view with instructions:
Pan, Zoom, Select, Edit step shortcuts
- Fix zoom to fit all nodes on initial load (was only centering last node)
- Use QTimer to ensure fit happens after widget is fully rendered
- Clear selection after fitting so nodes don't appear selected
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements node-based flow visualization using NodeGraphQt-QuiltiX-fork:
New files:
- src/cmdforge/gui/widgets/flow_graph.py: FlowGraphWidget with custom node types
- InputNode: Shows tool inputs ($input + argument variables)
- PromptNode: AI prompt steps with provider display
- CodeNode: Python code steps
- OutputNode: Final output
- scripts/test_nodegraph.py: Standalone prototype for testing
Modified files:
- tool_builder_page.py: Added List/Flow view toggle with QStackedWidget
- Lazy-loads flow widget on first use
- Syncs between list and flow views
- Double-click nodes to edit steps
- styles.py: Added viewToggle button styling
- widgets/__init__.py: Export FlowGraphWidget
- pyproject.toml: Added 'flow' optional dependency group
Features:
- Toggle between List and Flow views in Steps panel
- Nodes auto-connected based on step order
- Auto-layout and fit-to-view on load
- Double-click nodes opens step edit dialog
- Graceful fallback if NodeGraphQt not installed
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Set default value "{response}" for new tools
- Add minimum height (80px) so it's always visible
- Add stretch factors to layout so Steps expands, Output stays fixed
- Update placeholder text to be more helpful
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Validates code with ast.parse() before accepting. Shows line number
and error message if syntax is invalid.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Feature was present in TUI but missing after GUI conversion. Now includes:
- Split layout: Code editor (left) | AI Assist panel (right)
- Provider selector dropdown for AI calls
- Prompt editor with smart default template showing available variables
- "Generate Code" button that calls AI in background thread
- Response feedback area showing success/error status
- Automatic markdown fence stripping from AI responses
- Available variables computed from tool arguments + previous step outputs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Profiles allow users to inject system instructions into prompts,
customizing the AI's behavior and persona for tool execution.
Features:
- Profile dataclass with name, description, system_prompt
- 8 built-in profiles: None, Comedian, Technical Writer, Teacher,
Concise, Creative, Code Reviewer, Analyst
- Custom profile creation and storage in ~/.cmdforge/profiles/
- Profile selector in Prompt Step dialog
- Profile injection during tool execution
- Profiles page in GUI (Ctrl+4) for viewing and managing profiles
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
search_tools requires a query, but list_tools allows browsing
without a search term. Use list_tools when no query or tags are set.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Browse all tools on page load without search
- Category filter dropdown (Text, Developer, Data, etc.)
- Sort options (downloads, rating, newest, name)
- Star ratings display in results table
- Clickable tags for filtering
- Installed indicator (✓) for local tools
- Update available indicator (↑) for newer versions
- Pagination controls for large result sets
- Publisher reputation info in details
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>