Commit Graph

1836 Commits

Author SHA1 Message Date
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
Cody Seibert
da5960c340 feat(kanban): Verify Command+Enter shortcut for add feature
The shortcut key for adding a new feature was changed from Shift+Enter to
Command+Enter (⌘+Enter on Mac, Ctrl+Enter on Windows/Linux).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 08:43:32 -05:00
Cody Seibert
00dd545b6c feat(kanban): Mark skipTests feature as verified
The skipTests/manual verification feature has been implemented and tested.
Tests verified the following functionality:
- Skip tests checkbox appears in add/edit feature dialogs
- Toggle checkbox works correctly
- Features with skipTests enabled show the Manual badge
- TDD features (without skipTests) don't show the badge
- Edit dialog properly saves skipTests toggle state

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 08:43:05 -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
2aa601881e Verify: Remove refresh button from kanban headers - feature already implemented 2025-12-09 08:19:13 -05:00
Cody Seibert
262319b691 Add delete all button to verified column header - Added Delete All button in verified column header when there are verified features - Added confirmation dialog showing feature count before deletion - Deletes all verified features using same logic as individual deletion 2025-12-09 08:18:21 -05:00
Cody Seibert
da37a4f6e2 feat(kanban): Verify Start Next button feature in backlog header
- Added Start Next button to backlog column header
- Button starts top cards from backlog up to concurrency limit
- Added keyboard shortcut Q for the start next action
- Uses FastForward icon with shortcut key badge
- Shows appropriate error/info toasts for edge cases
- Feature implementation verified

Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 08:16:50 -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
e22061bb93 Remove claude-progress from codebase and prompts
- Deleted .automaker/claude-progress.txt file
- Removed references from .automaker/coding_prompt.md
- Removed references from reference/prompts/coding_prompt.md
- Removed references from reference/prompts/initializer_prompt.md
- Removed from project structure in reference/README.md
- Updated step numbering in prompts
- Marked feature as verified in feature_list.json
2025-12-09 02:11:08 -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
0af7938798 Verify concurrency limit error toast feature - The feature to show an error toast when concurrency limit is hit was already implemented in board-view.tsx 2025-12-09 01:47:06 -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