arashi 1.20.1 → 1.22.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 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>`
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] [--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,8 @@ 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
143
+ arashi create feature-auth-refresh --herdr
142
144
  arashi create feature-auth-refresh --no-launch
143
145
  arashi shell install
144
146
  arashi status
@@ -147,9 +149,13 @@ arashi switch --repos feature-auth-refresh # child repo worktrees in current wo
147
149
  arashi switch --all feature-auth-refresh # all repos
148
150
  arashi switch --repos docs # repo-name matching in child repos
149
151
  arashi switch --cd feature-auth-refresh # parent-shell cd when shell integration is active
150
- arashi switch --no-default-launch # bypass configured launch mode defaults once
152
+ arashi switch --tmux feature-auth-refresh # force a new plain tmux window
153
+ arashi switch --herdr feature-auth-refresh # open or focus a persistent Herdr workspace
154
+ arashi switch --no-default-launch # bypass configured sesh/Herdr mode once
151
155
  ```
152
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
+
153
159
  ### Managed Git ignore rules
154
160
 
155
161
  Configured workspaces keep `reposDir` and `worktreesDir` effectively ignored. Arashi asks Git
@@ -176,7 +182,7 @@ Use the docs site workflow guides when you want setup guidance by outcome instea
176
182
  For contributors working on Arashi itself, the project planning workflow in the `arashi-arashi` meta-repo now uses OpenSpec. Older SpecKit-oriented references in legacy planning artifacts are historical context only.
177
183
 
178
184
  - Hooks and configuration defaults: [arashi.haphazard.dev/workflows/hooks-and-config](https://arashi.haphazard.dev/workflows/hooks-and-config/)
179
- - Integrations for VSCode, tmux, and `tmux` plus `sesh`: [arashi.haphazard.dev/workflows/integrations](https://arashi.haphazard.dev/workflows/integrations/)
185
+ - Integrations for Herdr, VSCode, tmux, and `tmux` plus `sesh`: [arashi.haphazard.dev/workflows](https://arashi.haphazard.dev/workflows/)
180
186
  - Agent-assisted and spec-driven change flow: [arashi.haphazard.dev/workflows/agents-and-specs](https://arashi.haphazard.dev/workflows/agents-and-specs/)
181
187
 
182
188
  ## Shell Integration
@@ -197,7 +203,7 @@ arashi shell init zsh
197
203
  arashi shell init fish
198
204
  ```
199
205
 
200
- Once installed, you can use `arashi switch --cd <filter>` for one-off parent-shell switching or set `.arashi/config.json` `defaults.switch.mode` to `"cd"` or `"auto"`.
206
+ Once installed, you can use `arashi switch --cd <filter>` for one-off parent-shell switching or set `.arashi/config.json` `defaults.switch.mode` to `"cd"` or contextual `"auto"`. The canonical modes are `auto` | `cd` | `launch` | `sesh` | `herdr`.
201
207
 
202
208
  If shell integration is inactive, `arashi switch --cd` warns and skips launch fallback for that invocation.
203
209
 
@@ -298,30 +304,36 @@ Example config header:
298
304
  "defaults": {
299
305
  "create": {
300
306
  "switch": true,
301
- "launch": false
307
+ "launch": "none"
302
308
  },
303
309
  "editors": {
304
310
  "vscode": {
305
311
  "create": {
306
- "launch": true,
307
- "launchMode": "sesh"
312
+ "launch": "sesh"
308
313
  }
309
314
  }
310
315
  },
311
316
  "switch": {
312
- "mode": "auto",
313
- "launchMode": "sesh"
317
+ "mode": "sesh"
314
318
  }
315
319
  },
316
320
  "repos": {}
317
321
  }
318
322
  ```
319
323
 
320
- `defaults.switch.mode` accepts `"launch"`, `"cd"`, or `"auto"`. `"auto"` prefers parent-shell switching only when shell integration is active.
324
+ `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`.
325
+
326
+ 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.
327
+
328
+ 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.
329
+
330
+ 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.
331
+
332
+ 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.
321
333
 
322
- 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
+ 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.
323
335
 
324
- Defaults precedence for create/switch behavior: explicit CLI flag > opt-out flag > config default > built-in default. For editor-hosted `create`, Arashi uses the matching `defaults.editors.<host>.create` override when present and otherwise skips post-create defaults instead of falling back to terminal defaults.
336
+ Defaults precedence for unrelated switch behavior remains unchanged.
325
337
 
326
338
  ## skills.sh Integration
327
339
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arashi",
3
- "version": "1.20.1",
3
+ "version": "1.22.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.2.0",
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
- "description": "Default to launching a terminal/editor context after create",
86
- "type": "boolean"
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"],
126
- "type": "string"
127
- },
128
124
  "RepoConfig": {
129
125
  "additionalProperties": false,
130
126
  "description": "Configuration for a single repository",
@@ -151,19 +147,15 @@
151
147
  "SwitchCommandDefaults": {
152
148
  "additionalProperties": false,
153
149
  "properties": {
154
- "launchMode": {
155
- "$ref": "#/definitions/LaunchMode",
156
- "description": "Preferred launch mode when running switch"
157
- },
158
150
  "mode": {
159
151
  "$ref": "#/definitions/SwitchMode",
160
- "description": "Preferred switch behavior when running switch"
152
+ "description": "Preferred switch behavior and launcher when running switch"
161
153
  }
162
154
  },
163
155
  "type": "object"
164
156
  },
165
157
  "SwitchMode": {
166
- "enum": ["launch", "cd", "auto"],
158
+ "enum": ["auto", "cd", "launch", "sesh", "herdr"],
167
159
  "type": "string"
168
160
  }
169
161
  }