Commit Graph

85 Commits

Author SHA1 Message Date
Kacper
03f473e7c2 feat(auth): improve authentication error handling for Claude SDK
- Enhanced error messages in FeatureExecutor and ClaudeProvider to provide clearer guidance on missing authentication.
- Added checks for Claude CLI installation status to inform users if they need to authenticate via CLI or set environment variables.
- Improved fallback error messages to ensure users receive relevant instructions regardless of the authentication method.

These changes enhance user experience by providing more informative feedback regarding authentication issues.
2025-12-10 10:36:40 +01:00
Kacper
ba4cde7328 Merge main into feat/extend-models-support
Resolved conflicts:
- feature_list.json: Merged all features from both branches
- feature-loader.js: Included both model/thinkingLevel and error fields
- board-view.tsx: Merged model/thinkingLevel and error fields, kept currentProject check
- settings-view.tsx: Merged CLI status checks with navigation/scroll code
- app-store.ts: Included both model/thinkingLevel and error fields in Feature interface

Fixed linting errors in settings-view.tsx
2025-12-10 10:25:13 +01:00
Cody Seibert
e9a4dd0319 feat(sidebar, settings): enhance project management and UI navigation
- Removed trash functionality from the sidebar component, including the associated button and event handlers.
- Added a new "Danger Zone" section in the settings view for project deletion, featuring a confirmation dialog.
- Implemented smooth scrolling and active section highlighting in the settings sidebar for improved navigation.
- Updated various UI elements for better consistency and responsiveness.

These changes streamline project management and enhance user experience within the application.
2025-12-09 23:07:40 -05:00
Cody Seibert
6c7f39c9f7 Merge branch 'main' of github.com:webdevcody/automaker 2025-12-09 22:48:59 -05:00
Cody Seibert
229df2ee29 feat(icon): update application icon and references
- Changed application icon from `icon_gold.png` to `logo.png` across package.json, main.js, and relevant components.
- Updated image source paths in Sidebar and WelcomeView components to reflect the new logo file.

This update standardizes the icon used throughout the application, enhancing visual consistency.
2025-12-09 22:48:58 -05:00
Web Dev Cody
368e293bde Merge pull request #1 from webdevcody/trachcan-option
feat(sidebar): implement trash functionality for project management
2025-12-09 22:48:01 -05:00
SuperComboGamer
d014a0ba4f feat(sidebar): implement trash functionality for project management
- Added a new `trashItem` method in the Electron API to move projects to the system trash.
- Enhanced the sidebar component to include a trash button and manage trashed projects.
- Implemented functionality to restore and permanently delete projects from the trash.
- Updated the application state to track trashed projects and provide user feedback through toast notifications.

This update significantly improves project management by allowing users to easily manage deleted projects without permanent loss.
2025-12-09 22:37:04 -05:00
Kacper
4b55390a01 fix(agent-context-parser): update model version strings for consistency
- Updated the model version strings for Sonnet and Haiku to reflect the correct versions (Sonnet 4.5 and Haiku 4.5).
- Ensured consistency in model naming conventions within the formatModelName function.

This change improves clarity and accuracy in model representation.
2025-12-10 04:25:48 +01:00
Kacper
179eef6685 feat(electron): enhance feature execution with async prompt handling and authentication checks
- Updated the FeatureExecutor to wrap content blocks in an async generator for multimodal prompt compatibility.
- Added authentication checks in the ClaudeProvider to ensure proper API key or token availability, including loading from local CLI config.
- Improved error handling for missing authentication, providing clear console messages for user guidance.

This update enhances the robustness of feature execution and ensures proper authentication management for the Claude SDK.
2025-12-10 04:22:59 +01:00
Cody Seibert
39043b8958 feat(auto-mode): enhance error handling and feature status updates
- Improved error handling in AutoModeService to log errors and update feature status to "waiting_approval" when an error occurs during feature execution.
- Added error message writing to the context file for better debugging.
- Updated FeatureLoader to include an optional error message parameter when updating feature status.
- Enhanced prompt generation to include detailed context about attached images for better user guidance during feature implementation.
- Modified KanbanCard component to visually indicate features with errors, improving user awareness of issues.

These changes significantly enhance the robustness of the auto mode feature and improve the user experience by providing clearer feedback on feature execution status.
2025-12-09 22:06:52 -05:00
Kacper
3934ba65da fix(electron): correct IPC handler closure in main.js
- Fixed the closure of the IPC handler in main.js to ensure proper function execution.
2025-12-10 03:58:03 +01:00
Kacper
89c5a1688f Merge branch 'main' into feat/extend-models-support 2025-12-10 03:56:36 +01:00
Kacper
cfaadba3dc fix(kanban): resolve hardcoded model display in cards
- Fix model string validation in feature executor
- Remove hardcoded opus 4.5 references
- Update kanban card to show actual selected model
- Clean up completed feature contexts
- Standardize feature list with model/thinking fields

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-10 03:50:17 +01:00
Kacper
cd7d4ab138 feat(ui): improve modal UX and model management
- Increase dialog max-width to 2xl for better content display
- Add tabbed interface to feature modal (prompt/model/testing)
- Streamline model selection with compact button layout
- Remove unused OpenAI O3/O4 models from registry
- Add model string validation and fallback logic
- Add "Uncategorized" category support

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-10 03:27:11 +01:00
Cody Seibert
7b760090e4 feat(automaker): enhance feature management and UI components
- Updated `.gitignore` to include agent context files and user-uploaded images for better organization.
- Added "Uncategorized" category to `categories.json` for improved feature classification.
- Populated `feature_list.json` with new features, including detailed descriptions and image attachments for better context.
- Changed application icon to `icon_gold.png` for a refreshed look.
- Enhanced `AutoModeService` to support max concurrency and periodic checks, improving feature execution management.
- Updated image handling in `DescriptionImageDropZone` to save images in the project directory.
- Improved UI components with better styling and responsiveness, including drag-and-drop functionality for project management.

This update significantly enhances the feature management process and user experience within the application.
2025-12-09 21:23:09 -05:00
Kacper
1a5a828d45 Merge remote-tracking branch 'origin/main' into feat/extend-models-support
# Conflicts:
#	.automaker/feature_list.json
#	app/src/components/views/board-view.tsx
#	app/src/components/views/kanban-column.tsx
#	app/src/components/views/settings-view.tsx
2025-12-10 03:03:07 +01:00
Kacper
6d130ca2b5 feat: add Codex CLI detection and model management APIs
- Implemented IPC handlers for checking Codex CLI installation status, retrieving available models, and checking provider statuses.
- Enhanced the SettingsView to include OpenAI API key management and connection testing.
- Updated the feature executor to support multiple model providers (Claude and Codex), allowing for improved flexibility in feature execution.
- Introduced utility functions to determine model types and support for thinking controls.

This update enhances the application's capabilities by integrating Codex CLI support and improving model management, providing users with a more robust experience.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-12-10 03:00:15 +01:00
Cody Seibert
ac5b562f7a feat(protection): implement multi-layered protection for feature_list.json
Introduces a comprehensive strategy to safeguard the feature_list.json file from accidental modifications. Key enhancements include:

1. **Prompt-Level Warnings**: Added explicit warnings in agent prompts to prevent direct modifications.
2. **Dedicated MCP Tool**: Implemented the UpdateFeatureStatus tool for safe feature updates.
3. **File-Level Validation & Auto-Backup**: Added validation checks and automatic backups before modifications to prevent data loss.
4. **Tool Access Control**: Restricted agent access to critical tools, ensuring only the designated MCP tool can modify the feature list.

This update significantly reduces the risk of catastrophic data loss and ensures a robust feature management process.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-12-09 19:47:10 -05:00
Cody Seibert
7cee3bbd9f chore(automaker): finalize agent context documentation
Completes agent execution log documentation for commit workflow
and feature management processes.

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-09 19:32:00 -05:00
Cody Seibert
aba19a9695 docs(automaker): update agent context logs
Updates agent execution context logs with commit workflow steps
for feature status updates and project dropdown toggle implementation.

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-09 19:31:49 -05:00
Cody Seibert
6d4112b098 chore(features): update project dropdown toggle feature status
Updates feature status from waiting_approval to verified for the P key
toggle functionality. The feature allows pressing P to open/close the
project picker dropdown with proper keyboard event handling.

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-09 19:31:35 -05:00
Cody Seibert
560438727c feat(sidebar): add P key toggle for project dropdown
Fixed P key behavior to toggle the project dropdown on/off. Added keyboard handler to detect P key when dropdown is open and close it. Also enhanced theme system with action button colors and improved Kanban card styling consistency.

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-09 19:28:23 -05:00
Kacper
e260eafcb9 Merge remote-tracking branch 'origin/main' into feat/extend-models-support 2025-12-10 01:15:14 +01:00
Cody Seibert
5853653c00 refactor(kanban): standardize column width and remove masonry layout
- Remove double-width styling from In Progress column
- Replace masonry 2-column layout with simple vertical stacking
- All Kanban columns now use uniform w-72 width
- Fix Settings view theme consistency with proper CSS variables
- Add action button color variables to theme system

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-09 19:13:09 -05:00
Cody Seibert
8a01c1e167 Merge branch 'main' of github.com:webdevcody/automaker 2025-12-09 19:00:21 -05:00
Kacper
dcaf96aad3 feat(cli): implement Claude CLI detection and model selection for features
- Added a new service to detect the installation status of Claude Code CLI, providing users with installation recommendations and commands.
- Integrated CLI detection into the SettingsView to inform users about the CLI status and its benefits for ultrathink tasks.
- Enhanced feature creation and editing dialogs to allow users to select from multiple models (Haiku, Sonnet, Opus) and specify thinking levels (None, Low, Medium, High, Ultrathink).
- Updated the feature executor to utilize the selected model and thinking configuration during task execution, improving flexibility and performance.

This update enhances user experience by providing clearer options for model selection and ensuring optimal performance with the Claude CLI.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-10 00:58:50 +01:00
Cody Seibert
6f3bf2f6b6 feat: add new themes and improve UI components
- Introduced multiple new themes: retro, dracula, nord, monokai, tokyonight, solarized, gruvbox, catppuccin, onedark, and synthwave.
- Updated global CSS to support new themes and added custom variants for theme-specific styles.
- Enhanced layout and sidebar components with improved styling and responsiveness.
- Refactored button and slider components for better visual consistency and added an animated outline variant.
- Improved various views (e.g., settings, welcome, context) with updated styles and better user experience.

This update enhances the overall aesthetic and usability of the application, providing users with more customization options.
2025-12-09 18:51:06 -05:00
Kacper
a2d27b94bc feat(kanban): enhance Kanban card detail level settings
- Introduced a new feature to control the level of detail displayed on Kanban cards, allowing users to choose between minimal, standard, and detailed views.
- Updated the SettingsView to include buttons for selecting the desired detail level, with corresponding descriptions for each option.
- Integrated the new detail level setting into the KanbanCard component to conditionally render information based on user preferences.

This enhancement improves user experience by providing customizable visibility of feature information on Kanban cards.

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-10 00:02:24 +01:00
Kacper
b901d2bb6c fix(board): preserve waiting_approval state when stopping commit operation
When a feature with skipTests=true is stopped during commit operation, it now
returns to waiting_approval status instead of backlog, allowing users to retry
commit or perform follow-up actions without losing the approval workflow state.

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-09 23:50:56 +01:00
Kacper
6f9d90b199 feat(markdown): integrate Markdown component for enhanced text rendering
- Added a reusable Markdown component to render markdown content with styled typography for dark mode.
- Updated KanbanCard to utilize the new Markdown component for displaying feature summaries, improving readability and presentation.
- Included the `react-markdown` library as a dependency for markdown parsing.

Modified: package.json, package-lock.json, markdown.tsx, kanban-card.tsx
2025-12-09 23:49:19 +01:00
Kacper
ef0519adf9 feat(kanban): add feature summary display and agent context info
Enhance Kanban cards to show comprehensive feature information:
- Add feature summary field to display completed work details
- Show agent context info (model, progress, tasks) on cards
- Display tool usage and token consumption metrics
- Add expandable summary dialog for detailed view
- Update prompts to require summary when marking features complete
- Improve UI for waiting_approval and verified states

Modified: kanban-card.tsx, board-view.tsx, feature-loader.js,
mcp-server-factory.js, prompt-builder.js, app-store.ts
Created: agent-context-parser.ts

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-09 23:27:25 +01:00
Kacper
5ff7e3791a feat: enhance commit message generation for waiting approval features
- Updated the commit process for features in the waiting_approval status to generate proper conventional commit messages.
- The `commitChangesOnly` method now analyzes changes using `git status`, `git diff`, and recent commit styles to create a professional commit message format.
- Added a detailed prompt for the agent to follow, ensuring that the commit message reflects the actual changes made rather than using the feature description verbatim.

This improvement aligns the commit behavior with the standards used when automated testing is enabled, enhancing the overall user experience and code quality.
2025-12-09 23:05:05 +01:00
Kacper
835d1ed021 feat: enhance follow-up feature handling and improve async processing
- Implemented asynchronous follow-up work in AutoModeService to allow immediate API response, enabling smoother user experience.
- Updated BoardView to handle follow-up prompts more efficiently, including state management and success notifications.
- Adjusted mock AutoMode API to simulate background processing for follow-up tasks, aligning with real implementation behavior.

These changes streamline the workflow for sending follow-up prompts and improve the responsiveness of the UI.
2025-12-09 22:43:33 +01:00
Kacper
bfc0934ce9 feat: implement follow-up and commit features for waiting_approval status
- Added functionality to allow users to send follow-up prompts for features in the waiting_approval status, enabling continued work with additional instructions.
- Implemented a commit feature that allows users to mark waiting_approval features as verified and commit changes directly.
- Updated the UI to include buttons for follow-up and commit actions on Kanban cards and integrated dialogs for user interaction.
- Enhanced the feature loader and executor to handle the new status and actions appropriately.

This update improves the workflow for managing features that require manual review and enhances user experience in the auto mode.
2025-12-09 22:25:20 +01:00
Cody Seibert
66951f2b94 chore: update license from Unlicense to MIT License
Replaced the Unlicense text with the MIT License, including copyright notice and permission details. This change formalizes the licensing terms for the software, ensuring clarity on usage rights and limitations.
2025-12-09 15:57:18 -05:00
Cody Seibert
e89420fce7 Merge branch 'main' of github.com:webdevcody/automaker 2025-12-09 15:56:46 -05:00
Kacper
2c01587180 feat: improve agent output modal with parsed log viewer
Add a parsed log viewer to the agent output modal that groups and colors
log entries by type (tool calls, phases, errors, success messages, etc.)
similar to Coolify logs. Includes:

- New log-parser.ts utility for parsing agent output into structured entries
- New LogViewer component with collapsible entries and colored badges
- Toggle between Parsed and Raw view modes in the modal header
- Type-specific colors (amber for tools, cyan for phases, red for errors)
- Expand/Collapse all buttons for better navigation
- JSON content detection and formatting within entries

Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 21:20:25 +01:00
Cody Seibert
9efebdbf83 fix: disable hotkeys when project picker dropdown is open
When the project picker dropdown is open (via P key), pressing number keys
1-9 was incorrectly also triggering the board view's agent output modal
shortcuts. This fix adds a check for the project picker dropdown in the
isInputFocused() function, which disables all keyboard shortcuts registered
via useKeyboardShortcuts when the dropdown is visible.

The sidebar's project picker number key handler still works as expected
since it uses a separate event listener.
2025-12-09 14:14:34 -05:00
Cody Seibert
4527829bac feat: Add Unlicense (more permissive than MIT) - Add LICENSE file with Unlicense which dedicates the software to the public domain 2025-12-09 14:08:23 -05:00
Kacper
000cae6737 Fix settings view scrolling by adding overflow-hidden to container
The settings view was not allowing scrolling because the outer container
lacked overflow-hidden. This prevented the inner overflow-y-auto content
area from properly constraining its height and enabling scroll behavior.

Added overflow-hidden to the settings view container to match the pattern
used in other views like board-view.tsx.

Also added utility functions for settings navigation and scroll testing.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 19:36:18 +01:00
Cody Seibert
08014f3a4a Refactor Auto Mode Service and add feature verification and project analysis capabilities
- Refactored AutoModeService to delegate tasks to specialized services: featureLoader, featureExecutor, featureVerifier, contextManager, and projectAnalyzer.
- Implemented feature verification logic in a new FeatureVerifier service, which runs tests and updates feature status.
- Added ProjectAnalyzer service to scan project structure and update app_spec.txt.
- Removed obsolete methods related to feature loading and context management from AutoModeService.
- Updated feature status handling to ensure context files are deleted when features are verified.

This refactor enhances modularity and maintainability of the codebase, allowing for better separation of concerns in feature management.

🤖 Generated with Claude Code
2025-12-09 13:03:03 -05:00
Cody Seibert
081f7c6007 feat: add image drag and drop to Kanban card description
Add ability to drag and drop images into the description section when creating
new Kanban cards. Images are saved to a temp directory and their paths are stored
with the feature for agent context.

- Create DescriptionImageDropZone component with drag/drop support
- Integrate with Add Feature dialog in board-view
- Add FeatureImagePath interface to track temp file paths
- Update saveFeatures to persist imagePaths
- Add saveImageToTemp to mock electron API
- Add test utilities for image upload testing

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 12:47:24 -05:00
Cody Seibert
b3a8e60ce6 Mark project picker keyboard shortcut feature as verified 2025-12-09 12:41:33 -05:00
Cody Seibert
df2c7c36a4 Remove 5-project limit from project dropdown
- Remove .slice(0, 5) to show all projects in dropdown
- Extend keyboard shortcuts to support 1-9 (was 1-5)
- Only show hotkey indicators for first 9 projects
- Update tests to reflect new behavior

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 12:29:35 -05:00
Cody Seibert
9bae205312 Implement project picker keyboard shortcut and enhance feature management
- Added a new keyboard shortcut 'P' to open the project picker dropdown.
- Implemented functionality to select projects using number keys, allowing users to quickly switch between projects.
- Updated the feature list to include a new feature for project selection via keyboard shortcuts.
- Removed obsolete coding_prompt.md and added initializer_prompt.md for better session management.
- Introduced context management for features, enabling reading, writing, and deleting context files.
- Updated package dependencies to include @radix-ui/react-checkbox for enhanced UI components.

This commit enhances user experience by streamlining project selection and improves the overall feature management process.

🤖 Generated with Claude Code
2025-12-09 12:20:07 -05:00
Cody Seibert
95355f53f4 feat: add O keyboard shortcut to open project 2025-12-09 09:13:10 -05:00
Cody Seibert
2d8f600209 Add number key toggle for output modal
When the output modal is open:
- Pressing the same number key closes the modal
- Pressing a different number key switches to that feature's output

Also adds test utilities for testing number key interactions and fixes
the setupMockProjectWithInProgressFeatures utility to properly set
__mockFeatures for the mock electron API.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 08:57:41 -05:00
Cody Seibert
9a6e6ea594 Add keyboard shortcut 'W' for creating new agent session
- Added newSession shortcut to ACTION_SHORTCUTS in use-keyboard-shortcuts.ts
- Updated SessionManager to expose quick create function via ref
- Updated AgentView to register the shortcut and trigger new session creation
- Display shortcut key indicator (W) on the New session button
- Updated feature_list.json to mark feature as verified

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 08:56:58 -05:00
Cody Seibert
243c41d359 Mark edit card textarea feature as verified
The edit feature dialog already uses a Textarea component for the description field, matching the add feature dialog. No code changes were needed as this was already implemented.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 08:50:59 -05:00
Cody Seibert
436625648c Add UpdateFeatureStatus custom MCP tool for safe feature status updates
- Created createFeatureToolsServer() method that creates an MCP server with
  the UpdateFeatureStatus tool
- Tool accepts featureId and status parameters to safely update feature status
- Updated all prompts to instruct agents to use the custom tool instead of
  directly modifying feature_list.json
- Added mcpServers configuration to all query options
- This prevents race conditions and accidental state restoration when
  Claude Code updates feature status

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 08:47:13 -05:00