arashi 1.21.0 → 1.23.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 +20 -9
- package/package.json +2 -2
- package/schema/config.schema.json +6 -10
package/README.md
CHANGED
|
@@ -117,12 +117,12 @@ Arashi currently provides these commands:
|
|
|
117
117
|
- `arashi update [--check] [--dry-run] [--yes]`
|
|
118
118
|
- `arashi add <git-url>`
|
|
119
119
|
- `arashi clone [--all]`
|
|
120
|
-
- `arashi create <branch> [--sesh|--herdr]`
|
|
120
|
+
- `arashi create <branch> [--tmux|--sesh|--herdr]`
|
|
121
121
|
- `arashi list`
|
|
122
122
|
- `arashi status`
|
|
123
123
|
- `arashi remove <branch|path>`
|
|
124
124
|
- `arashi prune [--dry-run]` - clean stale Git worktree metadata
|
|
125
|
-
- `arashi switch [filter] [--repos|--all] [--cd|--no-cd] [--sesh|--herdr] [--no-default-launch]`
|
|
125
|
+
- `arashi switch [filter] [--repos|--all] [--cd|--no-cd] [--tmux|--sesh|--herdr] [--no-default-launch]`
|
|
126
126
|
- `arashi shell init <bash|zsh|fish>`
|
|
127
127
|
- `arashi shell install`
|
|
128
128
|
- `arashi pull`
|
|
@@ -139,6 +139,7 @@ arashi add git@github.com:your-org/frontend.git
|
|
|
139
139
|
arashi add git@github.com:your-org/backend.git
|
|
140
140
|
arashi create feature-auth-refresh
|
|
141
141
|
arashi create feature-auth-refresh --launch
|
|
142
|
+
arashi create feature-auth-refresh --tmux
|
|
142
143
|
arashi create feature-auth-refresh --herdr
|
|
143
144
|
arashi create feature-auth-refresh --no-launch
|
|
144
145
|
arashi shell install
|
|
@@ -148,10 +149,13 @@ arashi switch --repos feature-auth-refresh # child repo worktrees in current wo
|
|
|
148
149
|
arashi switch --all feature-auth-refresh # all repos
|
|
149
150
|
arashi switch --repos docs # repo-name matching in child repos
|
|
150
151
|
arashi switch --cd feature-auth-refresh # parent-shell cd when shell integration is active
|
|
152
|
+
arashi switch --tmux feature-auth-refresh # force a new plain tmux window
|
|
151
153
|
arashi switch --herdr feature-auth-refresh # open or focus a persistent Herdr workspace
|
|
152
154
|
arashi switch --no-default-launch # bypass configured sesh/Herdr mode once
|
|
153
155
|
```
|
|
154
156
|
|
|
157
|
+
Explicit `--tmux` is a per-invocation launcher override for `create` and `switch`; it is not a persisted configuration mode. It requires an active tmux context whose `TMUX` value is non-empty after trimming, uses the selected worktree path as one argv-safe `tmux new-window -c` argument, and does not fall back to another launcher when the prerequisite or launch fails. On `create`, it implies both launch and switch, while validation failures occur before worktree mutation.
|
|
158
|
+
|
|
155
159
|
### Managed Git ignore rules
|
|
156
160
|
|
|
157
161
|
Configured workspaces keep `reposDir` and `worktreesDir` effectively ignored. Arashi asks Git
|
|
@@ -268,7 +272,11 @@ bindkey -s '^s' 'sesh connect $(arashi list | fzf)\n'
|
|
|
268
272
|
|
|
269
273
|
You can also use `arashi switch --sesh` directly inside tmux to open the selected worktree in a new tmux window.
|
|
270
274
|
|
|
271
|
-
`arashi switch`
|
|
275
|
+
`arashi switch` checks managed contexts in this order: tmux → Herdr → cmux → integrated IDE → Kitty. Managed Kitty selection requires both `KITTY_PID` and `KITTY_WINDOW_ID`; `TERM=xterm-kitty` alone remains only generic terminal evidence.
|
|
276
|
+
|
|
277
|
+
Managed Kitty requires Kitty 0.43 or newer plus working `kitten @` remote control. Arashi reuses only its exact worktree marker and focuses that tab before launching a new session-backed tab. Once managed Kitty is selected, missing or unsupported tooling, denied remote control, duplicate markers, and validation failures are reported directly instead of falling back to another launcher.
|
|
278
|
+
|
|
279
|
+
`arashi create --launch` and `defaults.create.launch: "auto"` use the same managed Kitty behavior. If that post-create launch fails, Arashi exits nonzero but preserves the successfully created worktree and reports the launch as partial success. Fix the launcher problem and use `arashi switch`; do not retry creation for the same branch.
|
|
272
280
|
|
|
273
281
|
### Fast remove selection
|
|
274
282
|
|
|
@@ -300,13 +308,12 @@ Example config header:
|
|
|
300
308
|
"defaults": {
|
|
301
309
|
"create": {
|
|
302
310
|
"switch": true,
|
|
303
|
-
"launch":
|
|
311
|
+
"launch": "none"
|
|
304
312
|
},
|
|
305
313
|
"editors": {
|
|
306
314
|
"vscode": {
|
|
307
315
|
"create": {
|
|
308
|
-
"launch":
|
|
309
|
-
"launchMode": "sesh"
|
|
316
|
+
"launch": "sesh"
|
|
310
317
|
}
|
|
311
318
|
}
|
|
312
319
|
},
|
|
@@ -318,15 +325,19 @@ Example config header:
|
|
|
318
325
|
}
|
|
319
326
|
```
|
|
320
327
|
|
|
321
|
-
`defaults.switch.mode` accepts `auto` | `cd` | `launch` | `sesh` | `herdr`. Contextual `auto` checks strict managed contexts in the order tmux → Herdr → cmux → integrated IDE, then uses parent-shell `cd` when shell integration is active, and otherwise follows terminal/platform launch fallback. An absent mode preserves the built-in automatic `launch` behavior rather than newly preferring `cd`.
|
|
328
|
+
`defaults.switch.mode` accepts `auto` | `cd` | `launch` | `sesh` | `herdr`. Contextual `auto` checks strict managed contexts in the order tmux → Herdr → cmux → integrated IDE → managed Kitty, then uses parent-shell `cd` when shell integration is active, and otherwise follows terminal/platform launch fallback. An absent mode preserves the built-in automatic `launch` behavior rather than newly preferring `cd`.
|
|
322
329
|
|
|
323
330
|
Explicit launcher flags take precedence over `--cd` / `--no-cd`, which take precedence over the configured mode and automatic context detection. `--no-default-launch` bypasses only configured `sesh` or `herdr`. `--herdr` remains available on both `create` and `switch`; Herdr launch uses `herdr worktree open` with the Git-resolved non-bare main checkout and selected worktree.
|
|
324
331
|
|
|
325
332
|
Legacy switch-only `launchMode` and `launch_mode` fields remain readable for a bounded compatibility window. Arashi warns with the exact replacement `defaults.switch.mode` on stderr; migrate promptly. Ambiguous `cd` plus an explicit legacy launcher and conflicting legacy aliases are rejected.
|
|
326
333
|
|
|
327
|
-
Use `defaults.create` for terminal `arashi create` behavior. Use `defaults.editors.<host>.create` for editor-specific overrides such as VS Code extension create flows. Supported hosts are `vscode`, `cursor`, and `kiro`.
|
|
334
|
+
Use `defaults.create` for terminal `arashi create` behavior. Use `defaults.editors.<host>.create` for editor-specific overrides such as VS Code extension create flows. Supported hosts are `vscode`, `cursor`, and `kiro`. Each scope has one canonical `launch` choice: `none` | `auto` | `sesh` | `herdr`. `switch` stays independent, while any enabled launch implies switch handling for the newly created primary worktree.
|
|
335
|
+
|
|
336
|
+
Create precedence is: reject `--sesh` plus `--herdr`; then explicit `--sesh` / `--herdr`; `--launch`; `--no-launch`; the matching configured scope; and built-in `none`. An editor-hosted invocation does not fall back to terminal or another editor scope.
|
|
337
|
+
|
|
338
|
+
Legacy create booleans plus `launchMode` / `launch_mode` remain readable for a bounded compatibility window. Accepted combinations warn on stderr with the exact canonical replacement and do not rewrite the file. Disabled launch plus a launcher, conflicting aliases, and conflicting canonical/legacy choices are rejected before workspace mutation.
|
|
328
339
|
|
|
329
|
-
Defaults precedence for
|
|
340
|
+
Defaults precedence for unrelated switch behavior remains unchanged.
|
|
330
341
|
|
|
331
342
|
## skills.sh Integration
|
|
332
343
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arashi",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.23.0",
|
|
4
4
|
"description": "Git worktree manager for meta-repositories - The eye of the storm for your development workflow",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"commander": "12.1.0",
|
|
82
82
|
"conventional-changelog-conventionalcommits": "8.0.0",
|
|
83
83
|
"husky": "9.1.7",
|
|
84
|
-
"js-yaml": "4.
|
|
84
|
+
"js-yaml": "4.3.0",
|
|
85
85
|
"lint-staged": "16.2.7",
|
|
86
86
|
"ora": "8.2.0",
|
|
87
87
|
"oxfmt": "0.28.0",
|
|
@@ -82,12 +82,8 @@
|
|
|
82
82
|
"additionalProperties": false,
|
|
83
83
|
"properties": {
|
|
84
84
|
"launch": {
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
},
|
|
88
|
-
"launchMode": {
|
|
89
|
-
"$ref": "#/definitions/LaunchMode",
|
|
90
|
-
"description": "Preferred launch mode for create-triggered launch"
|
|
85
|
+
"$ref": "#/definitions/CreateLaunchMode",
|
|
86
|
+
"description": "Post-create launch choice; omitted preserves built-in no-launch behavior"
|
|
91
87
|
},
|
|
92
88
|
"switch": {
|
|
93
89
|
"description": "Default to switching to the new worktree after create",
|
|
@@ -96,6 +92,10 @@
|
|
|
96
92
|
},
|
|
97
93
|
"type": "object"
|
|
98
94
|
},
|
|
95
|
+
"CreateLaunchMode": {
|
|
96
|
+
"enum": ["none", "auto", "sesh", "herdr"],
|
|
97
|
+
"type": "string"
|
|
98
|
+
},
|
|
99
99
|
"EditorCommandDefaults": {
|
|
100
100
|
"additionalProperties": false,
|
|
101
101
|
"properties": {
|
|
@@ -121,10 +121,6 @@
|
|
|
121
121
|
},
|
|
122
122
|
"type": "object"
|
|
123
123
|
},
|
|
124
|
-
"LaunchMode": {
|
|
125
|
-
"enum": ["auto", "sesh", "herdr"],
|
|
126
|
-
"type": "string"
|
|
127
|
-
},
|
|
128
124
|
"RepoConfig": {
|
|
129
125
|
"additionalProperties": false,
|
|
130
126
|
"description": "Configuration for a single repository",
|