arashi 1.22.0 → 1.24.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 +30 -8
- package/bin/arashi +31 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,7 +41,17 @@ It also runs a quick `arashi --version` smoke test before declaring success.
|
|
|
41
41
|
|
|
42
42
|
If curl installation fails, or if the smoke test reports a bad release artifact, use npm installation below or the manual release instructions in [`docs/INSTALLATION.md`](./docs/INSTALLATION.md).
|
|
43
43
|
|
|
44
|
-
### Option 2: Install with
|
|
44
|
+
### Option 2: Install on Windows with PowerShell
|
|
45
|
+
|
|
46
|
+
PowerShell is the canonical Windows installer:
|
|
47
|
+
|
|
48
|
+
```powershell
|
|
49
|
+
powershell -c "irm https://arashi.haphazard.dev/install.ps1 | iex"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
It verifies and installs `arashi.bin.exe`, the extensionless `arashi` wrapper for Git Bash, `arashi.ps1`, and `arashi.bat` from the same release. The default directory is `%USERPROFILE%\.arashi\bin`; the installer adds it to the persistent user PATH. It does not create or modify `.bashrc` or another shell profile. Open a new Git Bash window before running `arashi --version` so it inherits the PATH change.
|
|
53
|
+
|
|
54
|
+
### Option 3: Install with npm
|
|
45
55
|
|
|
46
56
|
```bash
|
|
47
57
|
npm install -g arashi
|
|
@@ -93,13 +103,17 @@ chmod +x arashi
|
|
|
93
103
|
sudo mv arashi /usr/local/bin/arashi
|
|
94
104
|
```
|
|
95
105
|
|
|
96
|
-
Windows (PowerShell):
|
|
106
|
+
Windows (PowerShell and Git Bash):
|
|
97
107
|
|
|
98
108
|
```powershell
|
|
99
|
-
|
|
100
|
-
#
|
|
109
|
+
# Download arashi-windows-x64.exe, arashi, arashi.ps1, arashi.bat,
|
|
110
|
+
# and arashi-checksums.txt from the same release.
|
|
111
|
+
# Verify all four payload files against arashi-checksums.txt.
|
|
112
|
+
# Rename arashi-windows-x64.exe to arashi.bin.exe and keep the four files together on PATH.
|
|
101
113
|
```
|
|
102
114
|
|
|
115
|
+
Windows manual installation requires `arashi-windows-x64.exe`, `arashi`, `arashi.ps1`, `arashi.bat`, and `arashi-checksums.txt` from the same release. Verify all four payload files, rename the executable to `arashi.bin.exe`, and keep the payload together on PATH.
|
|
116
|
+
|
|
103
117
|
You can also build from source for local development:
|
|
104
118
|
|
|
105
119
|
```bash
|
|
@@ -117,12 +131,12 @@ Arashi currently provides these commands:
|
|
|
117
131
|
- `arashi update [--check] [--dry-run] [--yes]`
|
|
118
132
|
- `arashi add <git-url>`
|
|
119
133
|
- `arashi clone [--all]`
|
|
120
|
-
- `arashi create <branch> [--tmux|--sesh|--herdr]`
|
|
134
|
+
- `arashi create <branch> [--tab] [--tmux|--sesh|--herdr]`
|
|
121
135
|
- `arashi list`
|
|
122
136
|
- `arashi status`
|
|
123
137
|
- `arashi remove <branch|path>`
|
|
124
138
|
- `arashi prune [--dry-run]` - clean stale Git worktree metadata
|
|
125
|
-
- `arashi switch [filter] [--repos|--all] [--cd|--no-cd] [--tmux|--sesh|--herdr] [--no-default-launch]`
|
|
139
|
+
- `arashi switch [filter] [--repos|--all] [--tab] [--cd|--no-cd] [--tmux|--sesh|--herdr] [--no-default-launch]`
|
|
126
140
|
- `arashi shell init <bash|zsh|fish>`
|
|
127
141
|
- `arashi shell install`
|
|
128
142
|
- `arashi pull`
|
|
@@ -141,6 +155,7 @@ arashi create feature-auth-refresh
|
|
|
141
155
|
arashi create feature-auth-refresh --launch
|
|
142
156
|
arashi create feature-auth-refresh --tmux
|
|
143
157
|
arashi create feature-auth-refresh --herdr
|
|
158
|
+
arashi create feature-auth-refresh --tab
|
|
144
159
|
arashi create feature-auth-refresh --no-launch
|
|
145
160
|
arashi shell install
|
|
146
161
|
arashi status
|
|
@@ -151,11 +166,14 @@ arashi switch --repos docs # repo-name matching in child repos
|
|
|
151
166
|
arashi switch --cd feature-auth-refresh # parent-shell cd when shell integration is active
|
|
152
167
|
arashi switch --tmux feature-auth-refresh # force a new plain tmux window
|
|
153
168
|
arashi switch --herdr feature-auth-refresh # open or focus a persistent Herdr workspace
|
|
169
|
+
arashi switch --tab feature-auth-refresh # request a true tab or managed equivalent
|
|
154
170
|
arashi switch --no-default-launch # bypass configured sesh/Herdr mode once
|
|
155
171
|
```
|
|
156
172
|
|
|
157
173
|
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
174
|
|
|
175
|
+
`--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. Unsupported adapters fail with `TAB_DISPOSITION_UNSUPPORTED`; launch/preflight failures use `LAUNCH_FAILED`. Human-only tab launch is incompatible with `--json`.
|
|
176
|
+
|
|
159
177
|
### Managed Git ignore rules
|
|
160
178
|
|
|
161
179
|
Configured workspaces keep `reposDir` and `worktreesDir` effectively ignored. Arashi asks Git
|
|
@@ -272,7 +290,11 @@ bindkey -s '^s' 'sesh connect $(arashi list | fzf)\n'
|
|
|
272
290
|
|
|
273
291
|
You can also use `arashi switch --sesh` directly inside tmux to open the selected worktree in a new tmux window.
|
|
274
292
|
|
|
275
|
-
`arashi switch`
|
|
293
|
+
`arashi switch` checks managed contexts in this order: tmux → Herdr → cmux → integrated IDE → Kitty. Managed Kitty selection applies when any one of `KITTY_PID`, `KITTY_WINDOW_ID`, or `TERM=xterm-kitty` is present after normalization.
|
|
294
|
+
|
|
295
|
+
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.
|
|
296
|
+
|
|
297
|
+
`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.
|
|
276
298
|
|
|
277
299
|
### Fast remove selection
|
|
278
300
|
|
|
@@ -321,7 +343,7 @@ Example config header:
|
|
|
321
343
|
}
|
|
322
344
|
```
|
|
323
345
|
|
|
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`.
|
|
346
|
+
`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`.
|
|
325
347
|
|
|
326
348
|
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
349
|
|
package/bin/arashi
CHANGED
|
@@ -14,23 +14,36 @@ done
|
|
|
14
14
|
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_SOURCE")" && pwd)"
|
|
15
15
|
BINARY="$SCRIPT_DIR/arashi.bin"
|
|
16
16
|
|
|
17
|
-
# Use
|
|
17
|
+
# Use the Windows binary only with explicit Git-for-Windows/MSYS/Cygwin evidence.
|
|
18
|
+
# arashi.bin always retains precedence when both binaries are present.
|
|
18
19
|
if [ ! -f "$BINARY" ]; then
|
|
19
20
|
PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]')
|
|
20
21
|
ARCH=$(uname -m)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
;;
|
|
26
|
-
linux-x86_64)
|
|
27
|
-
BINARY="$SCRIPT_DIR/arashi-linux-x64"
|
|
28
|
-
;;
|
|
29
|
-
*)
|
|
30
|
-
echo "Error: Unsupported platform $PLATFORM-$ARCH" >&2
|
|
31
|
-
exit 1
|
|
32
|
-
;;
|
|
22
|
+
WINDOWS_SHELL="false"
|
|
23
|
+
|
|
24
|
+
case "${MSYSTEM:-}" in
|
|
25
|
+
MINGW*|MSYS*) WINDOWS_SHELL="true" ;;
|
|
33
26
|
esac
|
|
27
|
+
case "$PLATFORM" in
|
|
28
|
+
mingw*|msys*|cygwin*) WINDOWS_SHELL="true" ;;
|
|
29
|
+
esac
|
|
30
|
+
|
|
31
|
+
if [ "$WINDOWS_SHELL" = "true" ]; then
|
|
32
|
+
BINARY="$SCRIPT_DIR/arashi.bin.exe"
|
|
33
|
+
else
|
|
34
|
+
case "$PLATFORM-$ARCH" in
|
|
35
|
+
darwin-arm64)
|
|
36
|
+
BINARY="$SCRIPT_DIR/arashi-macos-arm64"
|
|
37
|
+
;;
|
|
38
|
+
linux-x86_64)
|
|
39
|
+
BINARY="$SCRIPT_DIR/arashi-linux-x64"
|
|
40
|
+
;;
|
|
41
|
+
*)
|
|
42
|
+
echo "Error: Unsupported platform $PLATFORM-$ARCH" >&2
|
|
43
|
+
exit 1
|
|
44
|
+
;;
|
|
45
|
+
esac
|
|
46
|
+
fi
|
|
34
47
|
fi
|
|
35
48
|
|
|
36
49
|
if [ ! -f "$BINARY" ]; then
|
|
@@ -49,7 +62,11 @@ for arg in "$@"; do
|
|
|
49
62
|
esac
|
|
50
63
|
continue
|
|
51
64
|
;;
|
|
52
|
-
*)
|
|
65
|
+
*)
|
|
66
|
+
if [ -z "$command" ]; then
|
|
67
|
+
command="$arg"
|
|
68
|
+
fi
|
|
69
|
+
;;
|
|
53
70
|
esac
|
|
54
71
|
done
|
|
55
72
|
|