- Introduced a ref to keep the focused menu index in sync with state, enhancing keyboard navigation within the terminal context menu.
- Updated event handlers to utilize the ref for managing focus, ensuring consistent behavior during menu interactions.
- Simplified dependencies in the effect hook for better performance and clarity.
- Enhanced context menu positioning with boundary checks to prevent overflow on screen edges.
- Updated platform detection logic for Mac users to utilize modern userAgentData API with a fallback to deprecated navigator.platform.
- Ensured context menu opens correctly within viewport limits, improving user experience.
- Improved context menu functionality by adding keyboard navigation support for actions (copy, paste, select all, clear).
- Utilized refs to manage focus on menu items and updated platform detection for Mac users.
- Ensured context menu closes on outside clicks and handles keyboard events effectively.
- Added context menu with options to copy, paste, select all, and clear terminal content.
- Integrated keyboard shortcuts for copy (Ctrl/Cmd+C), paste (Ctrl/Cmd+V), and select all (Ctrl/Cmd+A).
- Enhanced platform detection for Mac users to adjust key bindings accordingly.
- Implemented functionality to handle context menu actions and close the menu on outside clicks or key events.
Introduced a new GitHub Action to streamline project setup in CI workflows. This action handles Node.js setup, dependency installation, and native module rebuilding, replacing repetitive steps in multiple workflow files. Updated e2e-tests, pr-check, and test workflows to utilize the new action, enhancing maintainability and reducing duplication.
- Changed border color from transparent to border-border for better visibility.
- Updated thumb background color from bg-background to bg-foreground to enhance contrast.
Context files from .automaker/context/ (CLAUDE.md, CODE_QUALITY.md, etc.)
are now passed as system prompt instead of prepending to user prompt.
This ensures the agent follows project-specific rules like package manager
preferences (pnpm vs npm) and coding conventions.
Changes:
- Add getContextDir() utility to automaker-paths.ts
- Add loadContextFiles() method to load .md/.txt files from context dir
- Pass context as systemPrompt in executeFeature() and followUpFeature()
- Add debug logging to confirm system prompt is provided
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Introduced a new starter template for the Automaker Starter Kit, which includes a comprehensive description, tech stack, features, and author information. This template aims to support aspiring full stack engineers in their learning journey.
When executeFeatureWithContext calls executeFeature with a continuation
prompt, skip the context existence check to avoid the loop:
executeFeature -> resumeFeature -> executeFeatureWithContext -> executeFeature
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When executeFeatureWithContext calls executeFeature with a continuation
prompt, skip the context existence check to avoid the loop:
executeFeature -> resumeFeature -> executeFeatureWithContext -> executeFeature
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed the static server port from 5173 to 3007 in init.mjs, playwright.config.ts, vite.config.mts, and main.ts to ensure consistency in server setup and availability.
- Updated logging messages to reflect the new port configuration.
- Deleted the init.sh script, which was responsible for setting up and launching the development environment, including dependency installation and server management.
- Changed the port from 3007 to 5173 in the logging and server availability messages to reflect the new configuration.
- Ensured that the process killing function targets the correct port for consistency in server setup.
- Added comprehensive tests for the `specToXml` function, covering various scenarios including minimal specs, XML escaping, and optional sections.
- Updated tests for `getStructuredSpecPromptInstruction` and `getAppSpecFormatInstruction` to ensure they return valid instructions.
- Refactored automaker paths tests to use `path.join` for cross-platform compatibility, ensuring correct directory paths are generated.
- Merge PR #162: cross-platform dev script (init.mjs)
- Updated init.mjs to reference apps/ui instead of apps/app
- Updated root package.json scripts to use apps/ui workspace
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replaced JavaScript files with ES module versions for server preparation and setup scripts.
- Introduced `prepare-server.mjs` for bundling server with Electron, enhancing dependency management.
- Added `rebuild-server-natives.cjs` for rebuilding native modules during the Electron packaging process.
- Updated `setup-e2e-fixtures.mjs` to create necessary directories and files for Playwright tests.
- Adjusted `package.json` scripts to reflect changes in file extensions and improve build process clarity.
- Cleaned up the code by removing the comment on maxTurns, which previously explained the increase from quick to standard. The value remains set to MAX_TURNS.extended.
- Introduced a TypeScript interface for structured specification output to standardize project details.
- Added a JSON schema for reliable parsing of structured output.
- Implemented XML conversion for structured specifications, ensuring comprehensive project representation.
- Updated spec generation options to include output format configuration.
- Enhanced prompt instructions for generating specifications to improve clarity and completeness.
- Enhanced instructions for generating app specifications to clarify XML output requirements.
- Updated permission mode in spec generation options to ensure read-only access.
- Improved logging to capture XML content extraction and handle potential issues with incomplete responses.
- Ensured that only valid XML is saved, avoiding conversational text from the response.
The --ignore-scripts flag also skips building native modules like
node-pty which the server needs. Added explicit rebuild step for
node-pty in test.yml and e2e-tests.yml workflows.
This is more targeted than electron-builder install-app-deps which
rebuilds ALL native modules and causes OOM.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The npm install for Linux bindings was also triggering electron-builder
postinstall script. Added --ignore-scripts to all three workflows.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
electron-builder install-app-deps rebuilds native modules and uses
too much memory, causing npm install to be killed (exit code 143).
Updated workflows:
- e2e-tests.yml
- test.yml
- pr-check.yml
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Merge latest features from main including:
- PR #161 (worktree-confusion): Clarified branch handling in dialogs
- PR #160 (speckits-rebase): Planning mode functionality
Resolved conflicts:
- add-feature-dialog.tsx: Combined TanStack Router navigation with branch selection state
- worktree-integration.spec.ts: Updated tests for new worktree behavior (created at execution time)
- package-lock.json: Regenerated after merge
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace Unix-only init.sh with cross-platform init.mjs Node.js script.
Changes:
- Add init.mjs: Cross-platform Node.js implementation of init.sh
- Update package.json: Change dev script from ./init.sh to node init.mjs
- Add tree-kill dependency for reliable cross-platform process termination
Key features of init.mjs:
- Cross-platform port detection (netstat on Windows, lsof on Unix)
- Cross-platform process killing using tree-kill package
- Uses cross-spawn for reliable npm/npx command execution on Windows
- Interactive prompts via Node.js readline module
- Colored terminal output (works on modern Windows terminals)
- Proper cleanup handlers for Ctrl+C/SIGTERM
Bug fix:
- Fixed Playwright browser check to run from apps/app directory where
@playwright/test is actually installed (was silently failing before)
The original init.sh is preserved for backward compatibility.
- Adjusted Playwright configuration to set workers to undefined for improved test execution.
- Updated comments in worktree integration tests to clarify branch creation logic and ensure accurate assertions regarding branch and worktree paths.
- Added functionality to select "Other branch" in the edit feature dialog, enabling the branch input field.
- Updated the locator for the branch input from 'edit-feature-branch' to 'edit-feature-input' for consistency across tests.