dev-sessions 0.2.3 → 0.2.4

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/README.md CHANGED
@@ -129,7 +129,7 @@ Sessions get human-readable IDs like `fizz-top`, `riven-jg` (League of Legends c
129
129
 
130
130
  ### Session Store
131
131
 
132
- Persisted at `~/.dev-sessions/sessions.json`. No cross-process locking avoid concurrent `create` calls (tracked in TODO.md).
132
+ Persisted at `~/.dev-sessions/sessions.json`. All mutating operations use file-based locking (`mkdir` as atomic primitive) to serialize concurrent access.
133
133
 
134
134
  ---
135
135
 
@@ -201,7 +201,7 @@ Spawns Claude inside Docker via a `clauded` binary on the host. See [claude-ting
201
201
 
202
202
  - **Codex ignores `--mode`**: Always runs with `approvalPolicy: never` / full access regardless of mode flag.
203
203
  - **`docker` mode is Claude-only**: Codex + Docker not implemented.
204
- - **Session store has no locking**: Concurrent `create` calls can race. Avoid for now.
204
+ - **Session store uses file locking**: Concurrent operations are serialized via lockfile. A crashed process holding the lock is auto-recovered after 30 seconds.
205
205
  - **Gateway port conflict**: Default port 6767 can conflict with Docker. Use `DEV_SESSIONS_GATEWAY_PORT` to override.
206
206
  - **No `respond` command**: No structured way to respond to `waiting_for_input` sessions. Only matters for non-native modes.
207
207
  - **Claude permission prompts undetectable**: TUI-level prompts aren't written to JSONL — `status` reports `working` instead of `waiting_for_input`. Only affects `native` mode.
@@ -29,7 +29,7 @@ export interface Backend {
29
29
  readonly deadSessionPolicy: 'prune' | 'deactivate';
30
30
  isChampionIdTaken(championId: string): Promise<boolean>;
31
31
  create(options: BackendCreateOptions): Promise<BackendCreateResult>;
32
- preSendStoreFields(session: StoredSession, sendTime: string): Partial<StoredSession>;
32
+ preSendStoreFields(session: StoredSession, sendTime: string): Partial<StoredSession> | Promise<Partial<StoredSession>>;
33
33
  send(session: StoredSession, message: string): Promise<Partial<StoredSession>>;
34
34
  onSendError(session: StoredSession, error: Error): Partial<StoredSession>;
35
35
  status(session: StoredSession): Promise<BackendStatusResult>;
@@ -8,7 +8,7 @@ export declare class ClaudeBackend implements Backend {
8
8
  constructor(raw: ClaudeTmuxBackend);
9
9
  isChampionIdTaken(championId: string): Promise<boolean>;
10
10
  create(options: BackendCreateOptions): Promise<BackendCreateResult>;
11
- preSendStoreFields(_session: StoredSession, _sendTime: string): Partial<StoredSession>;
11
+ preSendStoreFields(session: StoredSession, _sendTime: string): Promise<Partial<StoredSession>>;
12
12
  send(session: StoredSession, message: string): Promise<Partial<StoredSession>>;
13
13
  onSendError(_session: StoredSession, _error: Error): Partial<StoredSession>;
14
14
  status(session: StoredSession): Promise<BackendStatusResult>;
@@ -22,8 +22,17 @@ class ClaudeBackend {
22
22
  await this.raw.createSession(tmuxSessionName, options.workspacePath, mode, internalId);
23
23
  return { internalId, mode };
24
24
  }
25
- preSendStoreFields(_session, _sendTime) {
26
- return {};
25
+ async preSendStoreFields(session, _sendTime) {
26
+ // Snapshot the current system entry count so wait() knows the baseline
27
+ // even if it starts after the turn has already completed.
28
+ const transcriptPath = (0, claude_parser_1.getClaudeTranscriptPath)(session.path, session.internalId);
29
+ try {
30
+ const entries = await (0, claude_parser_1.readClaudeTranscript)(transcriptPath);
31
+ return { claudeSystemCountAtSend: (0, claude_parser_1.countSystemEntries)(entries) };
32
+ }
33
+ catch {
34
+ return { claudeSystemCountAtSend: 0 };
35
+ }
27
36
  }
28
37
  async send(session, message) {
29
38
  const tmuxSessionName = (0, champion_ids_1.toTmuxSessionName)(session.championId);
@@ -47,16 +56,31 @@ class ClaudeBackend {
47
56
  }
48
57
  async wait(session, timeoutMs, intervalMs) {
49
58
  const transcriptPath = (0, claude_parser_1.getClaudeTranscriptPath)(session.path, session.internalId);
59
+ const tmuxSessionName = (0, champion_ids_1.toTmuxSessionName)(session.championId);
50
60
  const startTime = Date.now();
51
61
  const deadline = startTime + timeoutMs;
52
- const initialEntries = await (0, claude_parser_1.readClaudeTranscript)(transcriptPath);
53
- const baselineAssistantCount = (0, claude_parser_1.countAssistantMessages)(initialEntries);
54
- const baselineSystemCount = (0, claude_parser_1.countSystemEntries)(initialEntries);
55
- const baselineFileHistoryCount = (0, claude_parser_1.countFileHistorySnapshots)(initialEntries);
62
+ // Use the system entry count snapshotted at send time as the baseline.
63
+ // This way wait() detects completion even if the turn finishes before wait starts.
64
+ const baselineSystemCount = session.claudeSystemCountAtSend ?? 0;
56
65
  let lastMtimeMs = -1;
57
66
  let shouldReadTranscript = false;
58
- let cachedEntries = initialEntries;
67
+ let cachedEntries = [];
68
+ let pollCount = 0;
59
69
  while (Date.now() <= deadline) {
70
+ // Periodically check if the tmux session is still alive (every 10th poll).
71
+ if (pollCount > 0 && pollCount % 10 === 0) {
72
+ const liveness = await this.raw.sessionExists(tmuxSessionName);
73
+ if (liveness === 'dead') {
74
+ return {
75
+ completed: false,
76
+ timedOut: false,
77
+ elapsedMs: Date.now() - startTime,
78
+ storeUpdate: { status: 'inactive', lastTurnError: 'tmux session died during wait' },
79
+ errorToThrow: new Error('tmux session died during wait')
80
+ };
81
+ }
82
+ }
83
+ pollCount++;
60
84
  try {
61
85
  const fileStat = await (0, promises_1.stat)(transcriptPath);
62
86
  if (fileStat.mtimeMs !== lastMtimeMs) {
@@ -75,21 +99,12 @@ class ClaudeBackend {
75
99
  cachedEntries = await (0, claude_parser_1.readClaudeTranscript)(transcriptPath);
76
100
  shouldReadTranscript = false;
77
101
  }
78
- const hasNewAssistant = (0, claude_parser_1.countAssistantMessages)(cachedEntries) > baselineAssistantCount;
79
- const hasNewSystemEntry = (0, claude_parser_1.countSystemEntries)(cachedEntries) > baselineSystemCount;
80
- const hasNewFileHistorySnapshot = (0, claude_parser_1.countFileHistorySnapshots)(cachedEntries) > baselineFileHistoryCount;
81
- // A system entry followed by a new assistant message is the primary completion signal.
82
- if (hasNewSystemEntry && hasNewAssistant) {
83
- return {
84
- completed: true,
85
- timedOut: false,
86
- elapsedMs: Date.now() - startTime,
87
- storeUpdate: { lastUsed: new Date().toISOString() }
88
- };
89
- }
90
- // For turns that end without a system entry (e.g. long tool runs), Claude writes a
91
- // file-history-snapshot at turn completion. Use that as the fallback signal.
92
- if (hasNewFileHistorySnapshot && hasNewAssistant) {
102
+ // A system entry is the definitive turn-completion signal — Claude writes it only
103
+ // when the agent fully finishes (never mid-turn during tool calls).
104
+ // Compare against the baseline from send time so we detect completion even if
105
+ // the turn finishes before wait starts.
106
+ const currentSystemCount = (0, claude_parser_1.countSystemEntries)(cachedEntries);
107
+ if (currentSystemCount > baselineSystemCount) {
93
108
  return {
94
109
  completed: true,
95
110
  timedOut: false,
@@ -1 +1 @@
1
- {"version":3,"file":"claude-backend.js","sourceRoot":"","sources":["../../src/backends/claude-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-backend.js","sourceRoot":"","sources":["../../src/backends/claude-backend.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,7 @@ class SessionManager {
67
67
  const session = await this.requireSession(championId);
68
68
  const backend = this.getBackend(session.cli);
69
69
  const sendTime = new Date().toISOString();
70
- const preSendFields = backend.preSendStoreFields(session, sendTime);
70
+ const preSendFields = await backend.preSendStoreFields(session, sendTime);
71
71
  if (Object.keys(preSendFields).length > 0) {
72
72
  await this.store.updateSession(championId, preSendFields);
73
73
  }
@@ -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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"}
@@ -1,6 +1,7 @@
1
1
  import { StoredSession } from './types';
2
2
  export declare class SessionStore {
3
3
  private readonly storePath;
4
+ private readonly lockPath;
4
5
  constructor(storePath?: string);
5
6
  get filePath(): string;
6
7
  listSessions(): Promise<StoredSession[]>;
@@ -9,6 +10,9 @@ export declare class SessionStore {
9
10
  updateSession(championId: string, partial: Partial<Omit<StoredSession, 'championId'>>): Promise<StoredSession | undefined>;
10
11
  deleteSession(championId: string): Promise<boolean>;
11
12
  pruneSessions(championIds: string[]): Promise<number>;
13
+ private withLock;
14
+ private acquireLock;
15
+ private releaseLock;
12
16
  private readStore;
13
17
  private writeStore;
14
18
  }
@@ -9,6 +9,9 @@ const promises_1 = require("node:fs/promises");
9
9
  const node_os_1 = __importDefault(require("node:os"));
10
10
  const node_path_1 = __importDefault(require("node:path"));
11
11
  const CURRENT_VERSION = 1;
12
+ const LOCK_TIMEOUT_MS = 10_000;
13
+ const LOCK_RETRY_INTERVAL_MS = 20;
14
+ const LOCK_STALE_MS = 30_000;
12
15
  function getDefaultStorePath() {
13
16
  return node_path_1.default.join(node_os_1.default.homedir(), '.dev-sessions', 'sessions.json');
14
17
  }
@@ -41,10 +44,15 @@ function isStoredSession(value) {
41
44
  typeof candidate.createdAt === 'string' &&
42
45
  typeof candidate.lastUsed === 'string');
43
46
  }
47
+ function sleep(ms) {
48
+ return new Promise((resolve) => setTimeout(resolve, ms));
49
+ }
44
50
  class SessionStore {
45
51
  storePath;
52
+ lockPath;
46
53
  constructor(storePath = getDefaultStorePath()) {
47
54
  this.storePath = storePath;
55
+ this.lockPath = `${storePath}.lock`;
48
56
  }
49
57
  get filePath() {
50
58
  return this.storePath;
@@ -58,54 +66,107 @@ class SessionStore {
58
66
  return store.sessions.find((session) => session.championId === championId);
59
67
  }
60
68
  async upsertSession(session) {
61
- const store = await this.readStore();
62
- const index = store.sessions.findIndex((candidate) => candidate.championId === session.championId);
63
- if (index >= 0) {
64
- store.sessions[index] = session;
65
- }
66
- else {
67
- store.sessions.push(session);
68
- }
69
- await this.writeStore(store);
69
+ await this.withLock(async () => {
70
+ const store = await this.readStore();
71
+ const index = store.sessions.findIndex((candidate) => candidate.championId === session.championId);
72
+ if (index >= 0) {
73
+ store.sessions[index] = session;
74
+ }
75
+ else {
76
+ store.sessions.push(session);
77
+ }
78
+ await this.writeStore(store);
79
+ });
70
80
  }
71
81
  async updateSession(championId, partial) {
72
- const store = await this.readStore();
73
- const index = store.sessions.findIndex((candidate) => candidate.championId === championId);
74
- if (index < 0) {
75
- return undefined;
76
- }
77
- const updatedSession = {
78
- ...store.sessions[index],
79
- ...partial,
80
- championId: store.sessions[index].championId
81
- };
82
- store.sessions[index] = updatedSession;
83
- await this.writeStore(store);
84
- return updatedSession;
82
+ return this.withLock(async () => {
83
+ const store = await this.readStore();
84
+ const index = store.sessions.findIndex((candidate) => candidate.championId === championId);
85
+ if (index < 0) {
86
+ return undefined;
87
+ }
88
+ const updatedSession = {
89
+ ...store.sessions[index],
90
+ ...partial,
91
+ championId: store.sessions[index].championId
92
+ };
93
+ store.sessions[index] = updatedSession;
94
+ await this.writeStore(store);
95
+ return updatedSession;
96
+ });
85
97
  }
86
98
  async deleteSession(championId) {
87
- const store = await this.readStore();
88
- const initialLength = store.sessions.length;
89
- store.sessions = store.sessions.filter((candidate) => candidate.championId !== championId);
90
- if (store.sessions.length === initialLength) {
91
- return false;
92
- }
93
- await this.writeStore(store);
94
- return true;
99
+ return this.withLock(async () => {
100
+ const store = await this.readStore();
101
+ const initialLength = store.sessions.length;
102
+ store.sessions = store.sessions.filter((candidate) => candidate.championId !== championId);
103
+ if (store.sessions.length === initialLength) {
104
+ return false;
105
+ }
106
+ await this.writeStore(store);
107
+ return true;
108
+ });
95
109
  }
96
110
  async pruneSessions(championIds) {
97
111
  if (championIds.length === 0) {
98
112
  return 0;
99
113
  }
100
- const ids = new Set(championIds);
101
- const store = await this.readStore();
102
- const initialLength = store.sessions.length;
103
- store.sessions = store.sessions.filter((candidate) => !ids.has(candidate.championId));
104
- const removed = initialLength - store.sessions.length;
105
- if (removed > 0) {
106
- await this.writeStore(store);
114
+ return this.withLock(async () => {
115
+ const ids = new Set(championIds);
116
+ const store = await this.readStore();
117
+ const initialLength = store.sessions.length;
118
+ store.sessions = store.sessions.filter((candidate) => !ids.has(candidate.championId));
119
+ const removed = initialLength - store.sessions.length;
120
+ if (removed > 0) {
121
+ await this.writeStore(store);
122
+ }
123
+ return removed;
124
+ });
125
+ }
126
+ async withLock(fn) {
127
+ await this.acquireLock();
128
+ try {
129
+ return await fn();
130
+ }
131
+ finally {
132
+ await this.releaseLock();
133
+ }
134
+ }
135
+ async acquireLock() {
136
+ await (0, promises_1.mkdir)(node_path_1.default.dirname(this.storePath), { recursive: true });
137
+ const deadline = Date.now() + LOCK_TIMEOUT_MS;
138
+ while (true) {
139
+ try {
140
+ await (0, promises_1.mkdir)(this.lockPath);
141
+ return;
142
+ }
143
+ catch (error) {
144
+ if (error.code !== 'EEXIST') {
145
+ throw error;
146
+ }
147
+ }
148
+ // Check for stale lock (e.g. process crashed while holding it)
149
+ try {
150
+ const lockStat = await (0, promises_1.stat)(this.lockPath);
151
+ if (Date.now() - lockStat.mtimeMs > LOCK_STALE_MS) {
152
+ await (0, promises_1.rm)(this.lockPath, { recursive: true, force: true });
153
+ continue;
154
+ }
155
+ }
156
+ catch {
157
+ // Lock dir vanished between our check — retry acquire
158
+ continue;
159
+ }
160
+ if (Date.now() >= deadline) {
161
+ throw new Error(`Timed out waiting for session store lock at ${this.lockPath}`);
162
+ }
163
+ // Jittered retry to reduce contention
164
+ const jitter = Math.random() * LOCK_RETRY_INTERVAL_MS;
165
+ await sleep(LOCK_RETRY_INTERVAL_MS + jitter);
107
166
  }
108
- return removed;
167
+ }
168
+ async releaseLock() {
169
+ await (0, promises_1.rm)(this.lockPath, { recursive: true, force: true });
109
170
  }
110
171
  async readStore() {
111
172
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -20,6 +20,7 @@ export interface StoredSession {
20
20
  lastTurnStatus?: CodexTurnStatus;
21
21
  lastTurnError?: string;
22
22
  lastAssistantMessages?: string[];
23
+ claudeSystemCountAtSend?: number;
23
24
  createdAt: string;
24
25
  lastUsed: string;
25
26
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-sessions",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "CLI tool to spawn and manage coding agent sessions",
5
5
  "license": "MIT",
6
6
  "bin": {