arashi 1.21.0 → 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> [--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
@@ -300,13 +304,12 @@ Example config header:
300
304
  "defaults": {
301
305
  "create": {
302
306
  "switch": true,
303
- "launch": false
307
+ "launch": "none"
304
308
  },
305
309
  "editors": {
306
310
  "vscode": {
307
311
  "create": {
308
- "launch": true,
309
- "launchMode": "sesh"
312
+ "launch": "sesh"
310
313
  }
311
314
  }
312
315
  },
@@ -324,9 +327,13 @@ Explicit launcher flags take precedence over `--cd` / `--no-cd`, which take prec
324
327
 
325
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.
326
329
 
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`.
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.
333
+
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.
328
335
 
329
- 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.
330
337
 
331
338
  ## skills.sh Integration
332
339
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arashi",
3
- "version": "1.21.0",
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", "herdr"],
126
- "type": "string"
127
- },
128
124
  "RepoConfig": {
129
125
  "additionalProperties": false,
130
126
  "description": "Configuration for a single repository",