@akshar5/cohall 0.6.1 → 0.7.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/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.7.0](https://github.com/AksharP5/cohall/compare/v0.6.2...v0.7.0) (2026-09-26)
4
+
5
+
6
+ ### Features
7
+
8
+ * **delegation:** exchange bounded task files ([#86](https://github.com/AksharP5/cohall/issues/86)) ([8a2f808](https://github.com/AksharP5/cohall/commit/8a2f80841d52a189736a17b991277eaf0c267f23))
9
+ * **tasks:** surface completed work in a client inbox ([#84](https://github.com/AksharP5/cohall/issues/84)) ([a7a367f](https://github.com/AksharP5/cohall/commit/a7a367ff1ffcf9aa77d971d8f83d419154bbb656))
10
+
11
+ ## [0.6.2](https://github.com/AksharP5/cohall/compare/v0.6.1...v0.6.2) (2026-09-24)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * **bot:** retain cancellation limits after uncertain dispatch ([#81](https://github.com/AksharP5/cohall/issues/81)) ([e324530](https://github.com/AksharP5/cohall/commit/e324530ee578bae7fd5a244a70daffa4304d8eb7))
17
+ * **cli:** reject invalid timeouts before sending work ([#70](https://github.com/AksharP5/cohall/issues/70)) ([bac67e9](https://github.com/AksharP5/cohall/commit/bac67e9a2dc8c9c460f2b5df7b882d098177c5ae))
18
+ * **config:** reject files as workspace roots ([#75](https://github.com/AksharP5/cohall/issues/75)) ([7b86305](https://github.com/AksharP5/cohall/commit/7b86305f36f68d264441c0d09fabbcbc23f457ae))
19
+ * **delegation:** keep child tasks out of blocked parent slots ([#80](https://github.com/AksharP5/cohall/issues/80)) ([5b1e891](https://github.com/AksharP5/cohall/commit/5b1e891244c913d752b98015a28f30d6dd9b237a))
20
+ * **deps:** update packages with published advisories ([#77](https://github.com/AksharP5/cohall/issues/77)) ([10801c9](https://github.com/AksharP5/cohall/commit/10801c9bc620b61da73b33480628ece4e0d1b583))
21
+ * **pairing:** track the source of worker requests ([#79](https://github.com/AksharP5/cohall/issues/79)) ([5f383c6](https://github.com/AksharP5/cohall/commit/5f383c6ec8c5068417fcb7bdd915aed4976e71dc))
22
+ * **provider:** finish cancellation before releasing the worker ([#74](https://github.com/AksharP5/cohall/issues/74)) ([a4ff068](https://github.com/AksharP5/cohall/commit/a4ff0684be9d1fbbc543d141537f2d0d5232559d))
23
+ * **relay:** isolate failed device connections ([#72](https://github.com/AksharP5/cohall/issues/72)) ([035868d](https://github.com/AksharP5/cohall/commit/035868d72fcf5894ff8dcf71407951522bf66d1c))
24
+ * **service:** retain the configured file and Node runtime ([#73](https://github.com/AksharP5/cohall/issues/73)) ([9811d1b](https://github.com/AksharP5/cohall/commit/9811d1b83bc9e8249f7f514c200967e110f7befc))
25
+ * **tasks:** preserve continuity after reconnects ([#76](https://github.com/AksharP5/cohall/issues/76)) ([3b22717](https://github.com/AksharP5/cohall/commit/3b2271726316d6b6364fda3a8adbecaf69149342))
26
+ * **windows:** launch providers, upgrades, and background workers reliably ([#78](https://github.com/AksharP5/cohall/issues/78)) ([6ccc4f8](https://github.com/AksharP5/cohall/commit/6ccc4f89550dcb22449d3035daa96af716c2558e))
27
+
3
28
  ## [0.6.1](https://github.com/AksharP5/cohall/compare/v0.6.0...v0.6.1) (2026-09-23)
4
29
 
5
30
 
package/README.md CHANGED
@@ -122,6 +122,13 @@ unset pairing_token
122
122
  `cohall join` remains available for scripts that only want to exchange a
123
123
  pairing token and write configuration.
124
124
 
125
+ Full-worker pairings associate both credentials with the same device. Once the
126
+ worker registers, its client requests record the source device and automatic
127
+ routing prefers an equally suitable peer. Older pairings keep working; pair the
128
+ worker again to enable source attribution and that routing preference. Forgetting
129
+ a device revokes both associated credentials. Client-only pairings have no worker
130
+ identity.
131
+
125
132
  ### 3. Keep the device available
126
133
 
127
134
  ```bash
@@ -190,8 +197,59 @@ npx -y @akshar5/cohall wait <task-id> --timeout 1800
190
197
  npx -y @akshar5/cohall trace <task-id> --follow
191
198
  ```
192
199
 
200
+ Completed tasks also appear in the sending client's inbox. This covers queued
201
+ work and tasks that finish after a wait times out:
202
+
203
+ ```bash
204
+ npx -y @akshar5/cohall inbox
205
+ npx -y @akshar5/cohall status <task-id>
206
+ npx -y @akshar5/cohall inbox ack <task-id>
207
+ ```
208
+
209
+ The inbox shows short previews; `status` returns the full result. Acknowledge a
210
+ task after handling it. Synchronous `delegate` calls acknowledge their own
211
+ results automatically. The inbox shows up to 20 oldest entries and sets
212
+ `hasMore` when more are waiting; acknowledge handled entries to reveal the rest.
213
+ Each client credential has its own inbox, including
214
+ client-only pairings. The relay keeps at most 1,000 completed tasks by default,
215
+ so an old unacknowledged result can leave the inbox when history is pruned.
216
+ Tasks created before the inbox was added have no inbox entry.
217
+
218
+ Attach up to two explicit files to a coding task. Each file may be up to 256 KiB.
219
+ The target receives them as temporary files and can return up to two files by
220
+ writing them to the output directory named in its task prompt. List task files
221
+ or download a file using the task ID:
222
+
223
+ ```bash
224
+ cohall delegate --target @macbook --attach ./screenshot.png \
225
+ --prompt 'Inspect the screenshot and return a short report file.'
226
+ cohall attachments <task-id>
227
+ cohall download <task-id> report.txt --output ./report.txt
228
+ ```
229
+
230
+ The `delegate` MCP tool accepts `attachment_paths`; `list_task_attachments` and
231
+ `download_task_attachment` provide the same retrieval flow. Downloads require a
232
+ new destination path and never overwrite a local file. When an input and output
233
+ share a name, downloads select the output by default; pass `--direction input`
234
+ (or the MCP `direction` argument) to retrieve the input. File bytes remain on the
235
+ relay until the task is removed by its configured history limit. Upgrade the
236
+ relay and target worker before sending attachments; older workers do not
237
+ advertise attachment support. Named Grok Bots do not support file attachments.
238
+ If a long result and output files exceed the 1 MiB transfer limit, the task
239
+ completes with its text result and a notice that the files were omitted.
240
+
241
+ `--timeout` accepts 5 to 86400 seconds and defaults to 900. It limits how long
242
+ the command waits; the task continues after that. Invalid timeout values are
243
+ rejected before any work is sent, including with `--no-wait`.
244
+
193
245
  Reuse the returned `thread_id` for follow-ups so the target resumes its provider
194
- session.
246
+ session. Queued follow-ups pick up the preceding turn's session when they start,
247
+ including after a worker restart.
248
+
249
+ Delegated child tasks inherit their parent's thread. Cohall routes them away
250
+ from unfinished ancestors using the same worker slot, and rejects an explicit
251
+ target that would make them wait on an ancestor. A Bot can still delegate to
252
+ Codex or a different Bot on its own computer.
195
253
 
196
254
  ## Talk to your Grok Bots
197
255
 
@@ -200,13 +258,22 @@ through the local Grok Bot gateway on their computer. It uses each Bot's current
200
258
  conversation, tools, and permissions. Grok Bot remains the agent responding;
201
259
  Codex is a separate provider that the Bot can delegate to.
202
260
 
203
- On the Grok Bot computer, configure its gateway file and restart the Cohall
204
- worker:
261
+ For a new computer, follow [Grok Bot setup](docs/grok-bot.md). It covers
262
+ Tailscale access, the suggested `tag:grokbot` identity, secure pairing, gateway
263
+ configuration, and recovery on hosts without systemd. Pair the computer once;
264
+ its Cohall worker discovers every named Bot there. Tailscale policies can
265
+ select the computer by its tag; Cohall does not require one.
266
+
267
+ On an already paired Grok Bot computer, configure its actual gateway file and
268
+ restart the Cohall worker:
205
269
 
206
270
  ```bash
207
- cohall configure --grok-gateway "$HOME/sand-data/gateway.json" --providers codex,grok-bot
271
+ test -r "$HOME/agent-data/gateway.json" &&
272
+ cohall configure --grok-gateway "$HOME/agent-data/gateway.json" --providers grok-bot
208
273
  ```
209
274
 
275
+ The path is an example; check the file on that computer before using it. Add
276
+ `codex` to the provider list only when Codex is installed and signed in there.
210
277
  The path can also be supplied as `COHALL_GROK_GATEWAY`. The gateway credential
211
278
  stays on that computer; clients discover Bots through the Cohall relay. Upgrade
212
279
  the relay, workers, and clients before enabling this provider. Restart
@@ -234,9 +301,13 @@ and `delegate` tools; the Bot target selects the provider automatically.
234
301
  A Cohall thread records the exchange and lets follow-ups find the same Bot.
235
302
  It does not create an isolated Grok Bot conversation: messages sent in the
236
303
  Grok Bot app share that Bot's history. Bot tasks use the Bot's own permissions
237
- and computer context, so omit `--workspace`. Queued Bot tasks can be cancelled;
238
- active Bot turns must be stopped in Grok Bot because the gateway cannot safely
239
- cancel a specific Cohall turn.
304
+ and computer context, so omit `--workspace`. Queued Bot tasks that have never
305
+ been dispatched can be cancelled; active Bot turns must be stopped in Grok Bot because
306
+ the gateway cannot safely cancel a specific Cohall turn.
307
+ A dispatched Bot request remains non-cancellable through Cohall if a disconnect
308
+ or relay restart puts it back in the queue, even if its acceptance message was lost.
309
+ When upgrading an older relay without dispatch records, outstanding Bot requests
310
+ are conservatively treated as potentially dispatched.
240
311
 
241
312
  Cohall includes a local callback command in each Bot request. After finishing,
242
313
  the Bot hands its result back by running `cohall reply <task-id> --message-file
@@ -342,6 +413,7 @@ configuration.
342
413
  ## Documentation
343
414
 
344
415
  - [Installation, pairing, providers, and upgrades](docs/install.md)
416
+ - [Grok Bot computer setup, Tailscale, and recovery](docs/grok-bot.md)
345
417
  - [Agent skill and MCP integrations](docs/integrations.md)
346
418
  - [Linux, macOS, and Windows services](docs/services.md)
347
419
  - [Contributing](CONTRIBUTING.md)