hjworktree-cli 2.4.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.context-snapshots/context-snapshot-20250107-221530.md +95 -0
- package/README.md +21 -0
- package/bin/cli.js +64 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +10 -0
- package/dist/server/index.js.map +1 -1
- package/dist/shared/constants.d.ts +2 -1
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +2 -1
- package/dist/shared/constants.js.map +1 -1
- package/dist/web/assets/{index-D-hASqdI.js → index-Jm7djWxU.js} +2 -2
- package/dist/web/assets/{index-D-hASqdI.js.map → index-Jm7djWxU.js.map} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +2 -1
- package/server/index.ts +11 -0
- package/shared/constants.ts +2 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Context Snapshot
|
|
2
|
+
|
|
3
|
+
## Session Metadata
|
|
4
|
+
- **Created**: 2025-01-07T22:15:30+09:00
|
|
5
|
+
- **CLI**: Claude Code
|
|
6
|
+
- **Project**: /Users/hyungju-lee/workspace/work/new/utils/hjWorktree-cli
|
|
7
|
+
|
|
8
|
+
## Conversation Summary
|
|
9
|
+
|
|
10
|
+
### User Requests
|
|
11
|
+
1. AI agent 선택 기능 제거 (Codex CLI, Claude Code, Gemini CLI 선택 단계 삭제)
|
|
12
|
+
2. 새로고침 시 세션 중복 버그 수정 (터미널 6개로 늘어나는 문제)
|
|
13
|
+
3. npm publish를 위한 버전 업데이트 및 README.md 수정
|
|
14
|
+
|
|
15
|
+
### Completed Tasks
|
|
16
|
+
1. **AI Agent 선택 기능 제거**
|
|
17
|
+
- 4단계 wizard → 3단계 wizard (Branch → Count → Running)
|
|
18
|
+
- AgentStep.tsx, AgentSelector.tsx 컴포넌트 삭제
|
|
19
|
+
- 관련 타입, 상수, 상태 관리 코드 정리
|
|
20
|
+
- 터미널이 순수 shell로 열리도록 변경
|
|
21
|
+
|
|
22
|
+
2. **세션 중복 버그 수정**
|
|
23
|
+
- `addTerminal()`에 중복 체크 로직 추가
|
|
24
|
+
- `restoreExistingWorktrees()`에 조건 체크 추가
|
|
25
|
+
|
|
26
|
+
3. **버전 업데이트 및 문서화**
|
|
27
|
+
- 버전 2.3.0 → 2.4.0 업데이트
|
|
28
|
+
- README.md에 변경사항 반영
|
|
29
|
+
|
|
30
|
+
### Modified Files
|
|
31
|
+
- `shared/types/index.ts` - AgentId, AgentType 제거, NavigationStep에서 'agent' 제거
|
|
32
|
+
- `shared/constants.ts` - AI_AGENTS 배열 제거, APP_VERSION 업데이트
|
|
33
|
+
- `web/src/App.tsx` - AgentStep import 및 렌더링 제거
|
|
34
|
+
- `web/src/stores/useAppStore.ts` - selectedAgent 상태/액션 제거, 중복 체크 추가
|
|
35
|
+
- `web/src/components/Steps/WorktreeStep.tsx` - agent 표시 제거
|
|
36
|
+
- `web/src/components/Modals/AddWorktreeModal.tsx` - agent 선택 UI 제거
|
|
37
|
+
- `web/src/components/Terminal/SplitTerminalView.tsx` - agent 라벨 제거
|
|
38
|
+
- `web/src/components/Terminal/XTerminal.tsx` - agentType prop 제거
|
|
39
|
+
- `web/src/components/Layout/LeftNavBar.tsx` - agent step 및 표시 제거
|
|
40
|
+
- `server/socketHandlers.ts` - agent 자동실행 제거
|
|
41
|
+
- `web/src/styles/global.css` - agent 관련 CSS 제거
|
|
42
|
+
- `package.json` - 버전 2.4.0
|
|
43
|
+
- `README.md` - 문서 업데이트
|
|
44
|
+
|
|
45
|
+
### Deleted Files
|
|
46
|
+
- `web/src/components/Steps/AgentStep.tsx`
|
|
47
|
+
- `web/src/components/Setup/AgentSelector.tsx`
|
|
48
|
+
|
|
49
|
+
## Technical Context
|
|
50
|
+
|
|
51
|
+
### Key Concepts
|
|
52
|
+
- Git worktree 관리
|
|
53
|
+
- Zustand 상태 관리
|
|
54
|
+
- Socket.IO 실시간 터미널 통신
|
|
55
|
+
- node-pty 터미널 에뮬레이션
|
|
56
|
+
- React 컴포넌트 라이프사이클
|
|
57
|
+
|
|
58
|
+
### Important Changes
|
|
59
|
+
|
|
60
|
+
**web/src/stores/useAppStore.ts**
|
|
61
|
+
```typescript
|
|
62
|
+
// 중복 체크 추가
|
|
63
|
+
addTerminal: (terminal) => set((state) => {
|
|
64
|
+
if (state.terminals.some(t => t.sessionId === terminal.sessionId)) {
|
|
65
|
+
return state;
|
|
66
|
+
}
|
|
67
|
+
return { terminals: [...state.terminals, terminal] };
|
|
68
|
+
}),
|
|
69
|
+
|
|
70
|
+
// 조건 체크 추가
|
|
71
|
+
restoreExistingWorktrees: async () => {
|
|
72
|
+
const { terminals } = get();
|
|
73
|
+
if (terminals.length > 0) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
// ...
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**server/socketHandlers.ts**
|
|
81
|
+
- agent 자동 실행 코드 제거
|
|
82
|
+
- 순수 shell만 열리도록 변경
|
|
83
|
+
|
|
84
|
+
### Issues Resolved
|
|
85
|
+
1. **세션 중복 버그**: 새로고침 시 `restoreExistingWorktrees()`가 무조건 실행되어 `addTerminal()`이 중복 호출됨
|
|
86
|
+
- 해결: 두 함수에 중복/조건 체크 추가
|
|
87
|
+
|
|
88
|
+
## Git Commits
|
|
89
|
+
1. `159f6499` - refactor: remove AI agent selection feature
|
|
90
|
+
2. `d382c1f7` - fix: prevent session duplication on page refresh
|
|
91
|
+
3. `8258b0f2` - chore: bump version to 2.4.0 for npm release
|
|
92
|
+
|
|
93
|
+
## Next Steps
|
|
94
|
+
- `npm publish`로 v2.4.0 배포
|
|
95
|
+
- 배포 후 실제 환경에서 테스트
|
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ Web-based git worktree manager for running multiple AI coding agents in parallel
|
|
|
14
14
|
- Individual and bulk session deletion
|
|
15
15
|
- Add new worktrees while sessions are running
|
|
16
16
|
- **Modern Web UI**: React + Zustand state management
|
|
17
|
+
- **Auto Port Detection**: Automatically finds available port when running multiple instances
|
|
17
18
|
|
|
18
19
|
## Installation
|
|
19
20
|
|
|
@@ -34,6 +35,21 @@ hjWorktree
|
|
|
34
35
|
|
|
35
36
|
This opens a web UI in your browser where you can:
|
|
36
37
|
|
|
38
|
+
### Running Multiple Projects
|
|
39
|
+
|
|
40
|
+
You can run `hjWorktree` in multiple projects simultaneously. The CLI automatically detects available ports:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Project A - uses default port 3847
|
|
44
|
+
cd /path/to/project-a && hjWorktree
|
|
45
|
+
|
|
46
|
+
# Project B - automatically uses port 3848
|
|
47
|
+
cd /path/to/project-b && hjWorktree
|
|
48
|
+
|
|
49
|
+
# Or specify a custom port
|
|
50
|
+
PORT=5000 hjWorktree
|
|
51
|
+
```
|
|
52
|
+
|
|
37
53
|
1. **Select Branch**: Choose the base branch for worktrees
|
|
38
54
|
2. **Set Worktree Count**: Specify how many parallel worktrees to create
|
|
39
55
|
3. **Run**: Launch terminals in each worktree, then run your preferred AI agent
|
|
@@ -117,6 +133,11 @@ hjWorktree-cli/
|
|
|
117
133
|
|
|
118
134
|
## Changelog
|
|
119
135
|
|
|
136
|
+
### v2.5.0
|
|
137
|
+
- **Auto Port Detection**: Automatically finds available port (range 3847-3856) when default port is in use
|
|
138
|
+
- **Multi-Project Support**: Run hjWorktree in multiple projects simultaneously without port conflicts
|
|
139
|
+
- **Custom Port**: Support `PORT` environment variable for explicit port specification
|
|
140
|
+
|
|
120
141
|
### v2.4.0
|
|
121
142
|
- **Simplified Workflow**: Removed AI agent selection step (3-step wizard: Branch → Count → Run)
|
|
122
143
|
- **Pure Terminal**: Terminals now open as shell, run any AI agent manually (`claude`, `codex`, `gemini`)
|
package/bin/cli.js
CHANGED
|
@@ -4,13 +4,65 @@ import { spawn, execSync } from 'child_process';
|
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import fs from 'fs';
|
|
7
|
+
import getPort, { portNumbers } from 'get-port';
|
|
7
8
|
|
|
8
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
10
|
const __dirname = path.dirname(__filename);
|
|
10
11
|
|
|
11
|
-
const
|
|
12
|
+
const DEFAULT_PORT = 3847;
|
|
13
|
+
const PORT_RANGE_SIZE = 10;
|
|
12
14
|
const CWD = process.cwd();
|
|
13
15
|
|
|
16
|
+
// Check if PORT is explicitly set by user
|
|
17
|
+
const userSpecifiedPort = process.env.PORT;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Find an available port within the configured range.
|
|
21
|
+
* If user explicitly set PORT env var, use that instead.
|
|
22
|
+
*/
|
|
23
|
+
async function findAvailablePort() {
|
|
24
|
+
if (userSpecifiedPort) {
|
|
25
|
+
const port = parseInt(userSpecifiedPort, 10);
|
|
26
|
+
if (isNaN(port) || port < 1 || port > 65535) {
|
|
27
|
+
console.error(`Error: Invalid PORT value "${userSpecifiedPort}". Must be a number between 1 and 65535.`);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
port,
|
|
32
|
+
isExplicit: true,
|
|
33
|
+
isDefault: port === DEFAULT_PORT
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const maxPort = DEFAULT_PORT + PORT_RANGE_SIZE - 1;
|
|
38
|
+
|
|
39
|
+
try {
|
|
40
|
+
const port = await getPort({
|
|
41
|
+
port: portNumbers(DEFAULT_PORT, maxPort)
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// get-port returns a random port if none in range are available
|
|
45
|
+
if (port < DEFAULT_PORT || port > maxPort) {
|
|
46
|
+
console.error(`Error: No available ports in range ${DEFAULT_PORT}-${maxPort}.`);
|
|
47
|
+
console.error('All ports in the range are currently in use.');
|
|
48
|
+
console.error('');
|
|
49
|
+
console.error('Solutions:');
|
|
50
|
+
console.error(` 1. Free up a port in the range ${DEFAULT_PORT}-${maxPort}`);
|
|
51
|
+
console.error(' 2. Specify a different port: PORT=4000 hjWorktree');
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
port,
|
|
57
|
+
isExplicit: false,
|
|
58
|
+
isDefault: port === DEFAULT_PORT
|
|
59
|
+
};
|
|
60
|
+
} catch (error) {
|
|
61
|
+
console.error('Error finding available port:', error.message);
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
14
66
|
// Check if it's a git repository
|
|
15
67
|
try {
|
|
16
68
|
execSync('git status', { cwd: CWD, stdio: 'ignore' });
|
|
@@ -20,6 +72,9 @@ try {
|
|
|
20
72
|
process.exit(1);
|
|
21
73
|
}
|
|
22
74
|
|
|
75
|
+
// Find available port
|
|
76
|
+
const { port: PORT, isExplicit, isDefault } = await findAvailablePort();
|
|
77
|
+
|
|
23
78
|
// Find the server entry point
|
|
24
79
|
let serverPath = path.join(__dirname, '../dist/server/index.js');
|
|
25
80
|
|
|
@@ -36,7 +91,14 @@ if (!fs.existsSync(serverPath)) {
|
|
|
36
91
|
|
|
37
92
|
console.log(`Starting hjWorktree CLI...`);
|
|
38
93
|
console.log(`Working directory: ${CWD}`);
|
|
39
|
-
|
|
94
|
+
|
|
95
|
+
if (isExplicit) {
|
|
96
|
+
console.log(`Server port: ${PORT} (user specified)`);
|
|
97
|
+
} else if (isDefault) {
|
|
98
|
+
console.log(`Server port: ${PORT}`);
|
|
99
|
+
} else {
|
|
100
|
+
console.log(`Server port: ${PORT} (default port ${DEFAULT_PORT} was in use)`);
|
|
101
|
+
}
|
|
40
102
|
|
|
41
103
|
// Start the server
|
|
42
104
|
const serverArgs = serverPath.endsWith('.ts')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../server/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAWnC,QAAA,MAAM,GAAG,6CAAY,CAAC;AACtB,QAAA,MAAM,UAAU,oGAAoB,CAAC;AACrC,QAAA,MAAM,EAAE,+HAKN,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../server/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAWnC,QAAA,MAAM,GAAG,6CAAY,CAAC;AACtB,QAAA,MAAM,UAAU,oGAAoB,CAAC;AACrC,QAAA,MAAM,EAAE,+HAKN,CAAC;AAiEH,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC"}
|
package/dist/server/index.js
CHANGED
|
@@ -44,6 +44,16 @@ process.on('SIGTERM', () => {
|
|
|
44
44
|
killAllSessions();
|
|
45
45
|
process.exit(0);
|
|
46
46
|
});
|
|
47
|
+
// Handle port in use error (race condition protection)
|
|
48
|
+
httpServer.on('error', (error) => {
|
|
49
|
+
if (error.code === 'EADDRINUSE') {
|
|
50
|
+
console.error(`\nError: Port ${PORT} is already in use.`);
|
|
51
|
+
console.error('This may happen if another process started using the port just now.');
|
|
52
|
+
console.error('Please try again or specify a different port: PORT=4000 hjWorktree');
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
throw error;
|
|
56
|
+
});
|
|
47
57
|
// Start server
|
|
48
58
|
httpServer.listen(PORT, () => {
|
|
49
59
|
console.log(`
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ export declare const MIN_PARALLEL_COUNT = 1;
|
|
|
3
3
|
export declare const DEFAULT_PARALLEL_COUNT = 3;
|
|
4
4
|
export declare const BRANCH_POLL_INTERVAL = 5000;
|
|
5
5
|
export declare const APP_NAME = "hjWorktree CLI";
|
|
6
|
-
export declare const APP_VERSION = "2.
|
|
6
|
+
export declare const APP_VERSION = "2.5.0";
|
|
7
7
|
export declare const DEFAULT_PORT = 3847;
|
|
8
|
+
export declare const PORT_RANGE_SIZE = 10;
|
|
8
9
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../shared/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,eAAO,MAAM,QAAQ,mBAAmB,CAAC;AACzC,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,eAAO,MAAM,YAAY,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../shared/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,eAAO,MAAM,QAAQ,mBAAmB,CAAC;AACzC,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,eAAe,KAAK,CAAC"}
|
package/dist/shared/constants.js
CHANGED
|
@@ -3,6 +3,7 @@ export const MIN_PARALLEL_COUNT = 1;
|
|
|
3
3
|
export const DEFAULT_PARALLEL_COUNT = 3;
|
|
4
4
|
export const BRANCH_POLL_INTERVAL = 5000; // 5 seconds
|
|
5
5
|
export const APP_NAME = 'hjWorktree CLI';
|
|
6
|
-
export const APP_VERSION = '2.
|
|
6
|
+
export const APP_VERSION = '2.5.0';
|
|
7
7
|
export const DEFAULT_PORT = 3847;
|
|
8
|
+
export const PORT_RANGE_SIZE = 10; // Will try ports 3847-3856
|
|
8
9
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../shared/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,CAAC,YAAY;AAEtD,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../shared/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,CAAC,YAAY;AAEtD,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,2BAA2B"}
|