Commit Graph

45 Commits

Author SHA1 Message Date
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
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
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
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
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
5e606726eb Add delete confirmation dialog for kanban cards
When clicking the trash icon to delete a feature card, users now see a
confirmation dialog asking them to confirm the deletion. This prevents
accidental deletions and provides a clear cancel option.

- Added Dialog component with confirm/cancel buttons to kanban-card
- Updated mock electron API to support test feature injection via __mockFeatures
- Added test utilities for delete confirmation dialog interactions
- Fixed test infrastructure to properly load mock features

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 08:42:11 -05:00
Cody Seibert
243c84178e feat(kanban): Change edit card description from Input to Textarea
- Changed the edit feature dialog to use Textarea instead of Input for the
  description field, matching the add feature dialog behavior
- Added placeholder text 'Describe the feature...' for consistency
- Added utility functions for testing edit feature dialog in tests/utils.ts

Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 08:38:57 -05:00
Cody Seibert
188de1bbca feat(kanban): Persist categories to .automaker/categories.json
Categories are now saved to a categories.json file in the .automaker
directory. This ensures categories persist even when all feature cards
are deleted. The category autocomplete now shows suggestions from both
existing features AND the persisted categories file.

- Add persistedCategories state and load/save functions in board-view
- Merge persisted categories with feature categories for suggestions
- Auto-save categories when adding or editing features
- Update mock Electron API to handle categories.json file

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 08:34:54 -05:00
Cody Seibert
9668f61878 feat(kanban): Add keyboard shortcuts 1-9 and 0 for in-progress cards
- Added keyboard shortcuts for the first 10 in-progress cards
- Keys 1-9 open the output modal for cards 1-9
- Key 0 opens the output modal for the 10th card
- Shortcut key badges are displayed on in-progress cards
- Shortcuts don't trigger when typing in inputs or dialogs

Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 08:14:58 -05:00
Cody Seibert
04b54bfadf Verify backtick shortcut for sidebar toggle with tooltip - The feature to add a backtick shortcut to toggle the left side panel was already implemented. On hover of the toggle button, a tooltip shows the shortcut info. 2025-12-09 08:13:03 -05:00
Cody Seibert
4724fab62a Add context file content textarea with drag and drop support for txt and md files 2025-12-09 02:27:48 -05:00
Cody Seibert
e4b45f53f3 feat: Update feature list and add project initialization utilities
- Removed obsolete feature from feature_list.json related to context file deletion.
- Added new features for keyboard shortcuts in Kanban and context management.
- Introduced project initialization utilities to create necessary .automaker directory structure and files when opening a new project.
- Updated the AgentOutputModal and other components to reference the new agents-context directory.
- Enhanced Playwright tests for context file management and project initialization.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 02:26:32 -05:00
Cody Seibert
76d37fc714 feat: Add keyboard shortcuts for navigation and action buttons
- Created use-keyboard-shortcuts hook to manage global keyboard shortcuts
- Added navigation shortcuts: K (Kanban), A (Agent), E (Spec Editor), C (Context), T (Tools), S (Settings)
- Added action shortcuts: N (Add Feature on board), F (Add File on context)
- Shortcuts automatically disabled when typing in inputs/textareas or when dialogs are open
- Display shortcut key indicators in navigation links and action buttons
- Added test utilities for keyboard shortcut testing

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 02:19:58 -05:00
Cody Seibert
ac73d275af feat(kanban): Make In Progress column double-width with 2-column masonry layout
Modified KanbanColumn to accept isDoubleWidth prop.
In Progress column now renders at 37rem width (double the standard 18rem).
Cards in In Progress display in a CSS columns-2 masonry layout.
Other columns maintain their standard single-column width.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 02:16:07 -05:00
Cody Seibert
d84e3b7d44 feat(core): Remove code view link from sidebar navigation
Removed the Code View feature from the application:
- Removed the Code View navigation item from sidebar
- Removed the CodeView component import and case from page.tsx
- Removed the code-view.tsx component file
- Updated ViewMode type to exclude 'code'

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 02:15:44 -05:00
Cody Seibert
c685d35ffb feat(core): Persist current view across app refreshes
Added currentView to zustand persist partialize, ensuring that the
last viewed route is saved to localStorage and restored on app load.
This prevents the app from redirecting to overview on every refresh.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 02:14:12 -05:00
Cody Seibert
b02b346377 fix: Spec editor now reads/writes from .automaker directory
The spec editor was using the wrong path for the app_spec.txt file.
Updated to use ${projectPath}/.automaker/app_spec.txt instead of
${projectPath}/app_spec.txt to match the standard .automaker directory
structure used by other components.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 02:09:38 -05:00
Cody Seibert
30caa3112b feat(kanban): Add count-up timer component for in-progress cards
- Create CountUpTimer component that displays elapsed time in MM:SS format
- Timer starts counting from when a card moves to in_progress status
- Shows timer on running cards (purple) and idle in_progress cards (yellow)
- Updates every second to show current elapsed time

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 01:49:54 -05:00
Cody Seibert
010e6e139f feat(agent): Unselect session when archiving currently selected session
When a session is archived and it was the currently selected session,
it is now automatically deselected and the empty state placeholder is
shown in the right panel.

- Updated SessionManagerProps to allow null for onSelectSession callback
- Added logic to deselect session on archive if it was selected
- Added data-testid attributes for testing
2025-12-09 01:48:51 -05:00
Cody Seibert
8a5b336d3b Fix typeahead dropdown not closing when clicking a suggestion
Changed the click handler on category autocomplete options from onClick to
onMouseDown with preventDefault(). This fixes a race condition where the
mousedown event (used by the outside click handler) was firing before
the click event, causing the dropdown to close before the selection was
processed.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 01:44:02 -05:00
Cody Seibert
0be9d751fe feat(kanban): Add ability to delete in-progress cards with auto agent stop
- Add delete button to in_progress cards that are not currently running
- Update handleDeleteFeature to stop running agents before deleting
- Show confirmation message mentioning agent will be stopped when card is running
- Add test utilities for delete in-progress feature testing

Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 01:43:44 -05:00
Cody Seibert
ef5584a488 Remove analysis link and related code
- Removed Analysis navigation link from sidebar
- Removed AnalysisView component import and case from page.tsx
- Removed analysis from ViewMode type in app-store
- Removed analysis-related state (projectAnalysis, isAnalyzing) and actions
- Deleted analysis-view.tsx file
- Removed unused Search icon import

Generated with Claude Code https://claude.com/claude-code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 01:42:42 -05:00
Cody Seibert
edc4721927 feat(kanban): Delete agent context file when feature is verified
When an agent marks a feature as verified, the context file in
.automaker/agents-context/{featureId}.md is now automatically deleted.

Changes:
- Updated mock implementation in electron.ts to delete context files
  when simulateAutoModeLoop completes with verified status
- Added setupMockProjectWithContextFile utility function to tests/utils.ts
- Updated feature_list.json to mark feature as verified

The real implementation was already present in auto-mode-service.js:
- deleteContextFile() method removes the context file
- updateFeatureStatus() calls deleteContextFile when status="verified"

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 01:42:10 -05:00
Cody Seibert
ca646f2acb Add force stop feature for running agents on kanban cards 2025-12-09 01:22:53 -05:00
Cody Seibert
f4df08f9b4 Implement context files feature - verified
- Added Context view with file list sidebar and text/image editor
- Added Context navigation item to sidebar
- Added deleteFile API method to Electron IPC
- Updated coding_prompt.md to include Step 1.5 for loading context files
- Updated mock Electron API to properly handle context directory
- Added test utilities for context view navigation

Features:
- Left panel with list of all context files
- Text editor for editing .md, .txt, and other text files
- Image preview for .png, .jpg, .gif, and other image files
- Add new text or image files via dialog
- Delete files with confirmation dialog
- Drag and drop file upload support
- Auto-save detection with Save button

All Playwright tests passing (9/9)
Deleted test file after verification

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 01:20:56 -05:00
Cody Seibert
d7a32b2314 feat: Show error toast when concurrency limit is reached
When a user tries to drag a card from backlog to in_progress while at the
max concurrency limit, a toast notification now appears explaining why the
action was blocked and suggesting solutions.

- Added sonner toast library
- Show error toast with dynamic message based on max concurrency
- Updated test utilities with toast helpers

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 01:18:42 -05:00
Cody Seibert
a4edfb514c feat: Auto-close output modal when feature is verified
When a user has the output modal open for an in-progress feature
and that feature gets verified (auto_mode_feature_complete with
passes=true), the modal now automatically closes after a 1.5 second
delay to show the completion message first.

Changes:
- Added auto-close logic to agent-output-modal.tsx
- Added data-testid to modal for testing
- Updated test utilities for testing helpers
- Marked feature as verified in feature_list.json
2025-12-09 00:59:40 -05:00
Cody Seibert
479b2545e5 Add concurrency slider for automode to control max parallel agents
- Added maxConcurrency state to app-store with persistence
- Created slider UI component using Radix UI
- Added concurrency slider to board-view header (left of Auto Mode button)
- Updated use-auto-mode hook to expose canStartNewTask based on limit
- Block dragging features to in_progress when at max concurrency
- Added test utilities for concurrency slider interactions

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 00:54:26 -05:00
Cody Seibert
2822cdfc32 Update app_spec.txt and coding_prompt.md for improved clarity and consistency
- Updated references to `app_spec.txt` and `feature_list.json` in app_spec.txt to include the correct path.
- Enhanced coding_prompt.md by incorporating testing utilities for better test management and readability.
- Added new utility functions in tests/utils.ts to streamline test interactions.

This commit aims to improve documentation accuracy and maintainability of testing practices.
2025-12-09 00:45:34 -05:00
Cody Seibert
adad2262c2 Add category typeahead with autocomplete suggestions
Changed the category input to a typeahead component in both Add Feature and
Edit Feature dialogs. The component suggests existing categories from
features and allows typing new ones. Categories are saved to feature_list.json.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 23:35:05 -05:00
Cody Seibert
7bfc489efa Change description field to textarea in Add New Feature modal
The description field in the Add New Feature modal is now a textarea instead of
an input, allowing users to enter multi-line feature descriptions more easily.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 22:53:33 -05:00
Cody Seibert
9392422d35 Implement initial project structure and features for Automaker application, including environment setup, auto mode services, and session management. Update port configurations to 3007 and add new UI components for enhanced user interaction. 2025-12-08 21:11:00 -05:00
Cody Seibert
3c8e786f29 initial commit 2025-12-07 16:43:26 -05:00