chore: rename Claudeman to Codeman

Full product rename across 109 files (~834 occurrences):
- Env vars: CLAUDEMAN_* → CODEMAN_*
- Data dirs: ~/.claudeman/ → ~/.codeman/, ~/claudeman-cases/ → ~/codeman-cases/
- tmux prefix: claudeman- → codeman-
- localStorage: claudeman-* → codeman-*
- Package/CLI: claudeman → codeman
- GitHub repo: Ark0N/Claudeman → Ark0N/Codeman
- systemd service: claudeman-web → codeman-web
- Class: ClaudemanApp → CodemanApp

Migration infrastructure for seamless transition:
- state-store.ts: auto-migrates data directories on startup
- tmux-manager.ts: dual-prefix detection (legacy claudeman- sessions)
- app.js: localStorage key migration (preserves old keys)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
arkon
2026-02-26 16:44:34 +01:00
co-authored by Claude Opus 4.6
parent 3ccd22161c
commit 3795c45cc1
109 changed files with 711 additions and 679 deletions
+8 -8
View File
@@ -2,7 +2,7 @@
/**
* Browser Framework Comparison Script
*
* Compares Playwright, Puppeteer, and Agent-Browser for testing Claudeman web UI.
* Compares Playwright, Puppeteer, and Agent-Browser for testing Codeman web UI.
* Run: node scripts/browser-comparison.mjs
*/
@@ -88,7 +88,7 @@ async function main() {
const page = await playwrightBrowser.newPage();
await page.goto(`http://localhost:${PORTS.playwright}`);
const title = await page.title();
if (title !== 'Claudeman') throw new Error(`Expected Claudeman, got ${title}`);
if (title !== 'Codeman') throw new Error(`Expected Codeman, got ${title}`);
await page.close();
});
@@ -98,7 +98,7 @@ async function main() {
await page.goto(`http://localhost:${PORTS.playwright}`);
const logo = await page.locator('.header-brand .logo').textContent();
const version = await page.locator('#versionDisplay').textContent();
if (logo !== 'Claudeman') throw new Error('Logo mismatch');
if (logo !== 'Codeman') throw new Error('Logo mismatch');
if (!version.match(/v\d+/)) throw new Error('Version mismatch');
await page.close();
});
@@ -149,7 +149,7 @@ async function main() {
const page = await puppeteerBrowser.newPage();
await page.goto(`http://localhost:${PORTS.puppeteer}`);
const title = await page.title();
if (title !== 'Claudeman') throw new Error(`Expected Claudeman, got ${title}`);
if (title !== 'Codeman') throw new Error(`Expected Codeman, got ${title}`);
await page.close();
});
@@ -159,7 +159,7 @@ async function main() {
await page.goto(`http://localhost:${PORTS.puppeteer}`);
const logo = await page.$eval('.header-brand .logo', el => el.textContent);
const version = await page.$eval('#versionDisplay', el => el.textContent);
if (logo !== 'Claudeman') throw new Error('Logo mismatch');
if (logo !== 'Codeman') throw new Error('Logo mismatch');
if (!version.match(/v\d+/)) throw new Error('Version mismatch');
await page.close();
});
@@ -202,7 +202,7 @@ async function main() {
agentBrowser(`open http://localhost:${PORTS.agentBrowser}`);
await new Promise(r => setTimeout(r, 2000));
const title = agentBrowserJson('get title');
agentBrowserAvailable = title.title === 'Claudeman';
agentBrowserAvailable = title.title === 'Codeman';
console.log(' Browser launched');
// Test 1: Page load
@@ -210,14 +210,14 @@ async function main() {
agentBrowser(`open http://localhost:${PORTS.agentBrowser}`);
await new Promise(r => setTimeout(r, 1000));
const title = agentBrowserJson('get title');
if (title.title !== 'Claudeman') throw new Error(`Expected Claudeman, got ${title.title}`);
if (title.title !== 'Codeman') throw new Error(`Expected Codeman, got ${title.title}`);
});
// Test 2: Element selection
await runBenchmark('element-selection', 'agent-browser', async () => {
const logo = agentBrowserJson('get text ".header-brand .logo"');
const version = agentBrowserJson('get text "#versionDisplay"');
if (logo.text !== 'Claudeman') throw new Error('Logo mismatch');
if (logo.text !== 'Codeman') throw new Error('Logo mismatch');
if (!version.text.match(/v\d+/)) throw new Error('Version mismatch');
});