dev-sessions 0.1.1 → 0.2.1

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.
@@ -73,6 +73,13 @@ class SessionManager {
73
73
  async sendMessage(championId, message) {
74
74
  const session = await this.requireSession(championId);
75
75
  if (session.cli === 'codex') {
76
+ const latestSession = await this.requireSession(championId);
77
+ if (latestSession.cli !== 'codex') {
78
+ throw new Error(`Session ${championId} is no longer a Codex session`);
79
+ }
80
+ if (latestSession.codexTurnInProgress === true) {
81
+ throw new Error('A turn is already in progress, use `wait` first');
82
+ }
76
83
  const turnStartTime = new Date().toISOString();
77
84
  await this.store.updateSession(championId, {
78
85
  lastUsed: turnStartTime,
@@ -83,9 +90,9 @@ class SessionManager {
83
90
  });
84
91
  let sendResult;
85
92
  try {
86
- sendResult = await this.codexBackend.sendMessage(session.championId, session.internalId, message, {
87
- workspacePath: session.path,
88
- model: session.model
93
+ sendResult = await this.codexBackend.sendMessage(latestSession.championId, latestSession.internalId, message, {
94
+ workspacePath: latestSession.path,
95
+ model: latestSession.model
89
96
  });
90
97
  }
91
98
  catch (error) {
@@ -103,8 +110,8 @@ class SessionManager {
103
110
  throw error;
104
111
  }
105
112
  const nextAssistantMessages = sendResult.assistantMessage.length > 0
106
- ? [...(session.lastAssistantMessages ?? []), sendResult.assistantMessage]
107
- : [...(session.lastAssistantMessages ?? [])];
113
+ ? [...(latestSession.lastAssistantMessages ?? []), sendResult.assistantMessage]
114
+ : [...(latestSession.lastAssistantMessages ?? [])];
108
115
  const completionTime = new Date().toISOString();
109
116
  const turnStillInProgress = sendResult.timedOut;
110
117
  await this.store.updateSession(championId, {
@@ -114,7 +121,7 @@ class SessionManager {
114
121
  lastUsed: completionTime,
115
122
  status: 'active',
116
123
  codexTurnInProgress: turnStillInProgress,
117
- codexLastCompletedAt: turnStillInProgress ? session.codexLastCompletedAt : completionTime,
124
+ codexLastCompletedAt: turnStillInProgress ? latestSession.codexLastCompletedAt : completionTime,
118
125
  lastTurnStatus: sendResult.status,
119
126
  lastTurnError: sendResult.errorMessage,
120
127
  lastAssistantMessages: nextAssistantMessages
@@ -167,7 +174,7 @@ class SessionManager {
167
174
  const livenessChecks = await Promise.all(sessions.map(async (session) => ({
168
175
  championId: session.championId,
169
176
  exists: session.cli === 'codex'
170
- ? await this.codexBackend.sessionExists(session.championId, session.appServerPid, session.appServerPort)
177
+ ? await this.codexBackend.sessionExists(session.championId, session.appServerPid, session.appServerPort, session.internalId)
171
178
  : await this.claudeBackend.sessionExists((0, champion_ids_1.toTmuxSessionName)(session.championId))
172
179
  })));
173
180
  const deadSessions = sessions.filter((session) => livenessChecks.some((check) => check.championId === session.championId && !check.exists));
@@ -198,7 +205,7 @@ class SessionManager {
198
205
  if (sessionMessages.length > 0) {
199
206
  return sessionMessages.slice(-safeCount);
200
207
  }
201
- return this.codexBackend.getLastAssistantMessages(championId, safeCount);
208
+ return await this.codexBackend.getLastAssistantMessages(championId, session.internalId, safeCount);
202
209
  }
203
210
  const transcriptPath = (0, claude_parser_1.getClaudeTranscriptPath)(session.path, session.internalId);
204
211
  const transcriptEntries = await (0, claude_parser_1.readClaudeTranscript)(transcriptPath);
@@ -212,6 +219,22 @@ class SessionManager {
212
219
  return 'working';
213
220
  }
214
221
  if (session.lastTurnStatus === 'failed') {
222
+ // Re-check live thread status — cached 'failed' may be stale (e.g. from a previous bug)
223
+ let liveStatus;
224
+ try {
225
+ liveStatus = await this.codexBackend.getThreadRuntimeStatus(session.internalId);
226
+ }
227
+ catch {
228
+ liveStatus = 'unknown';
229
+ }
230
+ if (liveStatus === 'active') {
231
+ return 'working';
232
+ }
233
+ if (liveStatus === 'idle' || liveStatus === 'notLoaded') {
234
+ await this.store.updateSession(championId, { lastTurnStatus: 'completed', lastTurnError: undefined });
235
+ return 'idle';
236
+ }
237
+ // Truly failed, unknown, or couldn't connect — report cached error
215
238
  const suffix = session.lastTurnError ? `: ${session.lastTurnError}` : '';
216
239
  throw new Error(`Codex turn failed${suffix}`);
217
240
  }
@@ -225,13 +248,27 @@ class SessionManager {
225
248
  const session = await this.requireSession(championId);
226
249
  if (session.cli === 'codex') {
227
250
  const timeoutMs = Math.max(1, options.timeoutSeconds ?? 300) * 1000;
228
- const intervalMs = Math.max(1, options.intervalSeconds ?? 2) * 1000;
229
- const startTime = Date.now();
230
251
  if (!session.codexTurnInProgress && session.lastTurnStatus === 'failed') {
231
- const message = session.lastTurnError
232
- ? `Codex turn failed: ${session.lastTurnError}`
233
- : 'Codex turn failed';
234
- throw new Error(message);
252
+ // Re-check live thread status before giving up — cached 'failed' may be stale
253
+ let liveStatus;
254
+ try {
255
+ liveStatus = await this.codexBackend.getThreadRuntimeStatus(session.internalId);
256
+ }
257
+ catch {
258
+ liveStatus = 'unknown';
259
+ }
260
+ if (liveStatus === 'idle' || liveStatus === 'notLoaded') {
261
+ await this.store.updateSession(championId, { lastTurnStatus: 'completed', lastTurnError: undefined });
262
+ return { completed: true, timedOut: false, elapsedMs: 0 };
263
+ }
264
+ if (liveStatus !== 'active') {
265
+ // Couldn't determine live status or truly failed — report cached error
266
+ const message = session.lastTurnError
267
+ ? `Codex turn failed: ${session.lastTurnError}`
268
+ : 'Codex turn failed';
269
+ throw new Error(message);
270
+ }
271
+ // Thread is active — fall through to waitForThread below
235
272
  }
236
273
  await this.store.updateSession(championId, {
237
274
  lastUsed: new Date().toISOString()
@@ -250,31 +287,41 @@ class SessionManager {
250
287
  elapsedMs: 0
251
288
  };
252
289
  }
253
- const deadline = startTime + timeoutMs;
254
- while (Date.now() <= deadline) {
255
- const latestSession = await this.requireSession(championId);
256
- if (latestSession.cli !== 'codex') {
257
- throw new Error(`Session ${championId} is no longer a Codex session`);
258
- }
259
- if (!latestSession.codexTurnInProgress) {
260
- if (latestSession.lastTurnStatus === 'failed') {
261
- const message = latestSession.lastTurnError
262
- ? `Codex turn failed: ${latestSession.lastTurnError}`
263
- : 'Codex turn failed';
264
- throw new Error(message);
290
+ let waitResult;
291
+ try {
292
+ waitResult = await this.codexBackend.waitForThread(championId, session.internalId, timeoutMs);
293
+ }
294
+ catch (error) {
295
+ if (error instanceof Error) {
296
+ const latestSession = await this.store.getSession(championId);
297
+ if (latestSession?.cli === 'codex' && latestSession.codexTurnInProgress === true) {
298
+ await this.store.updateSession(championId, {
299
+ codexTurnInProgress: false,
300
+ lastTurnStatus: 'failed',
301
+ lastTurnError: error.message,
302
+ lastUsed: new Date().toISOString()
303
+ });
265
304
  }
266
- return {
267
- completed: latestSession.lastTurnStatus !== 'interrupted',
268
- timedOut: latestSession.lastTurnStatus === 'interrupted',
269
- elapsedMs: Date.now() - startTime
270
- };
271
305
  }
272
- await this.sleep(intervalMs);
306
+ throw error;
307
+ }
308
+ const completionTime = new Date().toISOString();
309
+ const turnStillInProgress = waitResult.timedOut;
310
+ await this.store.updateSession(championId, {
311
+ lastUsed: completionTime,
312
+ codexTurnInProgress: turnStillInProgress,
313
+ codexLastCompletedAt: turnStillInProgress ? session.codexLastCompletedAt : completionTime,
314
+ lastTurnStatus: waitResult.status,
315
+ lastTurnError: waitResult.errorMessage
316
+ });
317
+ if (waitResult.status === 'failed') {
318
+ const message = waitResult.errorMessage ? `Codex turn failed: ${waitResult.errorMessage}` : 'Codex turn failed';
319
+ throw new Error(message);
273
320
  }
274
321
  return {
275
- completed: false,
276
- timedOut: true,
277
- elapsedMs: Date.now() - startTime
322
+ completed: !waitResult.timedOut && waitResult.status !== 'interrupted',
323
+ timedOut: waitResult.timedOut || waitResult.status === 'interrupted',
324
+ elapsedMs: waitResult.elapsedMs
278
325
  };
279
326
  }
280
327
  const transcriptPath = (0, claude_parser_1.getClaudeTranscriptPath)(session.path, session.internalId);
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-sessions",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "description": "CLI tool to spawn and manage coding agent sessions",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "files": [
10
10
  "dist",
11
- "skill/SKILL.md",
11
+ "skills/",
12
12
  "README.md"
13
13
  ],
14
14
  "scripts": {
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: dev-sessions
3
+ description: Spawn, manage, and communicate with other coding agent sessions for parallel work delegation. Use when tasks can be parallelized or when handing off work.
4
+ allowed-tools: Bash(dev-sessions:*)
5
+ ---
6
+
7
+ # dev-sessions: Parallel Agent Delegation
8
+
9
+ Spawn Claude Code sessions, delegate tasks, collect results.
10
+
11
+ Sessions get auto-generated **champion IDs** (e.g. `fizz-top`) — use these in all commands.
12
+
13
+ ## Standard Workflow
14
+
15
+ ```bash
16
+ # Create (defaults: --cli claude --mode yolo --path <cwd>)
17
+ sid=$(dev-sessions create -q --path /abs/path/to/repo --description "fix parser bug")
18
+
19
+ # Send task (inline or from file)
20
+ dev-sessions send "$sid" "Fix the off-by-one in src/parser.ts and add a test."
21
+ dev-sessions send "$sid" --file BRIEF.md
22
+
23
+ # Wait for completion (blocks; exits 124 on timeout)
24
+ dev-sessions wait "$sid" --timeout 300
25
+
26
+ # Read result
27
+ dev-sessions last-message "$sid"
28
+
29
+ # Clean up
30
+ dev-sessions kill "$sid"
31
+ ```
32
+
33
+ ## Commands
34
+
35
+ ```
36
+ create [-p path] [-d desc] [--cli claude|codex] [-m yolo|native|docker] [-q]
37
+ send <id> [message] [-f file]
38
+ wait <id> [-t seconds] [-i interval_seconds]
39
+ last-message <id> [-n count]
40
+ status <id> → idle | working | waiting_for_input
41
+ list [--json]
42
+ kill <id>
43
+ ```
44
+
45
+ ## Key Flags
46
+
47
+ - `--mode yolo` (default) — auto-approves all tool calls. **Always use for unattended delegation.**
48
+ - `--path` — defaults to your CWD. Set explicitly when delegating to a different repo.
49
+ - `-q` on `create` — prints only the champion ID, ideal for `sid=$(...)` capture.
50
+
51
+ ## Handling `waiting_for_input`
52
+
53
+ The agent asked a question and is blocked. Send a reply to unblock:
54
+
55
+ ```bash
56
+ dev-sessions last-message "$sid" # read the question
57
+ dev-sessions send "$sid" "Yes, proceed." # unblock
58
+ dev-sessions wait "$sid"
59
+ ```
60
+
61
+ ## Fan-Out Pattern
62
+
63
+ ```bash
64
+ s1=$(dev-sessions create -q --description "frontend" --path /repo)
65
+ s2=$(dev-sessions create -q --description "backend" --path /repo)
66
+ dev-sessions send "$s1" --file FRONTEND.md
67
+ dev-sessions send "$s2" --file BACKEND.md
68
+ dev-sessions wait "$s1" && dev-sessions last-message "$s1"
69
+ dev-sessions wait "$s2" && dev-sessions last-message "$s2"
70
+ ```
71
+
72
+ ## Writing Good Task Briefs
73
+
74
+ ```
75
+ Repo: /abs/path/to/repo
76
+ Goal: <what to implement>
77
+ Read first: src/foo.ts, tests/foo.test.ts
78
+ Constraints: do not modify generated files
79
+ Acceptance: all tests pass, new behavior verified in <test>
80
+ ```
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: handoff
3
+ description: Hand off work to a fresh dev session when context is running long. Creates a briefing and spawns a new session the user can attach to.
4
+ ---
5
+
6
+ # Handoff Skill
7
+
8
+ Use this skill when context is running long and you need to hand off work to a fresh session. Instead of compacting and losing nuance, create a comprehensive briefing and spawn a new dev session that can continue with full context.
9
+
10
+ ## When to Use
11
+
12
+ - User explicitly requests a handoff
13
+ - Context is getting long and quality may degrade
14
+ - You've accumulated significant context that would be lost in compaction
15
+ - The remaining work is substantial enough to warrant a fresh session
16
+
17
+ ## The Handoff Flow
18
+
19
+ 1. **Synthesize your knowledge** - You have all the context. Distill it into what the next agent actually needs.
20
+
21
+ 2. **Spawn dev session** - Use `dev-sessions create` via Bash.
22
+
23
+ 3. **Send the briefing** - Use `dev-sessions send` to deliver a comprehensive briefing (see structure below). Write it to a temp file and send with `--file` to avoid shell quoting issues.
24
+
25
+ 4. **Inform the user** - Tell them the session ID and how to monitor it.
26
+
27
+ ```bash
28
+ # Create session
29
+ sid=$(dev-sessions create -q --description "handoff")
30
+
31
+ # Write briefing to file and send
32
+ cat > /tmp/handoff-brief.md << 'EOF'
33
+ <briefing content here>
34
+ EOF
35
+ dev-sessions send "$sid" --file /tmp/handoff-brief.md
36
+ ```
37
+
38
+ ## Briefing Structure
39
+
40
+ This is a recommended structure. Adapt it based on what's actually important for your specific situation.
41
+
42
+ ```markdown
43
+ ## Handoff Briefing
44
+
45
+ ### Goal
46
+ What we're ultimately trying to accomplish. Be as thorough as needed - if the goal requires detailed explanation, provide it.
47
+
48
+ ### Current State
49
+ - What's been completed
50
+ - What's in progress
51
+ - Key decisions made and the reasoning behind them
52
+
53
+ ### Relevant Code
54
+ Files and areas of the codebase that matter for this task. Not an exhaustive list -
55
+ just what the next agent should start with. They can explore from there.
56
+
57
+ - `path/to/important/file.py` - why it matters
58
+ - `path/to/another/` - what's in this directory
59
+
60
+ ### What's Next
61
+ The concrete next steps. Be specific but not overly prescriptive.
62
+
63
+ 1. First thing to do
64
+ 2. Second thing to do
65
+ 3. etc.
66
+
67
+ ### Context and Gotchas
68
+ Things you learned that aren't obvious from the code:
69
+ - Gotchas and pitfalls
70
+ - Why certain approaches were chosen
71
+ - What didn't work and why
72
+ - Anything non-obvious
73
+
74
+ ---
75
+
76
+ ## Instructions for You
77
+
78
+ 1. Read the relevant code listed above. Explore further as needed to build understanding.
79
+
80
+ 2. Once you understand the codebase and the task, summarize your understanding and
81
+ proposed approach.
82
+
83
+ 3. **Wait for the user** - Do not start implementation until the user explicitly
84
+ says to continue. They will attach to this session and review your understanding first.
85
+ ```
86
+
87
+ ## Guidelines for Writing Briefings
88
+
89
+ **Be thorough where it matters** - Complex business logic, non-obvious constraints, nuanced requirements - explain these fully. Don't omit critical details just to be concise.
90
+
91
+ **Be concise where you can** - Don't waste tokens on things the receiving agent can figure out. They're intelligent. Give them files and they can explore the code themselves.
92
+
93
+ **Stay focused** - Include what's relevant to the task. Skip tangential context that won't help them succeed.
94
+
95
+ **Include the "why"** - Decisions without reasoning are hard to build on. If you chose approach A over B, say why.
96
+
97
+ **Mention what didn't work** - Failed approaches are valuable context. The next agent shouldn't repeat your mistakes.
98
+
99
+ ## After Sending
100
+
101
+ Tell the user:
102
+ ```
103
+ Handoff complete. I've created session [session-id] with a full briefing.
104
+
105
+ The session is running. You can monitor it with:
106
+ dev-sessions status [session-id]
107
+ dev-sessions wait [session-id]
108
+
109
+ The new agent will read the code and present its understanding.
110
+ It's waiting for you to say "continue" before taking any action.
111
+ ```
package/skill/SKILL.md DELETED
@@ -1,141 +0,0 @@
1
- ---
2
- name: dev-sessions
3
- description: Spawn, manage, and communicate with other coding agent sessions for parallel work delegation. Use when tasks can be parallelized or when handing off work.
4
- allowed-tools: Bash(dev-sessions:*)
5
- ---
6
-
7
- # dev-sessions: Parallel Agent Delegation
8
-
9
- Use `dev-sessions` to offload work to other coding-agent sessions while you continue orchestrating, reviewing, and integrating.
10
-
11
- ## Quick Reference
12
-
13
- ```bash
14
- # Create sessions
15
- dev-sessions create --description "backend API hardening"
16
- dev-sessions create --path /path/to/repo --mode native -q
17
-
18
- # Send work
19
- dev-sessions send fizz-top "Implement task from TODO.md"
20
- dev-sessions send fizz-top --file BRIEF.md
21
-
22
- # Monitor and collect
23
- dev-sessions status fizz-top
24
- dev-sessions wait fizz-top --timeout 600 --interval 3
25
- dev-sessions last-message fizz-top --count 2
26
- dev-sessions list
27
-
28
- # Cleanup
29
- dev-sessions kill fizz-top
30
-
31
- # Install this skill
32
- dev-sessions install-skill --global
33
- dev-sessions install-skill --local --claude
34
- dev-sessions install-skill --global --codex
35
- ```
36
-
37
- ## Delegate vs Do It Yourself
38
-
39
- Delegate when:
40
- - The task can run in parallel with your current work.
41
- - The scope is large enough to benefit from independent execution.
42
- - A different expertise area is needed (for example frontend vs backend).
43
- - Your own context window is getting long and you want to isolate sub-work.
44
-
45
- Do it yourself when:
46
- - The task is trivial or faster to complete directly.
47
- - The task depends heavily on your current conversation context.
48
- - The change is a quick fix where delegation overhead would dominate.
49
-
50
- ## Writing Strong Task Briefs
51
-
52
- Include:
53
- - Context: repo path, subsystem, and what the delegate is expected to own.
54
- - Constraints: coding standards, forbidden changes, environment limitations.
55
- - Acceptance criteria: exact behavior or checks that define done.
56
- - File pointers: specific files to read first.
57
- - Why: the intent behind the task so the delegate can make good tradeoffs.
58
-
59
- Brief template:
60
-
61
- ```text
62
- Repo: /abs/path/to/repo
63
- Goal: <what to implement>
64
- Why: <business/technical reason>
65
- Read first:
66
- - src/moduleA.ts
67
- - tests/moduleA.test.ts
68
- Constraints:
69
- - Do not modify generated files
70
- - Preserve existing CLI behavior
71
- Acceptance criteria:
72
- - All related tests pass
73
- - New behavior verified in <specific test>
74
- ```
75
-
76
- ## Delegation Patterns
77
-
78
- ### Fire-and-Forget (Handoff)
79
-
80
- Use when user will check output later.
81
-
82
- ```bash
83
- sid=$(dev-sessions create -q --description "handoff")
84
- dev-sessions send "$sid" --file HANDOFF.md
85
- # Done for now; no immediate follow-up needed.
86
- ```
87
-
88
- ### Synchronous Delegation
89
-
90
- Use when you need result before continuing.
91
-
92
- ```bash
93
- sid=$(dev-sessions create -q --description "implement parser fix")
94
- dev-sessions send "$sid" "Fix parser bug in src/parser.ts and add tests."
95
- dev-sessions wait "$sid"
96
- dev-sessions last-message "$sid"
97
- ```
98
-
99
- ### Fan-Out
100
-
101
- Use when independent tasks can run in parallel.
102
-
103
- ```bash
104
- s1=$(dev-sessions create -q --description "frontend")
105
- s2=$(dev-sessions create -q --description "backend")
106
- dev-sessions send "$s1" --file FRONTEND_BRIEF.md
107
- dev-sessions send "$s2" --file BACKEND_BRIEF.md
108
- dev-sessions wait "$s1"
109
- dev-sessions wait "$s2"
110
- dev-sessions last-message "$s1"
111
- dev-sessions last-message "$s2"
112
- ```
113
-
114
- ### Iterative Delegation
115
-
116
- Use when delegate output informs the next prompt.
117
-
118
- ```bash
119
- sid=$(dev-sessions create -q --description "iterative refactor")
120
- dev-sessions send "$sid" "Step 1: propose refactor plan for src/cache.ts."
121
- dev-sessions wait "$sid"
122
- dev-sessions last-message "$sid"
123
- dev-sessions send "$sid" "Step 2: implement approved plan and add tests."
124
- dev-sessions wait "$sid"
125
- dev-sessions last-message "$sid"
126
- ```
127
-
128
- ## Polling Best Practices
129
-
130
- - Prefer `dev-sessions wait <id>` instead of manual polling loops.
131
- - If polling manually:
132
- - Check `dev-sessions status <id>` first.
133
- - Read output with `dev-sessions last-message <id>` only when status is `idle`.
134
- - For complex tasks, wait 30-60 seconds between status checks.
135
-
136
- ## Anti-Patterns
137
-
138
- - Delegating tasks that are quicker to do directly.
139
- - Sending vague briefs without file references or acceptance criteria.
140
- - Polling every few seconds for long-running work (wastes tokens).
141
- - Reading `last-message` repeatedly without checking status first.