arashi 1.28.0 → 1.30.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
@@ -132,7 +132,7 @@ Arashi currently provides these commands:
132
132
  - `arashi update [--check] [--dry-run] [--yes]`
133
133
  - `arashi add <git-url>`
134
134
  - `arashi clone [--all]`
135
- - `arashi create <branch> [--tab] [--tmux|--sesh|--herdr]`
135
+ - `arashi create <branch> [--base <branch>] [--tab] [--tmux|--sesh|--herdr]`
136
136
  - `arashi list`
137
137
  - `arashi status`
138
138
  - `arashi remove <branch|path>`
@@ -154,6 +154,7 @@ arashi init --ignore-scope tracked # opt in to a shared .gitignore block
154
154
  arashi add git@github.com:your-org/frontend.git
155
155
  arashi add git@github.com:your-org/backend.git
156
156
  arashi create feature-auth-refresh
157
+ arashi create feature-auth-refresh --base feature/auth
157
158
  arashi create feature-auth-refresh --launch
158
159
  arashi create feature-auth-refresh --tmux
159
160
  arashi create feature-auth-refresh --herdr
@@ -174,6 +175,10 @@ arashi switch --ignore-configured-launcher # bypass configured sesh/Herdr mode
174
175
  arashi switch --launch --ignore-configured-launcher # force generic automatic launch
175
176
  ```
176
177
 
178
+ ### Add from a linked parent worktree
179
+
180
+ When `arashi add` runs from an active linked parent worktree, Arashi creates one canonical clone in the parent main checkout and leaves it on the child default branch. It then creates the active child as a linked worktree on the coordinated branch and updates only the active parent configuration. Direct-main and configured-bare adds keep their existing single-placement behavior. See the [add command guide](https://arashi.haphazard.dev/commands/add/) for branch, managed-ignore, JSON, and rollback details.
181
+
177
182
  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.
178
183
 
179
184
  `--tab` is a CLI-only launch disposition for `create` and `switch`; it is never persisted. It requests a true terminal tab or documented managed-context equivalent, implies launch (and selection for `create`), overrides automatic parent-shell `cd`, and never degrades to a window or another launcher. For switch, it bypasses configured `sesh` or `herdr` launch defaults; for create, it bypasses configured generic or editor-scoped launch defaults. An explicit launcher selector remains authoritative. Unsupported adapters fail with `TAB_DISPOSITION_UNSUPPORTED`; launch/preflight failures use `LAUNCH_FAILED`. Human-only tab launch is incompatible with `--json`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arashi",
3
- "version": "1.28.0",
3
+ "version": "1.30.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",
@@ -86,7 +86,7 @@
86
86
  "commander": "12.1.0",
87
87
  "conventional-changelog-conventionalcommits": "8.0.0",
88
88
  "husky": "9.1.7",
89
- "js-yaml": "4.3.0",
89
+ "js-yaml": "4.3.1",
90
90
  "lint-staged": "16.2.7",
91
91
  "node-pty": "1.1.0",
92
92
  "ora": "8.2.0",
@@ -84,6 +84,12 @@
84
84
  "CreateCommandDefaults": {
85
85
  "additionalProperties": false,
86
86
  "properties": {
87
+ "baseBranch": {
88
+ "description": "Default base branch for configured create invocations",
89
+ "minLength": 1,
90
+ "pattern": "^(?!HEAD$)(?!origin/(?:HEAD$|-))(?![-/.])(?!.*(?:/\\.|//|\\.\\.|@\\{))(?!.*\\.lock(?:/|$))(?!.*[/.]$)[^\\u0000-\\u0020\\u007F~^:?*\\[\\\\]+$",
91
+ "type": "string"
92
+ },
87
93
  "launch": {
88
94
  "$ref": "#/definitions/CreateLaunchMode",
89
95
  "description": "Post-create launch choice; omitted preserves built-in no-launch behavior"
@@ -103,12 +109,26 @@
103
109
  "additionalProperties": false,
104
110
  "properties": {
105
111
  "create": {
106
- "$ref": "#/definitions/CreateCommandDefaults",
112
+ "$ref": "#/definitions/EditorCreateCommandDefaults",
107
113
  "description": "Editor-scoped create defaults"
108
114
  }
109
115
  },
110
116
  "type": "object"
111
117
  },
118
+ "EditorCreateCommandDefaults": {
119
+ "additionalProperties": false,
120
+ "properties": {
121
+ "launch": {
122
+ "$ref": "#/definitions/CreateLaunchMode",
123
+ "description": "Post-create launch choice; omitted preserves built-in no-launch behavior"
124
+ },
125
+ "switch": {
126
+ "description": "Default to switching to the new worktree after create",
127
+ "type": "boolean"
128
+ }
129
+ },
130
+ "type": "object"
131
+ },
112
132
  "EditorDefaultsConfig": {
113
133
  "additionalProperties": false,
114
134
  "properties": {