@charmland/crush 0.72.0 → 0.74.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.
Files changed (2) hide show
  1. package/README.md +34 -0
  2. package/package.json +25 -25
package/README.md CHANGED
@@ -368,6 +368,40 @@ which do expand.
368
368
  Crush has preliminary support for hooks. For details, see
369
369
  [the hook guide](./docs/hooks/).
370
370
 
371
+ ### Sharing a workspace across clients
372
+
373
+ When Crush is run against a shared backend (for example two TUIs talking to
374
+ the same `crush serve`), clients are grouped into **workspaces** keyed by
375
+ their resolved `--cwd`. Two clients with the same `--cwd` join the same
376
+ underlying workspace, so they share the session list, message history,
377
+ permission queue, LSP, and MCP state.
378
+
379
+ Joining is implicit: pointing a second client at the same working directory
380
+ attaches it to the existing workspace. Each new invocation, however, starts
381
+ in its own fresh session by default. To pick up the conversation another
382
+ client already has open, use the session manager (the session picker) and
383
+ select it. Sessions surface two signals there:
384
+
385
+ - `IsBusy` is set while an agent turn is in flight for that session.
386
+ - `AttachedClients` reports how many clients are currently viewing it.
387
+
388
+ A non-zero `AttachedClients` (often combined with `IsBusy`) is the cue that a
389
+ session is "in progress" on another client and joining it will mirror that
390
+ view live.
391
+
392
+ The first client to create a workspace fixes its process-wide flags. In
393
+ particular, `--yolo` and `--debug` follow a **first-wins** rule: later
394
+ clients that arrive at the same `--cwd` with different values for those
395
+ flags do not change the running workspace. A debug log line is emitted
396
+ recording the mismatch, and the workspace keeps the flags it was created
397
+ with.
398
+
399
+ A workspace lives as long as at least one client has an SSE event stream
400
+ open against it. When the last stream disconnects, the workspace is torn
401
+ down. There is a short grace window right after `POST /v1/workspaces` so a
402
+ client that has created the workspace but not yet opened its event stream
403
+ does not get reaped before it can attach.
404
+
371
405
  ### Ignoring Files
372
406
 
373
407
  Crush respects `.gitignore` files by default, but you can also create a
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@charmland/crush",
3
3
  "type": "module",
4
- "version": "0.72.0",
4
+ "version": "0.74.0",
5
5
  "description": "A powerful terminal-based AI assistant for developers, providing intelligent coding assistance directly in your terminal.",
6
6
  "scripts": {
7
7
  "postinstall": "node install.js",
@@ -27,82 +27,82 @@
27
27
  },
28
28
  "archives": {
29
29
  "darwin-arm64": {
30
- "name": "crush_0.72.0_Darwin_arm64.tar.gz",
31
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.72.0/crush_0.72.0_Darwin_arm64.tar.gz",
30
+ "name": "crush_0.74.0_Darwin_arm64.tar.gz",
31
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.74.0/crush_0.74.0_Darwin_arm64.tar.gz",
32
32
  "bins": [
33
33
  "crush"
34
34
  ],
35
35
  "format": "tar.gz",
36
36
  "checksum": {
37
37
  "algorithm": "sha256",
38
- "digest": "57fa2b67a90e8aedd9fa75f5a67ea7ed417b6db23e8413634c94f821114f5cdb"
38
+ "digest": "f1b4f43df44c93b73d28e223e74f747b6c878cbb175a5bfc3ec011df599cc982"
39
39
  },
40
- "wrappedIn": "crush_0.72.0_Darwin_arm64"
40
+ "wrappedIn": "crush_0.74.0_Darwin_arm64"
41
41
  },
42
42
  "darwin-x64": {
43
- "name": "crush_0.72.0_Darwin_x86_64.tar.gz",
44
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.72.0/crush_0.72.0_Darwin_x86_64.tar.gz",
43
+ "name": "crush_0.74.0_Darwin_x86_64.tar.gz",
44
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.74.0/crush_0.74.0_Darwin_x86_64.tar.gz",
45
45
  "bins": [
46
46
  "crush"
47
47
  ],
48
48
  "format": "tar.gz",
49
49
  "checksum": {
50
50
  "algorithm": "sha256",
51
- "digest": "1631c14b6c2e1d028aaf7c0bb96cd993f5c924e8095a0c9a8340adf53515567d"
51
+ "digest": "27dce3e596dde89780335d948f26f41c5810ab9334602cbda5d35179ea5c5249"
52
52
  },
53
- "wrappedIn": "crush_0.72.0_Darwin_x86_64"
53
+ "wrappedIn": "crush_0.74.0_Darwin_x86_64"
54
54
  },
55
55
  "linux-arm64": {
56
- "name": "crush_0.72.0_Linux_arm64.tar.gz",
57
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.72.0/crush_0.72.0_Linux_arm64.tar.gz",
56
+ "name": "crush_0.74.0_Linux_arm64.tar.gz",
57
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.74.0/crush_0.74.0_Linux_arm64.tar.gz",
58
58
  "bins": [
59
59
  "crush"
60
60
  ],
61
61
  "format": "tar.gz",
62
62
  "checksum": {
63
63
  "algorithm": "sha256",
64
- "digest": "3e2c8f4a9013e5044f873f2d7221a068f1c0acd47f74d8a81e5cc75d113e7cf0"
64
+ "digest": "cfb1ed6b796bbc022e1cb3cd0bbb5f62c3ea9491766b18324c1e2042751f26d1"
65
65
  },
66
- "wrappedIn": "crush_0.72.0_Linux_arm64"
66
+ "wrappedIn": "crush_0.74.0_Linux_arm64"
67
67
  },
68
68
  "linux-x64": {
69
- "name": "crush_0.72.0_Linux_x86_64.tar.gz",
70
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.72.0/crush_0.72.0_Linux_x86_64.tar.gz",
69
+ "name": "crush_0.74.0_Linux_x86_64.tar.gz",
70
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.74.0/crush_0.74.0_Linux_x86_64.tar.gz",
71
71
  "bins": [
72
72
  "crush"
73
73
  ],
74
74
  "format": "tar.gz",
75
75
  "checksum": {
76
76
  "algorithm": "sha256",
77
- "digest": "1dc85b15df5a17af81b57efaeaabc6925a14780421454d8bf57cb1724c075b02"
77
+ "digest": "8a57c5cf9eecdd880c20788887f23279893eb5742a78945b096b0437e67ae172"
78
78
  },
79
- "wrappedIn": "crush_0.72.0_Linux_x86_64"
79
+ "wrappedIn": "crush_0.74.0_Linux_x86_64"
80
80
  },
81
81
  "win32-arm64": {
82
- "name": "crush_0.72.0_Windows_arm64.zip",
83
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.72.0/crush_0.72.0_Windows_arm64.zip",
82
+ "name": "crush_0.74.0_Windows_arm64.zip",
83
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.74.0/crush_0.74.0_Windows_arm64.zip",
84
84
  "bins": [
85
85
  "crush.exe"
86
86
  ],
87
87
  "format": "zip",
88
88
  "checksum": {
89
89
  "algorithm": "sha256",
90
- "digest": "6bb237e4ad497a4a4bfb6137920acfc9f6915c2c7a5c8195035b7f9ed00e6c7a"
90
+ "digest": "5cd7d329664e816db27d9cb805b28def069702a45ab88ce5a38ce35666201b9f"
91
91
  },
92
- "wrappedIn": "crush_0.72.0_Windows_arm64"
92
+ "wrappedIn": "crush_0.74.0_Windows_arm64"
93
93
  },
94
94
  "win32-x64": {
95
- "name": "crush_0.72.0_Windows_x86_64.zip",
96
- "url": "https://github.com/charmbracelet/crush/releases/download/v0.72.0/crush_0.72.0_Windows_x86_64.zip",
95
+ "name": "crush_0.74.0_Windows_x86_64.zip",
96
+ "url": "https://github.com/charmbracelet/crush/releases/download/v0.74.0/crush_0.74.0_Windows_x86_64.zip",
97
97
  "bins": [
98
98
  "crush.exe"
99
99
  ],
100
100
  "format": "zip",
101
101
  "checksum": {
102
102
  "algorithm": "sha256",
103
- "digest": "b79b2e18b2c19f6b91cd03c429622c5d179339e26d651da1d9849174d7868390"
103
+ "digest": "f620c37cec01c7965bb0fbcd58d1677cf13e34ee151af25bae270fb928c32c4e"
104
104
  },
105
- "wrappedIn": "crush_0.72.0_Windows_x86_64"
105
+ "wrappedIn": "crush_0.74.0_Windows_x86_64"
106
106
  }
107
107
  }
108
108
  }