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
+12 -12
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env node
/**
* Browser test for clickable file links in Claudeman terminal
* Browser test for clickable file links in Codeman terminal
* Uses Playwright directly to ignore HTTPS errors
*/
@@ -33,8 +33,8 @@ async function main() {
const page = await context.newPage();
try {
// Navigate to Claudeman
console.log('Navigating to Claudeman...');
// Navigate to Codeman
console.log('Navigating to Codeman...');
await page.goto(BASE_URL, { waitUntil: 'networkidle', timeout: 30000 });
console.log('Page loaded: ' + await page.title());
@@ -63,9 +63,9 @@ async function main() {
await page.waitForTimeout(2000);
}
// Get active session (use claudeman session if exists)
const claudemanSession = sessions.find(s => s.workingDir?.includes('claudeman'));
const sessionId = claudemanSession?.id || sessions[0]?.id;
// Get active session (use codeman session if exists)
const codemanSession = sessions.find(s => s.workingDir?.includes('codeman'));
const sessionId = codemanSession?.id || sessions[0]?.id;
console.log(`Using session: ${sessionId}\n`);
// Send a command that outputs file paths
@@ -81,8 +81,8 @@ async function main() {
await page.waitForTimeout(2000);
// Take screenshot
await page.screenshot({ path: '/tmp/claudeman-link-test-1.png' });
console.log('Screenshot saved: /tmp/claudeman-link-test-1.png\n');
await page.screenshot({ path: '/tmp/codeman-link-test-1.png' });
console.log('Screenshot saved: /tmp/codeman-link-test-1.png\n');
// Check if terminal contains our file path
const terminalContent = await page.evaluate(() => {
@@ -132,8 +132,8 @@ async function main() {
console.log('Log viewer windows:', logViewerCount);
// Take final screenshot
await page.screenshot({ path: '/tmp/claudeman-link-test-2.png' });
console.log('\nFinal screenshot: /tmp/claudeman-link-test-2.png');
await page.screenshot({ path: '/tmp/codeman-link-test-2.png' });
console.log('\nFinal screenshot: /tmp/codeman-link-test-2.png');
// Test the link provider registration
console.log('\n--- Link Provider Debug ---');
@@ -155,8 +155,8 @@ async function main() {
} catch (error) {
console.error('Error:', error.message);
await page.screenshot({ path: '/tmp/claudeman-link-test-error.png' });
console.log('Error screenshot saved to /tmp/claudeman-link-test-error.png');
await page.screenshot({ path: '/tmp/codeman-link-test-error.png' });
console.log('Error screenshot saved to /tmp/codeman-link-test-error.png');
} finally {
await browser.close();
console.log('\nBrowser closed');