Commit Graph
118 Commits
Author SHA1 Message Date
arkonandClaude Opus 4.6 7175e4b350 docs: update CLAUDE.md and README.md to reflect current codebase
Correct stale counts and add missing entries: route modules 12→13
(ws-routes.ts), frontend modules 9→10 (input-cjk.js), handler count
~111→~114, utilities section expanded, TypeScript badge 5.5→5.9,
frontend extracted modules 8→9.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 18:48:25 +01:00
arkonandClaude Opus 4.6 3383c23099 fix: address code review findings across WS, CJK input, install.sh, and README
WebSocket route: add socket error handler to prevent process crashes, enforce
per-session connection limit (max 5), track/decrement counts on close.

CJK input: add destroy() method with proper listener cleanup, guard against
double-init, add maxlength/aria-label to textarea, use language-neutral
placeholder, explicitly clear cjkActive on hide.

install.sh: fix update() to use $BRANCH and $REPO_URL instead of hardcoded
origin/master — fork users were silently switched back to master on update.

README: fix broken markdown table (paragraph concatenated into last cell),
add CODEMAN_NODE_VERSION to env var table.

Tests: add 8 new test cases for batch coalescing, flush threshold, unknown
message types, connection limit, heartbeat, readyState guards. Import
MAX_INPUT_LENGTH from config, add connectWs timeout, replace setTimeout
with vi.waitFor in cleanup test.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 18:27:58 +01:00
arkonandClaude Opus 4.6 c3e1e731ef fix: use generic placeholders in fork install README example
Replace hardcoded contributor fork URL with <user>/<branch> placeholders
so the documentation is useful for any contributor.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 18:11:43 +01:00
jayparkandClaude Opus 4.6 da71d8d01c feat: support custom repo URL and branch in install.sh
Add CODEMAN_REPO_URL and CODEMAN_BRANCH env vars to install.sh
for installing from forks or feature branches. Update README with
fork installation instructions and env var reference table.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 16:50:06 +09:00
arkonandClaude Opus 4.6 e7ee5595c5 feat: auto-detect existing install and run update instead of fresh install
Re-running the install script now detects ~/.codeman/app/.git and
automatically updates instead of re-installing. Removes the separate
`bash -s update` instructions from README since it's no longer needed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:09:37 +01:00
arkonandClaude Opus 4.6 6d52b16edc docs: add zerolag demo video to README
Side-by-side comparison of local echo (0ms) vs server echo (600ms-2.7s)
rendered from Remotion ZerolagDemo composition.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 07:43:52 +01:00
Ark0NandClaude Opus 4.6 2ee9ad72e8 refactor: SSE event handlers, LLM context optimization, @fileoverview docs (#29)
* refactor: extract SSE event handlers into named class methods

Replace ~80 inline addListener closures in connectSSE() with a
declarative _SSE_HANDLER_MAP array that drives registration in a
single loop. Each handler is now a named _on* method on CodemanApp,
making them individually addressable for LLM navigation.

Add SSE_EVENTS constant object in constants.js to eliminate magic
event-type strings scattered across the frontend.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: fix inaccuracies in CLAUDE.md

- Fix types barrel path: src/types.ts → src/types/index.ts
- Update app.js line count: ~12K → ~11.5K
- Correct route handler counts (113 → 111, per-group fixes)
- Add code style, ESM gotcha, env vars, route test, lifecycle log docs
- Add Node 22 CI note, test teardown timeout, port range

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add mobile screenshots and QR auth security writeup to README

Add 3 mobile screenshots (landing, idle, active) and expand the
mobile section with QR auth security design details and a
touch-optimized interface subsection.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: bundle xterm-zerolag-input as vendor IIFE and add pre-commit hook

Build and postinstall now bundle the local xterm-zerolag-input package
as an IIFE at vendor/xterm-zerolag-input.js with global LocalEchoOverlay
shim. Add git pre-commit hook that runs prettier --check on staged .ts
files to catch format issues before CI.

Also bump constants.js and app.js cache-bust versions to 0.3.0 and add
tunnel upload URL display row in settings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add cloudflared install support and interactive launch menu

- Add optional cloudflared dependency detection and installation
  across 6 distro families (macOS, Debian, Fedora, Arch, Alpine, SUSE)
- Add tunnel systemd service setup helper
- Replace post-install instructions with interactive launch menu
  (run now / systemd service / skip)
- Uninstall now cleans up both codeman-web and codeman-tunnel services

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: gitignore readme-preview.mjs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: WIP — SSE event constants, @fileoverview docs, CLAUDE.md compression

- Migrate broadcast() string literals → SseEvent.* typed constants
- Add @fileoverview with cross-domain references to all 13 type domain files
- Add @fileoverview to frontend JS modules (constants, mobile, voice, etc.)
- Add section dividers to route files for LLM scanability
- Compress CLAUDE.md: flat file list → domain table, fix counts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: optimize codebase for LLM context window efficiency

CLAUDE.md: 456 → 309 lines (32% reduction)
- Merge Commands into compact table, remove redundant bash block
- Convert Security section to dense table format
- Merge Performance + Resource Limits, Debugging + Troubleshooting
- Compress Tunnel, Memory Leak, Scripts, Screenshots sections
- Remove Key Patterns that duplicate @fileoverview in source files

Backend @fileoverview enhancements (10 priority files):
- session.ts: key methods, events, cross-domain refs
- respawn-controller.ts: state machine, idle detection layers
- ralph-tracker.ts: exports, circuit breaker, events
- ralph-loop.ts: lifecycle, persistence, events
- subagent-watcher.ts: watched patterns, teammate detection
- server.ts: coordination list, port interfaces
- state-store.ts: dual-file persistence, migration
- session-manager.ts: lifecycle methods, mutex guard
- hooks-config.ts: hook events list, categories
- sse-events.ts: category breakdown (~90 events, 17 categories)

Frontend app.js: add 6 section dividers, update @fileoverview line refs

Fix: escape glob `*/` in JSDoc that broke ESLint parser

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address PR #29 review bugs

- server.ts: replace hardcoded 'session:needsRefresh' with SseEvent constant
- install.sh: fix Alpine cloudflared install for non-root (download to tmpfile first)
- install.sh: replace Arch pacman (AUR-only) with direct binary download
- index.html: bump all 8 remaining cache-bust versions from v0.2.9 to v0.3.0
- mobile-handlers.js: fix @dependency annotation (keyboard-accessory.js, not constants.js)
- types/push.ts: fix layer number (4, not 5)
- subagent-watcher.ts: fix watched pattern path to include {session} segment
- constants.js: fix SSE_EVENTS count in @fileoverview (~73, not ~65)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 22:40:18 +01:00
arkonandClaude Opus 4.6 f94ab08cbe fix: stale types test and unreachable ralph full-reset API path
- Remove tests for createSuccessResponse and ErrorMessages which were
  removed/made private during the type system refactoring (15 failures)
- Fix RalphConfigSchema to accept 'full' string for reset field,
  matching the route handler's fullReset() code path

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 17:17:05 +01:00
arkonandClaude Opus 4.6 3915f4ea9d docs: add detailed QR code authentication section to README
Document the ephemeral single-use QR token system — how it works,
security design informed by USENIX Security 2025 research (6 flaws
addressed), timing-safe lookup, dual-layer rate limiting, QR version
optimization, desktop experience, threat coverage, and comparison
with Discord/WhatsApp/Signal QR auth models.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 16:27:05 +01:00
arkonandClaude Opus 4.6 0a29d8d6ca docs: add Cloudflare tunnel section to README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 13:47:40 +01:00
arkon 001676ff0f chore: bump version to 0.1651 2026-02-26 16:48:00 +01:00
arkonandClaude Opus 4.6 3795c45cc1 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>
2026-02-26 16:44:34 +01:00
Ark0N 653cf94fb5 Update table entries for clarity in README 2026-02-25 08:37:36 +01:00
Ark0N 3c0f01f30d Update README.md 2026-02-25 08:36:12 +01:00
arkonandClaude Opus 4.6 006f60b4a4 chore: bump version to 0.1630
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:57:58 +01:00
arkonandClaude Opus 4.6 84027cf468 chore: bump version to 0.1629
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:56:47 +01:00
arkonandClaude Opus 4.6 ce4107ef9c chore: bump version to 0.1628
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:55:36 +01:00
arkonandClaude Opus 4.6 d83bd7a992 chore: bump version to 0.1627
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:54:26 +01:00
arkonandClaude Opus 4.6 5e6f7adcb3 chore: bump version to 0.1626
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:53:18 +01:00
arkonandClaude Opus 4.6 b20f903201 chore: bump version to 0.1625
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:50:56 +01:00
arkonandClaude Opus 4.6 31b766c10f chore: bump version to 0.1624
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:49:16 +01:00
arkonandClaude Opus 4.6 4d70bc5eea chore: bump version to 0.1623
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:42:05 +01:00
arkonandClaude Opus 4.6 935bb8c268 chore: bump version to 0.1622
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:38:25 +01:00
arkonandClaude Opus 4.6 70cc2a3375 chore: bump version to 0.1621
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:37:32 +01:00
Ark0N 3b81b73546 Update README.md 2026-02-24 20:34:55 +01:00
arkonandClaude Opus 4.6 9a4917bf91 chore: bump version to 0.1620
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:38:11 +01:00
Ark0N 14226ad3de Update README.md 2026-02-24 16:30:39 +01:00
arkonandClaude Opus 4.6 67673d6f2e fix: README mobile layout — remove float that breaks narrow viewports
The Mobile-Optimized Web UI section used align="left" on a 280px image,
leaving only ~110px for text on 390px mobile screens. This caused
single-character-per-line text wrapping on GitHub mobile view. Changed
to stacked layout: text description above, centered image, then
comparison table below.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:50:24 +01:00
arkon eda1060063 chore: bump version to 0.1616 2026-02-24 13:44:15 +01:00
Ark0N f8ec7fb2b6 Update features list in README
Removed '24/7 Autonomous Sessions' and 'Ralph Loop Tracking' from the features list.
2026-02-24 13:42:07 +01:00
arkon 0f97d1fa8d chore: bump version to 0.1615 2026-02-24 13:39:44 +01:00
arkon 439ccbe108 chore: bump version to 0.1607 2026-02-24 13:17:08 +01:00
arkon c7967ae21e chore: bump version to 0.1606 2026-02-24 13:15:01 +01:00
arkon 95823cb2bd chore: bump version to 0.1604 2026-02-24 13:00:54 +01:00
arkon 675cfeaf67 chore: bump version to 0.1603 2026-02-24 12:50:27 +01:00
arkon 47775b0610 fix: correct anchor link to Published Packages section 2026-02-22 13:21:49 +01:00
arkonandClaude Opus 4.6 c8d3ca85a6 docs: fix repo URLs, rewrite npm README, add Published Packages to Claudeman README
- Fix repository URL: nicobailon/claudeman → Ark0N/Claudeman
- Rewrite xterm-zerolag-input README with badges, origin story, architecture
  diagrams, better API docs, integration patterns, and "Why This Is Hard"
- Add Published Packages section to Claudeman README with quick start example
- Add callout in Claudeman's local echo section linking to the npm package
- Publish as xterm-zerolag-input@0.1.2

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-22 12:16:47 +01:00
arkonandClaude Opus 4.6 b2a39a6745 fix: harden install.sh — Homebrew bootstrap, dnf/yum fallback, Alpine sudo, PATH cleanup
- Extract ensure_homebrew() called from all macOS install functions (prevents crash if Git checked before Node)
- Add dnf/yum fallback in Fedora install functions (fixes Amazon Linux 2 which only has yum)
- Add ensure_sudo to Alpine install functions (consistent with all other distros)
- Update Fedora/SUSE NodeSource setup to use GPG keyring method (replaces deprecated setup_XX.x script)
- Remove dist/ directory from PATH (only use ~/.local/bin symlink)
- Collapse identical fish/non-fish branches in setup_sc_alias

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 09:36:47 +01:00
Ark0N 51e45ed317 Update images in README for Claudeman demo 2026-02-20 06:19:43 +01:00
arkon 5b882c448e chore: bump version to 0.1570 2026-02-20 06:09:28 +01:00
arkonandClaude Opus 4.6 544ef67aeb chore: bump version to 0.1567
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 04:11:49 +01:00
arkonandClaude Opus 4.6 1450b8ce57 docs: add local echo feature to README mobile section
Highlights zero-latency typing as the headline mobile feature.
Adds comparison table entry and detailed feature breakdown.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 22:28:43 +01:00
arkon 88422cab57 chore: bump version to 0.1538 2026-02-18 12:51:35 +01:00
arkonandClaude Opus 4.6 a4e778c7c4 chore: bump version to 0.1486
feat: interactive teammate tmux pane windows with xterm.js terminals
feat: auto-cleanup teams/subagents/pane windows on session delete
fix: only show agent/teammate windows when matching Claudeman tab exists
fix: UTF-8 encoding in teammate pane terminal output (Uint8Array)
fix: standalone pane window cleanup via subagentParentMap lookup
fix: xterm.js dimensions crash with deferred init + null-safe dispose

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 13:44:07 +01:00
arkonandClaude Opus 4.6 df84804189 docs: remove mobile-with-keyboard screenshot from README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 17:32:56 +01:00
arkonandClaude Opus 4.6 c2ab0c6a6f chore: bump version to 0.1478
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 17:29:53 +01:00
arkonandClaude Opus 4.5 2186d16616 docs: replace ASCII art with tables in README
- Replace Respawn Controller state machine diagram with state table
- Replace Zero-Flicker pipeline ASCII with flow table
- Cleaner presentation that renders well on GitHub

Commit from flight QR118 in an Airbus A350-1000, stable connection thanks to Starlink!

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 00:37:21 +01:00
arkonandClaude Opus 4.5 cc7c188f1f feat: add subagent screenshot capture script and README images
- Add scripts/capture-subagent-screenshots.mjs for automated capture
- Creates real Claude sessions that spawn Task tool subagents
- Records video and converts to optimized GIF via FFmpeg
- Add subagent-spawn.png, subagent-demo.gif to docs/images
- Update README Live Agent Visualization with real screenshots
- Replace ASCII diagram with actual subagent window screenshots
- Add capture:subagents npm script
- Document both screenshot scripts in CLAUDE.md

Commit from flight QR118 in an Airbus A350-1000, stable connection thanks to Starlink!

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 00:35:18 +01:00
arkonandClaude Opus 4.5 a85603d8cf docs: add Mobile UI section to README
- Document fixed toolbar and keyboard handling
- Swipe navigation between sessions
- Keyboard accessory bar with /init, /clear, /compact
- Confirmation dialogs for commands
- Touch target sizes and mobile simplifications

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 15:41:15 +01:00
arkonandClaude Opus 4.5 20283019f4 feat: comprehensive codebase improvements (cleanup, logic, performance)
Code Cleanups:
- Consolidated PlanTaskStatus and TddPhase types to types.ts
- Standardized node: prefix for Node.js builtin imports
- Fixed timer type to NodeJS.Timeout in respawn-controller

Logic Improvements:
- Fixed AI check race condition with UUID tracking in respawn-controller
- Added comprehensive _isStopped guards in session timer callbacks
- Made RalphTracker reset events non-reentrant via process.nextTick()
- Improved SessionManager mutex pattern reliability

Performance Optimizations:
- Fixed pendingToolCalls memory leak with TTL cleanup in subagent-watcher
- Improved LRUMap.newest() from O(n) to O(1) with _newestKey tracking

Documentation:
- Enhanced README antiflicker section with 6-layer technical details

Version: 0.1441

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 19:05:46 +01:00