session-collab-mcp 2.2.0 → 2.3.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.
package/README.md CHANGED
@@ -64,6 +64,7 @@ session-collab-http --host 127.0.0.1 --port 8765
64
64
  # CLI wrapper (convenience REST client)
65
65
  session-collab health
66
66
  session-collab tools
67
+ session-collab doctor
67
68
  session-collab call --name collab_session_start --args '{"project_root":"/repo","name":"demo"}'
68
69
  ```
69
70
 
@@ -101,9 +102,11 @@ The MCP tools give you a stable collaboration workflow across providers:
101
102
 
102
103
  1. Start a session with `collab_session_start`
103
104
  2. Check files with `collab_claim(action="check")`
104
- 3. Reserve files with `collab_claim(action="create")`
105
- 4. Save important context with `collab_memory_save`
106
- 5. End the session with `collab_session_end`
105
+ 3. Reserve files with `collab_claim(action="create")`; smart mode claims safe files and queues blocked files for coordination
106
+ 4. Update visible progress with `collab_session_update`
107
+ 5. Save important context with `collab_memory_save`
108
+ 6. Release claims with `collab_claim(action="release")`
109
+ 7. End the session with `collab_session_end`
107
110
 
108
111
  ### Working Memory
109
112
 
@@ -130,9 +133,16 @@ Configure behavior with `collab_config`:
130
133
 
131
134
  | Mode | Behavior |
132
135
  |------|----------|
133
- | `strict` | Always ask user, never bypass |
134
- | `smart` (default) | Auto-proceed with safe content, ask for blocked |
135
- | `bypass` | Proceed despite conflicts (warn only) |
136
+ | `strict` | Block conflicting claims and require user coordination before editing |
137
+ | `smart` (default) | Claim non-conflicting files or symbols, queue blocked files, and expose coordination requests |
138
+ | `bypass` | Allow overlapping claims only with `allow_conflicts=true`, and return a warning |
139
+
140
+ In `smart` mode, prefer symbol-level claims when working inside a file that another session has claimed. Same-file work can proceed when claimed symbols do not overlap. If overlap cannot be proven safe, `collab_claim(action="create")` returns `waiting_for_coordination` or `partial_claim_created` with:
141
+
142
+ - `claimed_files`: files reserved by the caller
143
+ - `safe_files`: files that can be edited now
144
+ - `blocked_files`: files that need coordination first
145
+ - `coordination_requests`: queue entries visible through `collab_status` and `collab_session_list`
136
146
 
137
147
  ### Auto-Release Options
138
148
 
@@ -145,13 +155,14 @@ Configure behavior with `collab_config`:
145
155
 
146
156
  ## MCP Tools Reference
147
157
 
148
- ### Session Management (5 tools)
158
+ ### Session Management
149
159
 
150
160
  | Tool | Purpose |
151
161
  |------|---------|
152
162
  | `collab_session_start` | Register a new session |
153
163
  | `collab_session_end` | End session and release all claims |
154
- | `collab_session_list` | List active sessions |
164
+ | `collab_session_list` | List active sessions with current task and active claim summaries |
165
+ | `collab_session_update` | Update heartbeat, current task, todos, and progress |
155
166
  | `collab_config` | Configure session behavior |
156
167
  | `collab_status` | Get session status summary |
157
168
 
@@ -159,7 +170,7 @@ Configure behavior with `collab_config`:
159
170
 
160
171
  | Tool | Actions |
161
172
  |------|---------|
162
- | `collab_claim` | `create`, `check`, `release`, `list` (check: `exclude_self` defaults to true) |
173
+ | `collab_claim` | `create`, `check`, `release`, `list` (check: `exclude_self` defaults to true; create follows `collab_config(mode)`) |
163
174
 
164
175
  ### Working Memory (3 tools)
165
176
 
@@ -187,6 +198,7 @@ Configure behavior with `collab_config`:
187
198
 
188
199
  - `POST /v1/sessions/start` → `collab_session_start`
189
200
  - `POST /v1/sessions/end` → `collab_session_end`
201
+ - `POST /v1/sessions/update` → `collab_session_update`
190
202
  - `GET /v1/sessions` → `collab_session_list`
191
203
  - `POST /v1/config` → `collab_config`
192
204
  - `GET /v1/status` → `collab_status`
@@ -217,11 +229,25 @@ Configure behavior with `collab_config`:
217
229
  # Session A starts working
218
230
  collab_session_start(project_root="/my/project", name="feature-auth")
219
231
  collab_claim(session_id="session-a", action="create", files=["src/auth.ts"], intent="Adding JWT support")
232
+ collab_session_update(session_id="session-a", current_task="Adding JWT support")
220
233
 
221
234
  # Session B checks before editing
222
235
  collab_claim(session_id="session-b", action="check", files=["src/auth.ts"])
223
236
  # Result: "CONFLICT: src/auth.ts is claimed by 'feature-auth'"
224
237
 
238
+ # create in smart mode queues blocked files instead of editing over the owner
239
+ collab_claim(session_id="session-b", action="create", files=["src/auth.ts"], intent="Coordinated auth work")
240
+ # Result: status="waiting_for_coordination", blocked_files=["src/auth.ts"]
241
+
242
+ # If only a different symbol is needed, claim that symbol explicitly
243
+ collab_claim(
244
+ session_id="session-b",
245
+ action="create",
246
+ symbols=[{ file="src/auth.ts", symbols=["refreshToken"], symbol_type="function" }],
247
+ intent="Update refresh token"
248
+ )
249
+ # Result: status="created" if no claimed symbol overlaps
250
+
225
251
  # If you want to include your own claims in the check
226
252
  collab_claim(session_id="session-a", action="check", files=["src/auth.ts"], exclude_self=false)
227
253
 
@@ -334,6 +360,8 @@ npm run start:dev # Start in development mode
334
360
  npm run typecheck # Run TypeScript type checking
335
361
  npm run lint # Run ESLint
336
362
  npm run test # Run tests with Vitest
363
+ npm run test:http # Run HTTP integration tests
364
+ npm run test:release # Run release gate: typecheck, lint, tests, HTTP tests, npm pack dry-run
337
365
  ```
338
366
 
339
367
  ### HTTP Integration Tests
@@ -341,7 +369,15 @@ npm run test # Run tests with Vitest
341
369
  HTTP integration tests require a local listen port. Enable them with:
342
370
 
343
371
  ```bash
344
- SESSION_COLLAB_HTTP_TESTS=true npx vitest run src/http/__tests__/server-integration.test.ts
372
+ npm run test:http
373
+ ```
374
+
375
+ ### HTTP CLI Doctor
376
+
377
+ When using the HTTP server, validate the running server with:
378
+
379
+ ```bash
380
+ session-collab doctor --base-url http://127.0.0.1:8765
345
381
  ```
346
382
 
347
383
  ### Historical Notes
@@ -372,6 +408,15 @@ session-collab-mcp/
372
408
 
373
409
  ## Changelog
374
410
 
411
+ ### v2.3.1
412
+
413
+ - Add `collab_session_update` for heartbeat, current task, todo, and progress reporting
414
+ - Enrich `collab_session_list` with current task and active claim summaries
415
+ - Make `collab_claim(action="create")` respect `collab_config(mode)` with smart coordination by default
416
+ - Add `session-collab doctor` for HTTP server health and tool-surface checks
417
+ - Add `npm run test:http` and `npm run test:release` release gates
418
+ - Update dev test tooling to clear npm audit findings
419
+
375
420
  ### v2.1.0
376
421
 
377
422
  - Add HTTP server + CLI wrapper for universal AI CLI usage