Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions .claude/commands/gh-issue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# GitHub Issue Fix Command

Fetch a GitHub issue by number, verify it's a real issue, and fix it if valid.

## Usage

This command accepts a GitHub issue number as input (e.g., `123`).

## Instructions

1. **Get the issue number from the user**
- The issue number should be provided as an argument to this command
- If no number is provided, ask the user for it

2. **Fetch the GitHub issue**
- Determine the current project path (check if there's a current project context)
- Verify the project has a GitHub remote:
```bash
git remote get-url origin
```
- Fetch the issue details using GitHub CLI:
```bash
gh issue view <ISSUE_NUMBER> --json number,title,state,author,createdAt,labels,url,body,assignees
```
- If the command fails, report the error and stop

3. **Verify the issue is real and valid**
- Check that the issue exists (not 404)
- Check the issue state:
- If **closed**: Inform the user and ask if they still want to proceed
- If **open**: Proceed with validation
- Review the issue content:
- Read the title and body to understand what needs to be fixed
- Check labels for context (bug, enhancement, etc.)
- Note any assignees or linked PRs

4. **Validate the issue**
- Determine if this is a legitimate issue that needs fixing:
- Is the description clear and actionable?
- Does it describe a real problem or feature request?
- Are there any obvious signs it's spam or invalid?
- If the issue seems invalid or unclear:
- Report findings to the user
- Ask if they want to proceed anyway
- Stop if user confirms it's not valid

5. **If the issue is valid, proceed to fix it**
- Analyze what needs to be done based on the issue description
- Check the current codebase state:
- Run relevant tests to see current behavior
- Check if the issue is already fixed
- Look for related code that might need changes
- Implement the fix:
- Make necessary code changes
- Update or add tests as needed
- Ensure the fix addresses the issue description
- Verify the fix:
- Run tests to ensure nothing broke
- If possible, manually verify the fix addresses the issue

6. **Report summary**
- Issue number and title
- Issue state (open/closed)
- Whether the issue was validated as real
- What was fixed (if anything)
- Any tests that were updated or added
- Next steps (if any)

## Error Handling

- If GitHub CLI (`gh`) is not installed or authenticated, report error and stop
- If the project doesn't have a GitHub remote, report error and stop
- If the issue number doesn't exist, report error and stop
- If the issue is unclear or invalid, report findings and ask user before proceeding
56 changes: 56 additions & 0 deletions .claude/commands/release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Release Command

Bump the package.json version (major, minor, or patch) and build the Electron app with the new version.

## Usage

This command accepts a version bump type as input:

- `patch` - Bump patch version (0.1.0 -> 0.1.1)
- `minor` - Bump minor version (0.1.0 -> 0.2.0)
- `major` - Bump major version (0.1.0 -> 1.0.0)

## Instructions

1. **Get the bump type from the user**
- The bump type should be provided as an argument (patch, minor, or major)
- If no type is provided, ask the user which type they want

2. **Bump the version**
- Run the version bump script:
```bash
node apps/ui/scripts/bump-version.mjs <type>
```
- This updates both `apps/ui/package.json` and `apps/server/package.json` with the new version (keeps them in sync)
- Verify the version was updated correctly by checking the output

3. **Build the Electron app**
- Run the electron build:
```bash
npm run build:electron --workspace=apps/ui
```
- The build process automatically:
- Uses the version from `package.json` for artifact names (e.g., `Automaker-1.2.3-x64.zip`)
- Injects the version into the app via Vite's `__APP_VERSION__` constant
- Displays the version below the logo in the sidebar

4. **Verify the release**
- Check that the build completed successfully
- Confirm the version appears correctly in the built artifacts
- The version will be displayed in the app UI below the logo

## Version Centralization

The version is centralized and synchronized in both `apps/ui/package.json` and `apps/server/package.json`:

- **Electron builds**: Automatically read from `apps/ui/package.json` via electron-builder's `${version}` variable in `artifactName`
- **App display**: Injected at build time via Vite's `define` config as `__APP_VERSION__` constant (defined in `apps/ui/vite.config.mts`)
- **Server API**: Read from `apps/server/package.json` via `apps/server/src/lib/version.ts` utility (used in health check endpoints)
- **Type safety**: Defined in `apps/ui/src/vite-env.d.ts` as `declare const __APP_VERSION__: string`

This ensures consistency across:

- Build artifact names (e.g., `Automaker-1.2.3-x64.zip`)
- App UI display (shown as `v1.2.3` below the logo in `apps/ui/src/components/layout/sidebar/components/automaker-logo.tsx`)
- Server health endpoints (`/` and `/detailed`)
- Package metadata (both UI and server packages stay in sync)
117 changes: 117 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: Bug Report
description: File a bug report to help us improve Automaker
title: '[Bug]: '
labels: ['bug']
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report a bug! Please fill out the form below with as much detail as possible.

- type: dropdown
id: operating-system
attributes:
label: Operating System
description: What operating system are you using?
options:
- macOS
- Windows
- Linux
- Other
default: 0
validations:
required: true

- type: dropdown
id: run-mode
attributes:
label: Run Mode
description: How are you running Automaker?
options:
- Electron (Desktop App)
- Web (Browser)
- Docker
default: 0
validations:
required: true

- type: input
id: app-version
attributes:
label: App Version
description: What version of Automaker are you using? (e.g., 0.1.0)
placeholder: '0.1.0'
validations:
required: true

- type: textarea
id: bug-description
attributes:
label: Bug Description
description: A clear and concise description of what the bug is.
placeholder: Describe the bug...
validations:
required: true

- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to Reproduce
description: Steps to reproduce the behavior
placeholder: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
validations:
required: true

- type: textarea
id: expected-behavior
attributes:
label: Expected Behavior
description: A clear and concise description of what you expected to happen.
placeholder: What should have happened?
validations:
required: true

- type: textarea
id: actual-behavior
attributes:
label: Actual Behavior
description: A clear and concise description of what actually happened.
placeholder: What actually happened?
validations:
required: true

- type: textarea
id: screenshots
attributes:
label: Screenshots
description: If applicable, add screenshots to help explain your problem.
placeholder: Drag and drop screenshots here or paste image URLs

- type: textarea
id: logs
attributes:
label: Relevant Logs
description: If applicable, paste relevant logs or error messages.
placeholder: Paste logs here...
render: shell

- type: textarea
id: additional-context
attributes:
label: Additional Context
description: Add any other context about the problem here.
placeholder: Any additional information that might be helpful...

- type: checkboxes
id: terms
attributes:
label: Checklist
options:
- label: I have searched existing issues to ensure this bug hasn't been reported already
required: true
- label: I have provided all required information above
required: true
34 changes: 17 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<p align="center">
<img src="apps/ui/public/readme_logo.png" alt="Automaker Logo" height="80" />
<img src="apps/ui/public/readme_logo.svg" alt="Automaker Logo" height="80" />
</p>

> **[!TIP]**
Expand Down Expand Up @@ -81,22 +81,6 @@ Automaker leverages the [Claude Agent SDK](https://www.npmjs.com/package/@anthro

The future of software development is **agentic coding**—where developers become architects directing AI agents rather than manual coders. Automaker puts this future in your hands today, letting you experience what it's like to build software 10x faster with AI agents handling the implementation while you focus on architecture and business logic.

---

> **[!CAUTION]**
>
> ## Security Disclaimer
>
> **This software uses AI-powered tooling that has access to your operating system and can read, modify, and delete files. Use at your own risk.**
>
> We have reviewed this codebase for security vulnerabilities, but you assume all risk when running this software. You should review the code yourself before running it.
>
> **We do not recommend running Automaker directly on your local computer** due to the risk of AI agents having access to your entire file system. Please sandbox this application using Docker or a virtual machine.
>
> **[Read the full disclaimer](./DISCLAIMER.md)**

---

## Community & Support

Join the **Agentic Jumpstart** to connect with other builders exploring **agentic coding** and autonomous development workflows.
Expand Down Expand Up @@ -624,6 +608,22 @@ data/
└── {sessionId}.json
```

---

> **[!CAUTION]**
>
> ## Security Disclaimer
>
> **This software uses AI-powered tooling that has access to your operating system and can read, modify, and delete files. Use at your own risk.**
>
> We have reviewed this codebase for security vulnerabilities, but you assume all risk when running this software. You should review the code yourself before running it.
>
> **We do not recommend running Automaker directly on your local computer** due to the risk of AI agents having access to your entire file system. Please sandbox this application using Docker or a virtual machine.
>
> **[Read the full disclaimer](./DISCLAIMER.md)**

---

## Learn More

### Documentation
Expand Down
4 changes: 2 additions & 2 deletions apps/server/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@automaker/server",
"version": "0.1.0",
"version": "0.7.1",
"description": "Backend server for Automaker - provides API for both web and Electron modes",
"author": "AutoMaker Team",
"license": "SEE LICENSE IN LICENSE",
Expand All @@ -24,7 +24,7 @@
"test:unit": "vitest run tests/unit"
},
"dependencies": {
"@anthropic-ai/claude-agent-sdk": "0.1.72",
"@anthropic-ai/claude-agent-sdk": "0.1.76",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

@anthropic-ai/claude-agent-sdk 0.1.73 0.1.74 0.1.75 0.1.76 changelog release notes breaking changes

💡 Result:

I found package/version metadata and pointers to the SDK changelog; specific release notes for 0.1.73 → 0.1.76 are published in the repository CHANGELOG and in the package registry:

  • Versions and publish dates (npm/yarn metadata): 0.1.74 (Dec 19, 2025), 0.1.75 (Dec 20, 2025), 0.1.76 (Dec 22, 2025). [1]
  • Official docs point to the TypeScript SDK CHANGELOG on the GitHub repo for detailed release notes and breaking-change information. I recommend checking the repository CHANGELOG.md for the exact notes and any breaking changes. [2][3]

Links:

  • Package listing (yarn/npm metadata showing versions/dates). [1]
  • Agent SDK docs / changelog pointer (links to the repo CHANGELOG.md). [2][3]

If you want, I can fetch the CHANGELOG.md from the TypeScript repo and extract the full release notes and any breaking changes for 0.1.73–0.1.76. Which would you prefer?


🌐 Web query:

anthropic-ai/typescript-sdk claude-agent-sdk GitHub repository CHANGELOG

💡 Result:

I found the repository and its CHANGELOG.md:

  • GitHub repo (claude-agent-sdk-typescript) — contains CHANGELOG.md. [1]
  • Official Agent SDK docs referencing the TypeScript SDK changelog. [2]

References:
[1] https://github.com/anthropics/claude-agent-sdk-typescript
[2] https://docs.claude.com/en/docs/agent-sdk/overview


🏁 Script executed:

curl -s https://raw.githubusercontent.com/anthropics/claude-agent-sdk-typescript/main/CHANGELOG.md | head -200

Repository: AutoMaker-Org/automaker

Length of output: 5342


🏁 Script executed:

curl -s https://raw.githubusercontent.com/anthropics/claude-agent-sdk-typescript/main/CHANGELOG.md | grep -A 3 "## 0.1.7[56]"

Repository: AutoMaker-Org/automaker

Length of output: 49


🏁 Script executed:

curl -s "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk" | jq '.versions | keys[-10:]' 2>/dev/null || echo "Failed to fetch npm data"

Repository: AutoMaker-Org/automaker

Length of output: 187


🏁 Script executed:

curl -s "https://api.github.com/repos/anthropics/claude-agent-sdk-typescript/releases" | jq '.[] | select(.tag_name | test("0.1.7[56]|0.1.76")) | {tag_name, name, body}'

Repository: AutoMaker-Org/automaker

Length of output: 49


🏁 Script executed:

curl -s "https://api.github.com/repos/anthropics/claude-agent-sdk-typescript/releases?per_page=20" | jq '.[] | {tag_name, published_at, prerelease}'

Repository: AutoMaker-Org/automaker

Length of output: 345


🏁 Script executed:

curl -s "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk/0.1.75" | jq '{version, time}' 2>/dev/null && \
curl -s "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk/0.1.76" | jq '{version, time}' 2>/dev/null

Repository: AutoMaker-Org/automaker

Length of output: 150


🏁 Script executed:

cd apps/server && cat package.json | grep -A 2 -B 2 "claude-agent-sdk"

Repository: AutoMaker-Org/automaker

Length of output: 223


Version 0.1.76 does not appear to be a published release.

The specified version 0.1.76 has no published timestamp in npm and no corresponding GitHub release. The latest published version is 0.1.74 (Dec 19, 2025). Versions 0.1.75 and 0.1.76 exist in npm metadata but show time: null, indicating they are not properly released.

The recent documented versions (0.1.73–0.1.74) contain only bug fixes with no breaking changes. Verify whether the version in package.json should be 0.1.74 instead, or confirm that 0.1.76 is the intended version despite not being published yet.

🤖 Prompt for AI Agents
In apps/server/package.json at line 27, the dependency
"@anthropic-ai/claude-agent-sdk": "0.1.76" points to a version that has no
published timestamp/release; either change it to the latest published stable
"0.1.74" or confirm 0.1.76 is intentionally used once it is published. To fix:
verify on npm and GitHub whether 0.1.76 is published; if not, update
package.json to "0.1.74", run your package manager to regenerate lockfile (npm
install / yarn install) and commit the lockfile changes; if 0.1.76 is intended,
wait for the upstream publish and re-run install before merging, or replace with
a valid git tag/source that matches the intended unreleased commit and document
that decision in the PR.

"@automaker/dependency-resolver": "1.0.0",
"@automaker/git-utils": "1.0.0",
"@automaker/model-resolver": "1.0.0",
Expand Down
6 changes: 5 additions & 1 deletion apps/server/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,11 @@ app.use(
}

// For local development, allow localhost origins
if (origin.startsWith('http://localhost:') || origin.startsWith('http://127.0.0.1:')) {
if (
origin.startsWith('http://localhost:') ||
origin.startsWith('http://127.0.0.1:') ||
origin.startsWith('http://[::1]:')
) {
callback(null, origin);
return;
}
Expand Down
2 changes: 1 addition & 1 deletion apps/server/src/lib/settings-helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ export async function getEnableSandboxModeSetting(

try {
const globalSettings = await settingsService.getGlobalSettings();
const result = globalSettings.enableSandboxMode ?? true;
const result = globalSettings.enableSandboxMode ?? false;
logger.info(`${logPrefix} enableSandboxMode from global settings: ${result}`);
return result;
} catch (error) {
Expand Down
33 changes: 33 additions & 0 deletions apps/server/src/lib/version.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/**
* Version utility - Reads version from package.json
*/

import { readFileSync } from 'fs';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

let cachedVersion: string | null = null;

/**
* Get the version from package.json
* Caches the result for performance
*/
export function getVersion(): string {
if (cachedVersion) {
return cachedVersion;
}

try {
const packageJsonPath = join(__dirname, '..', '..', 'package.json');
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
const version = packageJson.version || '0.0.0';
cachedVersion = version;
return version;
} catch (error) {
console.warn('Failed to read version from package.json:', error);
return '0.0.0';
}
}
3 changes: 2 additions & 1 deletion apps/server/src/routes/health/routes/detailed.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@

import type { Request, Response } from 'express';
import { getAuthStatus } from '../../../lib/auth.js';
import { getVersion } from '../../../lib/version.js';

export function createDetailedHandler() {
return (_req: Request, res: Response): void => {
res.json({
status: 'ok',
timestamp: new Date().toISOString(),
version: process.env.npm_package_version || '0.1.0',
version: getVersion(),
uptime: process.uptime(),
memory: process.memoryUsage(),
dataDir: process.env.DATA_DIR || './data',
Expand Down
Loading