mirror of
https://github.com/leonvanzyl/autocoder.git
synced 2026-02-05 08:23:08 +00:00
rebrand: rename AutoCoder to AutoForge across entire codebase
Complete project rebrand from AutoCoder to AutoForge, touching 62 files across Python backend, FastAPI server, React UI, documentation, config, and CI/CD. Key changes: - Rename autocoder_paths.py -> autoforge_paths.py with backward-compat migration from .autocoder/ -> .autoforge/ directories - Update registry.py to migrate ~/.autocoder/ -> ~/.autoforge/ global config directory with fallback support - Update security.py with fallback reads from legacy .autocoder/ paths - Rename .claude/commands and skills from gsd-to-autocoder-spec to gsd-to-autoforge-spec - Update all Python modules: client, prompts, progress, agent, orchestrator, server routers and services - Update React UI: package.json name, index.html title, localStorage keys, all documentation sections, component references - Update start scripts (bat/sh/py), examples, and .env.example - Update CLAUDE.md and README.md with new branding and paths - Update test files for new .autoforge/ directory structure - Transfer git remote from leonvanzyl/autocoder to AutoForgeAI/autoforge Backward compatibility preserved: legacy .autocoder/ directories are auto-detected and migrated on next agent start. Config fallback chain checks both new and old paths. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>AutoCoder</title>
|
||||
<title>AutoForge</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Archivo+Black&family=Work+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=DM+Sans:wght@400;500;700&family=Space+Mono:wght@400;700&family=Outfit:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||
|
||||
18
ui/package-lock.json
generated
18
ui/package-lock.json
generated
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "autocoder",
|
||||
"name": "autoforge",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "autocoder",
|
||||
"name": "autoforge",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@radix-ui/react-checkbox": "^1.3.3",
|
||||
@@ -81,7 +81,6 @@
|
||||
"integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.27.1",
|
||||
"@babel/generator": "^7.28.5",
|
||||
@@ -2695,7 +2694,6 @@
|
||||
"integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"undici-types": "~6.21.0"
|
||||
}
|
||||
@@ -2706,7 +2704,6 @@
|
||||
"integrity": "sha512-Lpo8kgb/igvMIPeNV2rsYKTgaORYdO1XGVZ4Qz3akwOj0ySGYMPlQWa8BaLn0G63D1aSaAQ5ldR06wCpChQCjA==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"csstype": "^3.2.2"
|
||||
}
|
||||
@@ -2717,7 +2714,6 @@
|
||||
"integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"peerDependencies": {
|
||||
"@types/react": "^19.2.0"
|
||||
}
|
||||
@@ -2767,7 +2763,6 @@
|
||||
"integrity": "sha512-3xP4XzzDNQOIqBMWogftkwxhg5oMKApqY0BAflmLZiFYHqyhSOxv/cd/zPQLTcCXr4AkaKb25joocY0BD1WC6A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "8.51.0",
|
||||
"@typescript-eslint/types": "8.51.0",
|
||||
@@ -3072,7 +3067,6 @@
|
||||
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
@@ -3190,7 +3184,6 @@
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"baseline-browser-mapping": "^2.9.0",
|
||||
"caniuse-lite": "^1.0.30001759",
|
||||
@@ -3403,7 +3396,6 @@
|
||||
"resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
|
||||
"integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
|
||||
"license": "ISC",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
@@ -3595,7 +3587,6 @@
|
||||
"integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.8.0",
|
||||
"@eslint-community/regexpp": "^4.12.1",
|
||||
@@ -4579,7 +4570,6 @@
|
||||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
@@ -4685,7 +4675,6 @@
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz",
|
||||
"integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
@@ -4695,7 +4684,6 @@
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz",
|
||||
"integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"scheduler": "^0.27.0"
|
||||
},
|
||||
@@ -5005,7 +4993,6 @@
|
||||
"integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
@@ -5144,7 +5131,6 @@
|
||||
"integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.27.0",
|
||||
"fdir": "^6.5.0",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "autocoder",
|
||||
"name": "autoforge",
|
||||
"private": true,
|
||||
"version": "1.0.0",
|
||||
"type": "module",
|
||||
|
||||
@@ -34,8 +34,8 @@ import { Button } from '@/components/ui/button'
|
||||
import { Card, CardContent } from '@/components/ui/card'
|
||||
import { Badge } from '@/components/ui/badge'
|
||||
|
||||
const STORAGE_KEY = 'autocoder-selected-project'
|
||||
const VIEW_MODE_KEY = 'autocoder-view-mode'
|
||||
const STORAGE_KEY = 'autoforge-selected-project'
|
||||
const VIEW_MODE_KEY = 'autoforge-view-mode'
|
||||
|
||||
// Bottom padding for main content when debug panel is collapsed (40px header + 8px margin)
|
||||
const COLLAPSED_DEBUG_PANEL_CLEARANCE = 48
|
||||
@@ -264,7 +264,7 @@ function App() {
|
||||
<div className="flex items-center justify-between">
|
||||
{/* Logo and Title */}
|
||||
<h1 className="font-display text-2xl font-bold tracking-tight uppercase">
|
||||
AutoCoder
|
||||
AutoForge
|
||||
</h1>
|
||||
|
||||
{/* Controls */}
|
||||
@@ -376,7 +376,7 @@ function App() {
|
||||
{!selectedProject ? (
|
||||
<div className="text-center mt-12">
|
||||
<h2 className="font-display text-2xl font-bold mb-2">
|
||||
Welcome to AutoCoder
|
||||
Welcome to AutoForge
|
||||
</h2>
|
||||
<p className="text-muted-foreground mb-4">
|
||||
Select a project from the dropdown above or create a new one to get started.
|
||||
|
||||
@@ -8,7 +8,7 @@ import { Card, CardContent } from '@/components/ui/card'
|
||||
import { Badge } from '@/components/ui/badge'
|
||||
import { Button } from '@/components/ui/button'
|
||||
|
||||
const ACTIVITY_COLLAPSED_KEY = 'autocoder-activity-collapsed'
|
||||
const ACTIVITY_COLLAPSED_KEY = 'autoforge-activity-collapsed'
|
||||
|
||||
interface AgentMissionControlProps {
|
||||
agents: ActiveAgent[]
|
||||
|
||||
@@ -110,7 +110,7 @@ export function DocsPage() {
|
||||
className="font-display text-xl font-bold tracking-tight uppercase text-foreground
|
||||
hover:text-primary transition-colors"
|
||||
>
|
||||
AutoCoder
|
||||
AutoForge
|
||||
</a>
|
||||
|
||||
<Badge variant="secondary" className="text-xs font-medium">
|
||||
|
||||
@@ -34,7 +34,7 @@ export const DOC_SECTIONS: DocSection[] = [
|
||||
title: 'Getting Started',
|
||||
icon: Rocket,
|
||||
subsections: [
|
||||
{ id: 'what-is-autocoder', title: 'What is AutoCoder?' },
|
||||
{ id: 'what-is-autoforge', title: 'What is AutoForge?' },
|
||||
{ id: 'quick-start', title: 'Quick Start' },
|
||||
{ id: 'creating-a-project', title: 'Creating a New Project' },
|
||||
{ id: 'existing-project', title: 'Adding to an Existing Project' },
|
||||
@@ -60,7 +60,7 @@ export const DOC_SECTIONS: DocSection[] = [
|
||||
title: 'Target Project Structure',
|
||||
icon: FolderTree,
|
||||
subsections: [
|
||||
{ id: 'autocoder-directory', title: '.autocoder/ Directory Layout' },
|
||||
{ id: 'autoforge-directory', title: '.autoforge/ Directory Layout' },
|
||||
{ id: 'features-db', title: 'Features Database' },
|
||||
{ id: 'prompts-directory', title: 'Prompts Directory' },
|
||||
{ id: 'allowed-commands-yaml', title: 'Allowed Commands Config' },
|
||||
|
||||
@@ -129,7 +129,7 @@ ANTHROPIC_DEFAULT_SONNET_MODEL=qwen3-coder`}</code></pre>
|
||||
Environment Variables
|
||||
</h3>
|
||||
<p className="text-muted-foreground mb-3">
|
||||
Key environment variables for configuring AutoCoder:
|
||||
Key environment variables for configuring AutoForge:
|
||||
</p>
|
||||
<table className="w-full text-sm mt-3">
|
||||
<thead>
|
||||
@@ -193,7 +193,7 @@ ANTHROPIC_DEFAULT_SONNET_MODEL=qwen3-coder`}</code></pre>
|
||||
Webhook Support
|
||||
</h3>
|
||||
<ul className="list-disc space-y-2 ml-4 text-muted-foreground">
|
||||
<li>AutoCoder can send webhook notifications on feature completion</li>
|
||||
<li>AutoForge can send webhook notifications on feature completion</li>
|
||||
<li>Compatible with N8N and similar automation tools</li>
|
||||
<li>Configure the webhook URL in project settings</li>
|
||||
<li>
|
||||
@@ -208,7 +208,7 @@ ANTHROPIC_DEFAULT_SONNET_MODEL=qwen3-coder`}</code></pre>
|
||||
<ul className="list-disc space-y-2 ml-4 text-muted-foreground">
|
||||
<li>
|
||||
All projects are registered in{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">~/.autocoder/registry.db</span>{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">~/.autoforge/registry.db</span>{' '}
|
||||
(SQLite)
|
||||
</li>
|
||||
<li>Maps project names to filesystem paths</li>
|
||||
|
||||
@@ -15,7 +15,7 @@ export function AppSpecSetup() {
|
||||
<p className="text-muted-foreground mb-3">
|
||||
The app spec is an XML document that describes the application to be built. It lives at{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">
|
||||
.autocoder/prompts/app_spec.txt
|
||||
.autoforge/prompts/app_spec.txt
|
||||
</span>{' '}
|
||||
and tells the initializer agent what features to create. The spec defines your app's name,
|
||||
description, tech stack, and the features that should be implemented.
|
||||
@@ -56,7 +56,7 @@ export function AppSpecSetup() {
|
||||
<li>
|
||||
Create{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">
|
||||
.autocoder/prompts/app_spec.txt
|
||||
.autoforge/prompts/app_spec.txt
|
||||
</span>{' '}
|
||||
in your project directory
|
||||
</li>
|
||||
@@ -97,7 +97,7 @@ export function AppSpecSetup() {
|
||||
<li>
|
||||
Creates the feature database at{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">
|
||||
.autocoder/features.db
|
||||
.autoforge/features.db
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -98,7 +98,7 @@ export function AppearanceThemes() {
|
||||
Themes Overview
|
||||
</h3>
|
||||
<p className="text-muted-foreground mb-4">
|
||||
AutoCoder comes with 6 built-in themes. Each theme provides a complete visual identity including
|
||||
AutoForge comes with 6 built-in themes. Each theme provides a complete visual identity including
|
||||
colors, accents, and dark mode variants.
|
||||
</p>
|
||||
<div className="space-y-4">
|
||||
|
||||
@@ -13,7 +13,7 @@ export function FAQ() {
|
||||
Starting a New Project
|
||||
</h3>
|
||||
<p className="text-muted-foreground italic mb-2">
|
||||
How do I use AutoCoder on a new project?
|
||||
How do I use AutoForge on a new project?
|
||||
</p>
|
||||
<p className="text-muted-foreground">
|
||||
From the UI, select "Create New Project" in the project dropdown. Choose a folder and
|
||||
@@ -27,12 +27,12 @@ export function FAQ() {
|
||||
Adding to Existing Project
|
||||
</h3>
|
||||
<p className="text-muted-foreground italic mb-2">
|
||||
How do I add AutoCoder to an existing project?
|
||||
How do I add AutoForge to an existing project?
|
||||
</p>
|
||||
<p className="text-muted-foreground">
|
||||
Register the project folder through the UI project selector using "Add Existing".
|
||||
AutoCoder creates a{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">.autocoder/</span> directory
|
||||
AutoForge creates a{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">.autoforge/</span> directory
|
||||
alongside your existing code. Write an app spec describing what to build (new features), and the
|
||||
agent works within your existing codebase.
|
||||
</p>
|
||||
@@ -60,7 +60,7 @@ export function FAQ() {
|
||||
<p className="text-muted-foreground">
|
||||
Create{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">
|
||||
.autocoder/allowed_commands.yaml
|
||||
.autoforge/allowed_commands.yaml
|
||||
</span>{' '}
|
||||
in your project with a list of allowed commands. Supports exact names, wildcards (e.g.,{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">swift*</span>), and local
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* GettingStarted Documentation Section
|
||||
*
|
||||
* Covers what AutoCoder is, quick start commands,
|
||||
* Covers what AutoForge is, quick start commands,
|
||||
* creating and adding projects, and system requirements.
|
||||
*/
|
||||
|
||||
@@ -10,12 +10,12 @@ import { Badge } from '@/components/ui/badge'
|
||||
export function GettingStarted() {
|
||||
return (
|
||||
<div>
|
||||
{/* What is AutoCoder? */}
|
||||
<h3 id="what-is-autocoder" className="text-lg font-semibold text-foreground mt-8 mb-3">
|
||||
What is AutoCoder?
|
||||
{/* What is AutoForge? */}
|
||||
<h3 id="what-is-autoforge" className="text-lg font-semibold text-foreground mt-8 mb-3">
|
||||
What is AutoForge?
|
||||
</h3>
|
||||
<p className="text-muted-foreground mb-4">
|
||||
AutoCoder is an autonomous coding agent system that builds complete applications over multiple
|
||||
AutoForge is an autonomous coding agent system that builds complete applications over multiple
|
||||
sessions using a two-agent pattern:
|
||||
</p>
|
||||
<ol className="list-decimal space-y-2 ml-4 text-muted-foreground">
|
||||
@@ -38,7 +38,7 @@ export function GettingStarted() {
|
||||
Quick Start
|
||||
</h3>
|
||||
<p className="text-muted-foreground mb-3">
|
||||
Launch AutoCoder with a single command. The CLI menu lets you create or select a project,
|
||||
Launch AutoForge with a single command. The CLI menu lets you create or select a project,
|
||||
while the Web UI provides a full dashboard experience.
|
||||
</p>
|
||||
<div className="bg-muted rounded-lg p-4 font-mono text-sm">
|
||||
@@ -76,12 +76,12 @@ start_ui.bat # Web UI
|
||||
<ul className="list-disc space-y-2 ml-4 text-muted-foreground">
|
||||
<li>Register the project folder via the UI project selector</li>
|
||||
<li>
|
||||
AutoCoder creates a{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">.autocoder/</span>{' '}
|
||||
AutoForge creates a{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">.autoforge/</span>{' '}
|
||||
directory inside your project
|
||||
</li>
|
||||
<li>
|
||||
Existing code is preserved — AutoCoder adds its configuration alongside it
|
||||
Existing code is preserved — AutoForge adds its configuration alongside it
|
||||
</li>
|
||||
<li>Write or generate an app spec describing what to build</li>
|
||||
</ul>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* ProjectStructure Documentation Section
|
||||
*
|
||||
* Covers the .autocoder/ directory layout, features database,
|
||||
* Covers the .autoforge/ directory layout, features database,
|
||||
* prompts directory, allowed commands, CLAUDE.md convention,
|
||||
* legacy migration, and Claude inheritance.
|
||||
*/
|
||||
@@ -9,18 +9,18 @@
|
||||
export function ProjectStructure() {
|
||||
return (
|
||||
<div>
|
||||
{/* .autocoder/ Directory Layout */}
|
||||
<h3 id="autocoder-directory" className="text-lg font-semibold text-foreground mt-8 mb-3">
|
||||
.autocoder/ Directory Layout
|
||||
{/* .autoforge/ Directory Layout */}
|
||||
<h3 id="autoforge-directory" className="text-lg font-semibold text-foreground mt-8 mb-3">
|
||||
.autoforge/ Directory Layout
|
||||
</h3>
|
||||
<p className="text-muted-foreground mb-3">
|
||||
Every AutoCoder project stores its configuration and runtime files in a{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">.autocoder/</span>{' '}
|
||||
Every AutoForge project stores its configuration and runtime files in a{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">.autoforge/</span>{' '}
|
||||
directory at the project root.
|
||||
</p>
|
||||
<div className="bg-muted rounded-lg p-4 font-mono text-sm">
|
||||
<pre><code>{`your-project/
|
||||
\u251C\u2500\u2500 .autocoder/
|
||||
\u251C\u2500\u2500 .autoforge/
|
||||
\u2502 \u251C\u2500\u2500 features.db # SQLite feature database
|
||||
\u2502 \u251C\u2500\u2500 .agent.lock # Lock file (prevents multiple instances)
|
||||
\u2502 \u251C\u2500\u2500 .gitignore # Ignores runtime files
|
||||
@@ -41,7 +41,7 @@ export function ProjectStructure() {
|
||||
<li>
|
||||
SQLite database managed by SQLAlchemy, stored at{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">
|
||||
.autocoder/features.db
|
||||
.autoforge/features.db
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
@@ -96,7 +96,7 @@ export function ProjectStructure() {
|
||||
<p className="text-muted-foreground mb-3">
|
||||
The optional{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">
|
||||
.autocoder/allowed_commands.yaml
|
||||
.autoforge/allowed_commands.yaml
|
||||
</span>{' '}
|
||||
file lets you grant project-specific bash commands to the agent. This is useful when your
|
||||
project requires tools beyond the default allowlist (e.g., language-specific compilers or
|
||||
@@ -138,7 +138,7 @@ export function ProjectStructure() {
|
||||
<ul className="list-disc space-y-2 ml-4 text-muted-foreground">
|
||||
<li>
|
||||
On the next agent start, these files are automatically migrated into{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">.autocoder/</span>
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">.autoforge/</span>
|
||||
</li>
|
||||
<li>Dual-path resolution ensures both old and new layouts work transparently</li>
|
||||
<li>No manual migration is needed — it happens seamlessly</li>
|
||||
|
||||
@@ -15,7 +15,7 @@ export function Scheduling() {
|
||||
What Scheduling Does
|
||||
</h3>
|
||||
<p className="text-muted-foreground mb-4">
|
||||
Scheduling automates agent runs at specific times. Set up a schedule and AutoCoder will automatically
|
||||
Scheduling automates agent runs at specific times. Set up a schedule and AutoForge will automatically
|
||||
start agents on your project — useful for overnight builds, periodic maintenance, or continuous
|
||||
development.
|
||||
</p>
|
||||
|
||||
@@ -16,7 +16,7 @@ export function Security() {
|
||||
Command Validation Overview
|
||||
</h3>
|
||||
<p className="text-muted-foreground mb-3">
|
||||
AutoCoder uses a defense-in-depth approach for security. All three layers must pass before any
|
||||
AutoForge uses a defense-in-depth approach for security. All three layers must pass before any
|
||||
command is executed:
|
||||
</p>
|
||||
<ol className="list-decimal space-y-2 ml-4 text-muted-foreground">
|
||||
@@ -49,12 +49,12 @@ export function Security() {
|
||||
</li>
|
||||
<li>
|
||||
<strong className="text-foreground">Org Blocklist</strong>{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">~/.autocoder/config.yaml</span>{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">~/.autoforge/config.yaml</span>{' '}
|
||||
— org-wide blocks, cannot be project-overridden
|
||||
</li>
|
||||
<li>
|
||||
<strong className="text-foreground">Org Allowlist</strong>{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">~/.autocoder/config.yaml</span>{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">~/.autoforge/config.yaml</span>{' '}
|
||||
— available to all projects
|
||||
</li>
|
||||
<li>
|
||||
@@ -65,7 +65,7 @@ export function Security() {
|
||||
<li>
|
||||
<strong className="text-foreground">Project Allowlist</strong>{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">
|
||||
.autocoder/allowed_commands.yaml
|
||||
.autoforge/allowed_commands.yaml
|
||||
</span>{' '}
|
||||
— project-specific additions
|
||||
</li>
|
||||
@@ -120,12 +120,12 @@ export function Security() {
|
||||
<p className="text-muted-foreground mb-3">
|
||||
Each project can define additional allowed commands in{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">
|
||||
.autocoder/allowed_commands.yaml
|
||||
.autoforge/allowed_commands.yaml
|
||||
</span>
|
||||
:
|
||||
</p>
|
||||
<div className="bg-muted rounded-lg p-4 font-mono text-sm">
|
||||
<pre><code>{`# .autocoder/allowed_commands.yaml
|
||||
<pre><code>{`# .autoforge/allowed_commands.yaml
|
||||
version: 1
|
||||
commands:
|
||||
# Exact command name
|
||||
@@ -155,10 +155,10 @@ commands:
|
||||
</h3>
|
||||
<p className="text-muted-foreground mb-3">
|
||||
System administrators can set org-wide policies in{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">~/.autocoder/config.yaml</span>:
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">~/.autoforge/config.yaml</span>:
|
||||
</p>
|
||||
<div className="bg-muted rounded-lg p-4 font-mono text-sm">
|
||||
<pre><code>{`# ~/.autocoder/config.yaml
|
||||
<pre><code>{`# ~/.autoforge/config.yaml
|
||||
version: 1
|
||||
|
||||
# Commands available to ALL projects
|
||||
|
||||
@@ -177,7 +177,7 @@ export function SettingsConfig() {
|
||||
<ul className="list-disc space-y-2 ml-4 text-muted-foreground">
|
||||
<li>
|
||||
Global settings stored in SQLite registry at{' '}
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">~/.autocoder/registry.db</span>
|
||||
<span className="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">~/.autoforge/registry.db</span>
|
||||
</li>
|
||||
<li>Per-project settings (like default concurrency) stored in the project registry entry</li>
|
||||
<li>UI settings (theme, dark mode) stored in browser localStorage</li>
|
||||
|
||||
@@ -52,8 +52,8 @@ export const THEMES: ThemeOption[] = [
|
||||
}
|
||||
]
|
||||
|
||||
const THEME_STORAGE_KEY = 'autocoder-theme'
|
||||
const DARK_MODE_STORAGE_KEY = 'autocoder-dark-mode'
|
||||
const THEME_STORAGE_KEY = 'autoforge-theme'
|
||||
const DARK_MODE_STORAGE_KEY = 'autoforge-dark-mode'
|
||||
|
||||
function getThemeClass(themeId: ThemeId): string {
|
||||
switch (themeId) {
|
||||
|
||||
Reference in New Issue
Block a user