@charmland/crush 0.73.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.
- package/README.md +34 -0
- 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.
|
|
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.
|
|
31
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
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": "
|
|
38
|
+
"digest": "f1b4f43df44c93b73d28e223e74f747b6c878cbb175a5bfc3ec011df599cc982"
|
|
39
39
|
},
|
|
40
|
-
"wrappedIn": "crush_0.
|
|
40
|
+
"wrappedIn": "crush_0.74.0_Darwin_arm64"
|
|
41
41
|
},
|
|
42
42
|
"darwin-x64": {
|
|
43
|
-
"name": "crush_0.
|
|
44
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
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": "
|
|
51
|
+
"digest": "27dce3e596dde89780335d948f26f41c5810ab9334602cbda5d35179ea5c5249"
|
|
52
52
|
},
|
|
53
|
-
"wrappedIn": "crush_0.
|
|
53
|
+
"wrappedIn": "crush_0.74.0_Darwin_x86_64"
|
|
54
54
|
},
|
|
55
55
|
"linux-arm64": {
|
|
56
|
-
"name": "crush_0.
|
|
57
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
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": "
|
|
64
|
+
"digest": "cfb1ed6b796bbc022e1cb3cd0bbb5f62c3ea9491766b18324c1e2042751f26d1"
|
|
65
65
|
},
|
|
66
|
-
"wrappedIn": "crush_0.
|
|
66
|
+
"wrappedIn": "crush_0.74.0_Linux_arm64"
|
|
67
67
|
},
|
|
68
68
|
"linux-x64": {
|
|
69
|
-
"name": "crush_0.
|
|
70
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
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": "
|
|
77
|
+
"digest": "8a57c5cf9eecdd880c20788887f23279893eb5742a78945b096b0437e67ae172"
|
|
78
78
|
},
|
|
79
|
-
"wrappedIn": "crush_0.
|
|
79
|
+
"wrappedIn": "crush_0.74.0_Linux_x86_64"
|
|
80
80
|
},
|
|
81
81
|
"win32-arm64": {
|
|
82
|
-
"name": "crush_0.
|
|
83
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
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": "
|
|
90
|
+
"digest": "5cd7d329664e816db27d9cb805b28def069702a45ab88ce5a38ce35666201b9f"
|
|
91
91
|
},
|
|
92
|
-
"wrappedIn": "crush_0.
|
|
92
|
+
"wrappedIn": "crush_0.74.0_Windows_arm64"
|
|
93
93
|
},
|
|
94
94
|
"win32-x64": {
|
|
95
|
-
"name": "crush_0.
|
|
96
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
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": "
|
|
103
|
+
"digest": "f620c37cec01c7965bb0fbcd58d1677cf13e34ee151af25bae270fb928c32c4e"
|
|
104
104
|
},
|
|
105
|
-
"wrappedIn": "crush_0.
|
|
105
|
+
"wrappedIn": "crush_0.74.0_Windows_x86_64"
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
}
|