Commit Graph

866 Commits

Author SHA1 Message Date
Kacper
51641bad9c test: add unit tests for exec-utils, feature verification, project analysis, and task execution
- Introduced comprehensive unit tests for exec-utils, covering execAsync, extendedPath, execEnv, and isENOENT functions.
- Added tests for FeatureVerificationService to validate feature verification and commit processes.
- Implemented tests for ProjectAnalyzer to ensure project analysis functionality.
- Created tests for TaskExecutor to validate task execution and event emissions.

These additions enhance test coverage and ensure the reliability of core functionalities.
2025-12-23 00:53:10 +01:00
Kacper
a1c5d0cb0d refactor: replace console.log with createLogger in services
- Update feature-loader.ts to use logger.info instead of console.log
- Update dev-server-service.ts to use createLogger for all logging
- Update terminal-service.ts to use createLogger for all logging
- Update agent-service.ts to use createLogger for all logging
- Fix agent-service.test.ts mock to preserve actual createLogger

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 00:53:10 +01:00
Kacper
0bb9db5f80 refactor: enhance feature filtering in FeatureLoader
- Updated getPending method to ensure that only features with a defined status are included in the pending features list.
- Improved code readability by using a more concise filter function.

This change enhances the robustness of feature status handling.
2025-12-23 00:35:37 +01:00
Kacper
5ec19f11cd refactor: enhance file system utilities with isENOENT helper
- Added isENOENT function to routes/common.ts for improved error handling.
- Re-exported isENOENT alongside existing utilities for better accessibility.

This change streamlines error management in file system operations.
2025-12-23 00:34:11 +01:00
Kacper
85dc631250 refactor: consolidate shared packages and eliminate code duplication
- Update 26+ files to import secureFs from @automaker/platform
- Create shared type files: github.ts, worktree.ts, claude.ts in libs/types
- Create exec-utils.ts for cross-platform shell execution
- Delete redundant wrapper files: secure-fs.ts, stream-processor.ts, enhancement-prompts.ts
- Update GitHub routes to use createLogError pattern
- Add isENOENT helper to routes/common.ts
- Fix test imports to use @automaker/prompts and @automaker/platform

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 00:31:23 +01:00
Kacper
460afa82b8 refactor: consolidate Claude SDK interactions into provider architecture
Add executeSimpleQuery() and executeStreamingQuery() methods to ClaudeProvider
to consolidate duplicated SDK interaction patterns across route handlers.

Changes:
- Add executeSimpleQuery() for one-shot queries (title gen, descriptions, etc.)
- Add executeStreamingQuery() for queries with tools and structured output
- Add extractTextFromStream() private method (was duplicated 5+ times)
- Add createPromptGenerator() for multi-part prompts (images, text)
- Add new types: SimpleQueryOptions, SimpleQueryResult, StreamingQueryOptions,
  StreamingQueryResult, PromptContentBlock
- Update BaseProvider with abstract method signatures

Refactored routes to use provider:
- generate-title.ts: uses executeSimpleQuery()
- describe-file.ts: uses executeSimpleQuery()
- describe-image.ts: uses executeSimpleQuery()
- enhance.ts: uses executeSimpleQuery()
- generate-spec.ts: uses executeStreamingQuery()
- generate-features-from-spec.ts: uses executeStreamingQuery()
- generate-suggestions.ts: uses executeStreamingQuery()

Benefits:
- Eliminates 5+ duplicated extractTextFromStream() functions
- All SDK interactions now go through provider architecture
- Consistent error handling and logging
- Support for streaming callbacks (onText, onToolUse)
- Support for structured output (outputFormat)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 23:58:02 +01:00
Kacper
79ef8c8510 refactor: extract auto-mode-service into modular services
Reduce auto-mode-service.ts from 1308 to 516 lines (60% reduction) by
extracting reusable functionality into shared packages and services:

- Add feature prompt builders to @automaker/prompts (buildFeaturePrompt,
  buildFollowUpPrompt, buildContinuationPrompt, extractTitleFromDescription)
- Add planning prompts and task parsing to @automaker/prompts
- Add stream processor utilities to @automaker/utils (sleep, processStream)
- Add git commit utilities to @automaker/git-utils (commitAll, hasUncommittedChanges)
- Create ProjectAnalyzer service for project analysis
- Create FeatureVerificationService for verify/commit operations
- Extend FeatureLoader with updateStatus, updatePlanSpec, getPending methods
- Expand FeatureStatus type to include all used statuses
- Add PlanSpec and ParsedTask types to @automaker/types

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 23:27:28 +01:00
Web Dev Cody
c4a2f2c2a8 Merge pull request #221 from AutoMaker-Org/minor-fixes-again
Refactor e2e Tests
v0.6.0
2025-12-22 16:00:34 -05:00
Test User
d08be3c7f9 refactor: clean up whitespace in update-version script
- Removed unnecessary blank lines in the update-version.mjs script for improved readability.
2025-12-22 16:00:24 -05:00
Test User
a69611dcb2 simplify the e2e tests 2025-12-22 15:52:11 -05:00
Web Dev Cody
83af319be3 Merge pull request #220 from AutoMaker-Org/feat/gh-issues-markdow-support
feat: markdown support for gh issues / pull requests
2025-12-22 14:43:31 -05:00
Test User
55d7120576 feat: add GitHub Actions workflow for release builds
- Introduced a new workflow in release.yml to automate the release process for macOS, Windows, and Linux.
- Added a script (update-version.mjs) to update the version in package.json based on the release tag.
- Configured artifact uploads for each platform and ensured proper version extraction and validation.
2025-12-22 14:26:41 -05:00
Kacper
73e7a8558d fix: package lock file 2025-12-22 20:24:16 +01:00
Kacper
0b8a79bc25 feat: add rehype-sanitize for enhanced Markdown security
- Added rehype-sanitize as a dependency to sanitize Markdown content.
- Updated the Markdown component to include rehype-sanitize in the rehypePlugins for improved security against XSS attacks.
2025-12-22 20:22:40 +01:00
Web Dev Cody
59cb48b7fa Merge pull request #219 from AutoMaker-Org/fix/summary-modal-issue
fix: summary modal not appearing when clicking the button in kanban card
2025-12-22 14:21:54 -05:00
Web Dev Cody
f45ba5a4f5 Merge pull request #208 from AutoMaker-Org/fix/electron-node-path-finder-launch-v2
fix: add cross-platform Node.js executable finder for desktop launches
2025-12-22 14:19:42 -05:00
Kacper
a0fd19fe17 Changes from feat/gh-issues-markdow-support 2025-12-22 20:18:07 +01:00
Kacper
4cff240520 fix: summary modal not appearing when clicking the button in kanban card 2025-12-22 19:36:15 +01:00
Test User
e40881ed1d Merge branch 'main' into fix/electron-node-path-finder-launch-v2 2025-12-22 13:26:08 -05:00
Web Dev Cody
6a8b2067fd Merge pull request #217 from JBotwina/fix/176-logo-macos-buttons-overlap
fix(ui): prevent logo from overlapping macOS traffic light buttons
2025-12-22 13:23:05 -05:00
Web Dev Cody
3f3f02905f Merge pull request #216 from AutoMaker-Org/github-category
GitHub category
2025-12-22 13:22:28 -05:00
Test User
edef4c7cee refactor: optimize issue and PR fetching by using parallel execution
- Updated the list-issues and list-prs handlers to fetch open and closed issues, as well as open and merged PRs in parallel, improving performance.
- Removed the redundant 'issues' and 'prs' properties from the result interfaces to streamline the response structure.
- Added 'skipTests' flag in integration tests to indicate tests that should be skipped, enhancing test management.
2025-12-22 13:13:47 -05:00
James
53c1a46409 .includes is never called on undefined 2025-12-22 12:49:53 -05:00
Test User
0c508ce130 feat: add end-to-end testing guide and project creation tests
- Introduced a comprehensive E2E Testing Guide outlining best practices for Playwright tests, including principles for test isolation, element selection, and setup utilities.
- Added new test files for project creation and opening existing projects, ensuring functionality for creating blank projects and projects from GitHub templates.
- Implemented utility functions for setting up test states and managing localStorage, enhancing maintainability and reducing boilerplate in tests.
2025-12-22 12:49:48 -05:00
James
3c48b2ceb7 add more robust util fn 2025-12-22 12:40:56 -05:00
James
64bf02d59c fix 2025-12-22 12:36:56 -05:00
James Botwina
a2030d5877 Update apps/ui/src/components/layout/sidebar/components/sidebar-header.tsx
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-12-22 12:33:42 -05:00
James
f17d062440 fix(ui): prevent logo from overlapping macOS traffic light buttons
Add platform detection to apply additional left padding (pl-20) and top
padding (pt-4) on macOS to prevent the sidebar header/logo from
overlapping with the native window control buttons (close, minimize,
maximize).

Fixes #176
2025-12-22 12:28:06 -05:00
Test User
3a43033fa6 fix conflicts 2025-12-22 12:15:48 -05:00
Test User
9586589453 fixing auto verify for kanban issues 2025-12-22 12:10:54 -05:00
Web Dev Cody
a85dec6dbb Merge pull request #211 from AutoMaker-Org/kanban-scaling
Kanban scaling
2025-12-22 09:30:16 -05:00
Web Dev Cody
632d3181f2 Merge pull request #215 from AutoMaker-Org/integrate-build-packages-workflow
chore: integrate build:packages into development workflow
2025-12-22 09:30:04 -05:00
trueheads
4e876de458 e2e component rename v3 2025-12-22 08:16:07 -06:00
Kacper
dea504a671 ♻️ refactor: use internal scripts pattern to eliminate duplicate builds in dev:full
- Add internal _dev:* scripts without build:packages prefix
- Update dev:full to call build:packages once, then use internal scripts via concurrently
- This prevents build:packages from running 3 times (once in dev:full, once in dev:server, once in dev:web)
- Keep build scripts simple with direct approach (no duplication issue to solve)

Addresses gemini-code-assist bot feedback on PR #215

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 12:18:49 +01:00
Kacper
877fcb094e 🧑‍💻 chore: integrate build:packages into development workflow
- Add build:packages to prepare hook for automatic builds after npm install
- Prefix all dev:* scripts with build:packages to ensure packages are built before development
- Prefix all build:* scripts with build:packages to ensure packages are built before production builds

This ensures developers never encounter "module not found" errors from unbuilt packages in libs/ directory.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 12:06:08 +01:00
trueheads
fc75923211 e2e component rename 2025-12-22 02:18:29 -06:00
trueheads
73cab38ba5 satisfying test errors 2025-12-22 02:06:17 -06:00
trueheads
0cd3275e4a Merge main into kanban-scaling
Resolves merge conflicts while preserving:
- Kanban scaling improvements (window sizing, bounce prevention, debouncing)
- Main's sidebar refactoring into hooks
- Main's openInEditor functionality for VS Code integration

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 01:49:45 -06:00
Test User
9702f142c4 chore: update build scripts in package.json for improved package management
- Modified the build command to first execute the build:packages script, ensuring all necessary packages are built before the UI.
- Streamlined the build:packages command by consolidating workspace flags for better readability and maintenance.
2025-12-22 02:33:39 -05:00
Web Dev Cody
2906fec500 Merge pull request #212 from AutoMaker-Org/improve-context-page
fixing file uploads on context page
2025-12-22 02:27:26 -05:00
Test User
5e2718f8b2 test: enhance agent-service tests with context loading mock
- Added a mock for the `loadContextFiles` function to return an empty context by default, improving test reliability.
- Updated the agent-service test suite to ensure proper initialization of the `AgentService` with mocked dependencies.

These changes aim to enhance the test coverage and stability of the agent-service functionality.
2025-12-22 02:18:31 -05:00
Test User
3b0a1a7eb2 feat: enhance file description endpoint with security and error handling improvements
- Implemented path validation against ALLOWED_ROOT_DIRECTORY to prevent arbitrary file reads and prompt injection attacks.
- Added error handling for file reading, including specific responses for forbidden paths and file not found scenarios.
- Updated the description generation logic to truncate large files and provide structured prompts for analysis.
- Enhanced logging for better traceability of file access and errors.

These changes aim to improve the security and reliability of the file description functionality.
2025-12-22 02:08:47 -05:00
Test User
35cda4eb8c Merge branch 'main' of github.com:AutoMaker-Org/automaker into improve-context-page 2025-12-22 00:50:55 -05:00
trueheads
fd39f96b4c adjusted minheight logic and fixed tests 2025-12-21 23:13:59 -06:00
Test User
398f7b8fdd feat: implement context file loading system for agent prompts
- Introduced a new utility function `loadContextFiles` to load project-specific context files from the `.automaker/context/` directory, enhancing agent prompts with project rules and guidelines.
- Updated `AgentService` and `AutoModeService` to utilize the new context loading functionality, combining context prompts with existing system prompts for improved agent performance.
- Added comprehensive documentation on the context files system, including usage examples and metadata structure, to facilitate better understanding and implementation.
- Removed redundant context loading logic from `AutoModeService`, streamlining the codebase.

These changes aim to improve the agent's contextual awareness and adherence to project-specific conventions.
2025-12-22 00:09:57 -05:00
Test User
e2718b37e3 fixing file uploads on context page 2025-12-21 23:44:26 -05:00
Web Dev Cody
95bcd9a7ec Merge pull request #202 from AutoMaker-Org/massive-terminal-upgrade
feat: enhance terminal functionality and settings
2025-12-21 20:46:48 -05:00
SuperComboGamer
8d578558ff style: fix formatting with Prettier
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 20:31:57 -05:00
SuperComboGamer
584f5a3426 Merge main into massive-terminal-upgrade
Resolves merge conflicts:
- apps/server/src/routes/terminal/common.ts: Keep randomBytes import, use @automaker/utils for createLogger
- apps/ui/eslint.config.mjs: Use main's explicit globals list with XMLHttpRequest and MediaQueryListEvent additions
- apps/ui/src/components/views/terminal-view.tsx: Keep our terminal improvements (killAllSessions, beforeunload, better error handling)
- apps/ui/src/config/terminal-themes.ts: Keep our search highlight colors for all themes
- apps/ui/src/store/app-store.ts: Keep our terminal settings persistence improvements (merge function)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 20:27:44 -05:00
Web Dev Cody
17c69ea1ca Merge pull request #204 from AutoMaker-Org/try-to-fix-gpu-issue-mac
refactor: optimize button animations and interval checks for performance
2025-12-21 19:51:33 -05:00