mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-02 13:39:41 +02:00
fix: wizard open detection for plan subagent windows
- Changed wizard modal detection from checking non-existent 'hidden' class and inline style.display to correctly checking for '.active' class - This fixes plan subagent windows not appearing during Ralph wizard plan generation - Also fixes connection lines between wizard, plan agents, and subagents chore: bump version to 0.1405 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -16,13 +16,15 @@ When user says "COM":
|
||||
1. Increment version in BOTH `package.json` AND `CLAUDE.md`
|
||||
2. Run: `git add -A && git commit -m "chore: bump version to X.XXXX" && git push && npm run build && systemctl --user restart claudeman-web`
|
||||
|
||||
**Version**: 0.1404 (must match `package.json`)
|
||||
**Version**: 0.1405 (must match `package.json`)
|
||||
|
||||
## Project Overview
|
||||
|
||||
Claudeman is a Claude Code session manager with web interface and autonomous Ralph Loop. Spawns Claude CLI via PTY, streams via SSE, supports respawn cycling for 24+ hour autonomous runs.
|
||||
|
||||
**Tech Stack**: TypeScript (ES2022/NodeNext, strict mode with `noUnusedLocals`, `noUnusedParameters`, `noImplicitReturns`), Node.js, Fastify, node-pty, xterm.js
|
||||
**Tech Stack**: TypeScript (ES2022/NodeNext, strict mode), Node.js, Fastify, node-pty, xterm.js
|
||||
|
||||
**TypeScript Strictness**: `noUnusedLocals`, `noUnusedParameters`, `noImplicitReturns`, `noImplicitOverride`, `noFallthroughCasesInSwitch`, `allowUnreachableCode: false`
|
||||
|
||||
**Requirements**: Node.js 18+, Claude CLI, GNU Screen
|
||||
|
||||
@@ -34,12 +36,13 @@ Claudeman is a Claude Code session manager with web interface and autonomous Ral
|
||||
# Development
|
||||
npx tsx src/index.ts web # Dev server (RECOMMENDED)
|
||||
npx tsx src/index.ts web --https # With TLS for notifications
|
||||
npx tsc --noEmit # Type check
|
||||
npm run typecheck # Type check
|
||||
|
||||
# Testing
|
||||
npx vitest run # All tests
|
||||
npx vitest run test/<file>.test.ts # Single file
|
||||
npm run test:e2e # Browser E2E tests
|
||||
npm run test:coverage # With coverage report
|
||||
npm run test:e2e # Browser E2E (run `npx playwright install chromium` first)
|
||||
|
||||
# Production
|
||||
npm run build
|
||||
@@ -47,6 +50,13 @@ systemctl --user restart claudeman-web
|
||||
journalctl --user -u claudeman-web -f
|
||||
```
|
||||
|
||||
## Binaries
|
||||
|
||||
| Binary | Purpose |
|
||||
|--------|---------|
|
||||
| `claudeman` | Main CLI and web server |
|
||||
| `claudeman-mcp` | MCP server for Claude Desktop integration |
|
||||
|
||||
## Architecture
|
||||
|
||||
### Core Files
|
||||
@@ -101,7 +111,7 @@ journalctl --user -u claudeman-web -f
|
||||
|
||||
**E2E tests**: Use Playwright. Run `npx playwright install chromium` first. See `test/e2e/fixtures/` for helpers. E2E config provides ports, timeouts, and helpers.
|
||||
|
||||
**Test config**: Vitest runs with `globals: true` (no imports needed for `describe`/`it`/`expect`) and `fileParallelism: false` (files run sequentially to respect screen limits).
|
||||
**Test config**: Vitest runs with `globals: true` (no imports needed for `describe`/`it`/`expect`) and `fileParallelism: false` (files run sequentially to respect screen limits). Test timeout is 30s, teardown timeout is 60s.
|
||||
|
||||
**Test safety**: `test/setup.ts` provides:
|
||||
- Screen concurrency limiter (max 10)
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "claudeman",
|
||||
"version": "0.1404",
|
||||
"version": "0.1405",
|
||||
"description": "The missing control plane for Claude Code - run 20 autonomous agents with real-time monitoring and session persistence",
|
||||
"type": "module",
|
||||
"main": "dist/index.js",
|
||||
|
||||
@@ -8109,8 +8109,7 @@ class ClaudemanApp {
|
||||
|
||||
// Check if Ralph wizard modal is open
|
||||
const wizardModal = document.getElementById('ralphWizardModal');
|
||||
const wizardOpen = wizardModal && !wizardModal.classList.contains('hidden') &&
|
||||
wizardModal.style.display !== 'none';
|
||||
const wizardOpen = wizardModal?.classList.contains('active');
|
||||
const wizardContent = wizardOpen ? wizardModal.querySelector('.modal-content') : null;
|
||||
|
||||
// Collect visible regular subagent windows for connection logic
|
||||
@@ -8360,8 +8359,7 @@ class ClaudemanApp {
|
||||
|
||||
// Check if Ralph wizard modal is open - if so, position windows on the sides
|
||||
const wizardModal = document.getElementById('ralphWizardModal');
|
||||
const wizardOpen = wizardModal && !wizardModal.classList.contains('hidden') &&
|
||||
wizardModal.style.display !== 'none';
|
||||
const wizardOpen = wizardModal?.classList.contains('active');
|
||||
|
||||
let startX, startY, maxCols;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user