Commit Graph

1014 Commits

Author SHA1 Message Date
Web Dev Cody
63c581577f "Claude Code Review workflow" 2025-12-20 10:08:35 -05:00
Web Dev Cody
6190bd5f39 "Claude PR Assistant workflow" 2025-12-20 10:08:33 -05:00
Test User
e29880254e docs: Add comprehensive JSDoc docstrings to settings module (80% coverage)
This commit addresses CodeRabbit feedback from PR #186 by adding detailed
documentation to all public APIs in the settings module:

**Server-side documentation:**
- SettingsService class: 12 public methods with parameter and return types
- Settings types (settings.ts): All type aliases, interfaces, and constants
  documented with usage context
- Route handlers (8 endpoints): Complete endpoint documentation with request/response
  schemas
- Automaker paths utilities: All 13 path resolution functions fully documented

**Client-side documentation:**
- useSettingsMigration hook: Migration flow and state documented
- Sync functions: Three sync helpers (settings, credentials, project) with usage guidelines
- localStorage constants: Clear documentation of migration keys and cleanup strategy

All docstrings follow JSDoc format with:
- Purpose and behavior description
- Parameter documentation with types
- Return value documentation
- Usage examples where applicable
- Cross-references between related functions

This improves code maintainability, IDE autocomplete, and developer onboarding.

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-20 09:54:30 -05:00
Web Dev Cody
ba7904c189 Merge pull request #182 from AutoMaker-Org/worktree-select
worktree-select
2025-12-20 09:36:50 -05:00
Test User
46210c5a26 refactor spec editor persistence test for improved reliability
- Removed unnecessary wait times to streamline the test flow.
- Implemented a polling mechanism to verify content loading after page reload, enhancing test robustness.
- Updated the worktree integration test to skip unreliable scenarios related to component rendering.
2025-12-20 09:28:00 -05:00
Web Dev Cody
ee40f2720a Merge pull request #186 from AutoMaker-Org/theme-on-boarding
Show Theme Picker during On Boarding
2025-12-20 09:18:28 -05:00
Cody Seibert
f1eba5ea56 improve spec editor persistence and address flaky worktree test
- Increased wait times in spec editor persistence test to ensure content is fully loaded and saved.
- Added verification of content before saving in the spec editor test.
- Marked worktree panel visibility test as skipped due to flakiness caused by component rendering behavior.
2025-12-20 09:05:32 -05:00
Cody Seibert
c76ba691a4 Enhance unit tests for settings service and error handling
- Add comprehensive unit tests for SettingsService, covering global and project settings management, including creation, updates, and merging with defaults.
- Implement tests for handling credentials, ensuring proper masking and merging of API keys.
- Introduce tests for migration from localStorage, validating successful data transfer and error handling.
- Enhance error handling in subprocess management tests, ensuring robust timeout and output reading scenarios.
2025-12-20 09:03:32 -05:00
Cody Seibert
ace736c7c2 Update README and enhance Electron app initialization
- Update the link in the README for the Agentic Jumpstart course to include a GitHub-specific query parameter.
- Ensure consistent userData path across development and production environments in the Electron app, with error handling for path setting.
- Improve the isElectron function to check for Electron context more robustly.
2025-12-20 02:08:13 -05:00
Cody Seibert
1a78304ca2 Refactor SetupView component for improved readability
- Consolidate destructuring of useSetupStore into a single line for cleaner code.
- Remove unnecessary blank line at the beginning of the file.
2025-12-20 01:52:49 -05:00
Cody Seibert
0c6447a6f5 Implement settings service and routes for file-based settings management
- Add SettingsService to handle reading/writing global and project settings.
- Introduce API routes for managing settings, including global settings, credentials, and project-specific settings.
- Implement migration functionality to transfer settings from localStorage to file-based storage.
- Create common utilities for settings routes and integrate logging for error handling.
- Update server entry point to include new settings routes.
2025-12-20 01:52:25 -05:00
Cody Seibert
fb87c8bbb9 enhance spec editor and worktree tests for improved reliability
- Updated spec editor persistence test to wait for loading state and content updates.
- Improved worktree integration test to ensure worktree button visibility and selected state after creation.
- Refactored getEditorContent function to ensure CodeMirror content is fully loaded before retrieval.
2025-12-20 00:26:45 -05:00
Cody Seibert
1a4e6ff17b add ability to collapse worktree panel 2025-12-20 00:05:48 -05:00
Cody Seibert
3e7695dd2d better labels 2025-12-19 23:53:22 -05:00
Web Dev Cody
8fcc6cb4db Merge pull request #185 from AutoMaker-Org/generate-titles
fixing worktree style
2025-12-19 23:53:03 -05:00
Cody Seibert
dcf19fbd45 refactor: clean up and improve readability in WorktreePanel component
- Simplified the formatting of dropdown open change handlers for better readability.
- Updated the label from "Branch:" to "Worktrees:" for clarity.
- Enhanced conditional checks for removed worktrees to improve code structure.
2025-12-19 23:45:54 -05:00
Cody Seibert
80ab5ddad2 fixing worktree style 2025-12-19 23:44:07 -05:00
Web Dev Cody
84832a130b Merge pull request #184 from AutoMaker-Org/generate-titles
feat: add auto-generated titles for features
2025-12-19 23:43:52 -05:00
Cody Seibert
fcb2e904eb feat: add auto-generated titles for features
- Add POST /features/generate-title endpoint using Claude Haiku
- Generate concise titles (5-10 words) from feature descriptions
- Display titles in kanban cards with loading state
- Add optional title field to add/edit feature dialogs
- Auto-generate titles when description provided but title empty
- Add 'Pull & Resolve Conflicts' action to worktree dropdown
- Show running agents count in board header (X / Y format)
- Update Feature interface to include title and titleGenerating fields
2025-12-19 23:36:29 -05:00
Web Dev Cody
36e007e647 Merge pull request #171 from AutoMaker-Org/category
category
2025-12-19 22:04:56 -05:00
Cody Seibert
36b4bd6c5e Changes from category 2025-12-19 21:57:45 -05:00
Cody Seibert
1b676717ea Merge remote-tracking branch 'origin/main' into category 2025-12-19 21:57:14 -05:00
Web Dev Cody
4afd360f66 Merge pull request #172 from AutoMaker-Org/terminals-mpve
terminals-mpve
2025-12-19 21:46:50 -05:00
Cody Seibert
dd610b7ed9 fixing button in button issue 2025-12-19 21:45:07 -05:00
Cody Seibert
56ab21558d Merge remote-tracking branch 'origin/main' into worktree-select 2025-12-19 21:34:59 -05:00
Cody Seibert
89c53acdcf Changes from worktree-select 2025-12-19 21:34:13 -05:00
Cody Seibert
a84f2e5942 Merge remote-tracking branch 'origin/main' into terminals-mpve 2025-12-19 21:30:44 -05:00
Web Dev Cody
6cb085f192 Merge pull request #173 from AutoMaker-Org/pull-request
pull-request
2025-12-19 21:28:43 -05:00
Cody Seibert
19fd23c39c test: enhance error handling in fs-utils tests
- Added tests to ensure mkdirSafe handles ELOOP and EEXIST errors gracefully.
- Implemented checks for existsSafe to return true for ELOOP errors and throw for other errors.
- Improved overall robustness of filesystem utility tests.
2025-12-19 21:21:39 -05:00
Web Dev Cody
cf7a737646 Merge pull request #180 from AutoMaker-Org/feat/defatul-ai-profile
feat: add default AI profile selection to settings view
2025-12-19 21:21:04 -05:00
Cody Seibert
ff6a5a5565 test: enhance visibility checks in worktree integration tests
- Updated the description input locator to use a more specific selector.
- Added a visibility check for the description textarea before filling it, improving test reliability.
2025-12-19 21:03:47 -05:00
Cody Seibert
3842eb1328 cleaning up code 2025-12-19 20:55:43 -05:00
Cody Seibert
bb5f68c2f0 refactor: improve PR display and interaction in worktree components
- Updated WorktreeActionsDropdown to use DropdownMenuItem for better interaction with PR links.
- Enhanced WorktreeTab to include hover and active states for buttons, and improved accessibility with updated titles and aria-labels.
- Ensured PR URLs are safely opened only if they exist, enhancing user experience and preventing errors.
2025-12-19 20:46:23 -05:00
Cody Seibert
ec7c2892c2 fix: address PR #173 security and code quality feedback
Security fixes:
- Enhanced branch name sanitization for cross-platform filesystem safety
  (handles Windows-invalid chars, reserved names, path length limits)
- Added branch name validation in pr-info.ts to prevent command injection
- Sanitized prUrl in kanban-card to only allow http/https URLs

Code quality improvements:
- Fixed placeholder issue where {owner}/{repo} was passed literally to gh api
- Replaced async forEach with Promise.all for proper async handling
- Display PR number extracted from URL in kanban cards

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 20:39:38 -05:00
Illia Filippov
5c01706806 refactor: update Docker configuration & docs
- Modified docker-compose.yml to clarify that the server runs as a non-root user.
- Updated Dockerfile to use ARG for VITE_SERVER_URL, allowing build-time overrides.
- Replaced inline Nginx configuration with a separate nginx.conf file for better maintainability.
- Adjusted documentation to reflect changes in Docker setup and troubleshooting steps.
2025-12-20 02:12:18 +01:00
Cody Seibert
6c25680115 Changes from pull-request 2025-12-19 20:07:50 -05:00
Kacper
3ca1daf44c feat: clear default AI profile when removing selected profile
- Added logic to clear the default AI profile ID if the selected profile is being removed from the AI profiles list. This ensures that the application maintains a valid state when profiles are deleted.
2025-12-20 01:59:11 +01:00
Kacper
80cf932ea4 feat: add default AI profile selection to settings view
- Introduced default AI profile management in the settings view, allowing users to select a default profile for new features.
- Updated the Add Feature dialog to utilize the selected AI profile, setting default model and thinking level based on the chosen profile.
- Enhanced the Feature Defaults section to display and manage the default AI profile, including a dropdown for selection and relevant information display.
2025-12-20 01:51:46 +01:00
Illia Filippov
abc55cf5e9 feat: add Docker containerization for isolated execution & docs
Provide Docker Compose configuration allowing users to run Automaker
in complete isolation from their host filesystem, addressing security
concerns about AI agents having direct system access.
2025-12-20 01:49:06 +01:00
Cody Seibert
d4365de4b9 feat: enhance PR handling and UI integration for worktrees
- Added a new route for fetching PR info, allowing users to retrieve details about existing pull requests associated with worktrees.
- Updated the create PR handler to store metadata for existing PRs and handle cases where a PR already exists.
- Enhanced the UI components to display PR information, including a new button to address PR comments directly from the worktree panel.
- Improved the overall user experience by integrating PR state indicators and ensuring seamless interaction with the GitHub CLI for PR management.
2025-12-19 19:48:14 -05:00
Kacper
5f92af4c0a fix: resolve CI failures for shared packages
- Update prepare-server.mjs to copy workspace packages and use file:
  references instead of trying to fetch from npm registry
- Lower server test coverage thresholds after moving lib files to
  shared packages (lines: 55%, branches: 50%, statements: 55%)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 01:17:53 +01:00
Kacper
1fc40da052 ci: add shared packages build step to CI workflows
Add build:packages script and update setup-project action to build
shared packages after npm install. This ensures @automaker/* packages
are compiled before apps can use them.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 01:11:53 +01:00
Kacper
5907cc0c04 Merge origin/main into feature/shared-packages 2025-12-20 01:06:05 +01:00
Kacper
57588bfc20 fix: resolve test failures after shared packages migration
Changes:
- Move subprocess-manager tests to @automaker/platform package
  - Tests need to be co-located with source for proper mocking
  - Add vitest configuration to platform package
  - 17/17 platform tests pass

- Update server vitest.config.ts to alias @automaker/* packages
  - Resolve to source files for proper mocking in tests
  - Enables vi.mock() and vi.spyOn() to work correctly

- Fix security.test.ts imports
  - Update dynamic imports from @/lib/security.js to @automaker/platform
  - Module was moved to shared package

- Rewrite prompt-builder.test.ts
  - Use fs/promises mock instead of trying to spy on internal calls
  - 10/10 tests pass

Test Results:
 Server: 536/536 tests pass
 Platform: 17/17 tests pass

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 00:59:53 +01:00
Kacper
4afa73521d refactor: remove duplicate server lib files and convert dependency-resolver to ESM
Cleanup Changes:
- Remove 9 duplicate server lib files now available in shared packages:
  - automaker-paths.ts → @automaker/platform
  - conversation-utils.ts → @automaker/utils
  - error-handler.ts → @automaker/utils
  - fs-utils.ts → @automaker/utils
  - image-handler.ts → @automaker/utils
  - logger.ts → @automaker/utils
  - prompt-builder.ts → @automaker/utils
  - security.ts → @automaker/platform
  - subprocess-manager.ts → @automaker/platform

ESM Conversion:
- Convert @automaker/dependency-resolver from CommonJS to ESM
- Fixes UI build compatibility with Vite bundler
- Update package.json: add "type": "module", change "require" to "import"
- Update tsconfig.json: module "ESNext", moduleResolution "bundler"

Import Fixes:
- Update write.ts to import mkdirSafe from @automaker/utils
- Remove broken @automaker/types import from UI (not exported for Vite)

Build Status:
 Server builds successfully
 UI builds successfully
 All migrated package tests pass (dependency-resolver, utils, platform)
 500/554 server tests pass (54 pre-existing subprocess-manager failures)

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 00:41:35 +01:00
Kacper
3a69f973d0 refactor: extract event, spec, and enhancement types to shared package
- Extract EventType and EventCallback to @automaker/types
- Extract SpecOutput and specOutputSchema to @automaker/types
- Extract EnhancementMode and EnhancementExample to @automaker/types
- Update server files to import from shared types
- Reduces server code duplication by ~123 lines

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 00:29:24 +01:00
Kacper
108d52ce9f refactor: consolidate git utilities and model constants
COMPLETED MIGRATIONS:
- Migrate git utilities from routes/common.ts (383 lines → 39 lines)
  - Replace duplicated code with imports from @automaker/git-utils
  - Keep only route-specific utilities (getErrorMessage, createLogError)
  - All git operations now use shared package consistently

- Remove duplicate model constants in UI
  - Update model-config.ts to import from @automaker/types
  - Update agent-context-parser.ts to use DEFAULT_MODELS.claude
  - Removed 40+ lines of duplicated code

DEFERRED (Server-Specific):
- enhancement-prompts.ts (456 lines) - Server-only, no UI usage
- app-spec-format.ts (318 lines) - Server-only, no UI usage

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 00:20:11 +01:00
Kacper
dd58b70730 fix: resolve critical package issues and update imports
CRITICAL FIXES:
- Fix dependency-resolver ES module failure by reverting to CommonJS
  - Removed "type": "module" from package.json
  - Changed tsconfig.json module from "ESNext" to "commonjs"
  - Added exports field for better module resolution
  - Package now works correctly at runtime

- Fix Feature type incompatibility between server and UI
  - Added FeatureImagePath interface to @automaker/types
  - Made imagePaths property accept multiple formats
  - Added index signature for backward compatibility

HIGH PRIORITY FIXES:
- Remove duplicate model-resolver.ts from apps/server/src/lib/
  - Update sdk-options.ts to import from @automaker/model-resolver
  - Use @automaker/types for CLAUDE_MODEL_MAP and DEFAULT_MODELS

- Remove duplicate session types from apps/ui/src/types/
  - Deleted identical session.ts file
  - Use @automaker/types for session type definitions

- Update source file Feature imports
  - Fix create.ts and update.ts to import Feature from @automaker/types
  - Separate Feature type import from FeatureLoader class import

MEDIUM PRIORITY FIXES:
- Remove unused imports
  - Remove unused AbortError from agent-service.ts
  - Remove unused MessageSquare icon from kanban-card.tsx
  - Consolidate duplicate React imports in hotkey-button.tsx

- Update test file imports to use @automaker/* packages
  - Update 12 test files to import from @automaker/utils
  - Update 2 test files to import from @automaker/platform
  - Update 1 test file to import from @automaker/model-resolver
  - Update dependency-resolver.test.ts imports
  - Update providers/types imports to @automaker/types

VERIFICATION:
- Server builds successfully ✓
- All 6 shared packages build correctly ✓
- Test imports updated and verified ✓

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 00:16:00 +01:00
Kacper
7ad7b63da2 docs: add comprehensive documentation for shared packages
- Added README.md for all 6 shared packages:
  - @automaker/types: Type definitions and interfaces
  - @automaker/utils: Utility functions (logger, error handling, images)
  - @automaker/platform: Platform utilities (paths, subprocess, security)
  - @automaker/model-resolver: Claude model resolution
  - @automaker/dependency-resolver: Feature dependency ordering
  - @automaker/git-utils: Git operations and diff generation

- Removed MIT license from all package.json files (using custom dual license)

- Created comprehensive LLM guide (docs/llm-shared-packages.md):
  - When to use each package
  - Import patterns and examples
  - Common usage patterns
  - Migration checklist
  - Do's and don'ts for LLMs

Documentation helps developers and AI assistants understand package purpose,
usage, and best practices.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-19 23:52:42 +01:00
Kacper
060a789b45 refactor: update all imports to use shared packages
- Updated 150+ files to import from @automaker/* packages
- Server imports now use @automaker/utils, @automaker/platform, @automaker/types, @automaker/model-resolver, @automaker/dependency-resolver, @automaker/git-utils
- UI imports now use @automaker/dependency-resolver and @automaker/types
- Deleted duplicate dependency-resolver files (222 lines eliminated)
- Updated dependency-resolver to use ES modules for Vite compatibility
- Added type annotation fix in auto-mode-service.ts
- Updated feature-loader to re-export Feature type from @automaker/types
- Both server and UI builds successfully verified

Phase 1 of server refactoring complete.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-19 23:46:27 +01:00