arashi 1.36.0 → 1.37.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 +10 -0
- package/package.json +8 -4
package/README.md
CHANGED
|
@@ -53,6 +53,7 @@ Arashi creates matching worktrees for the configured repositories. From there, u
|
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
55
|
aw status # inspect the coordinated workspace
|
|
56
|
+
aw status --local # inspect cached remote-tracking refs without fetching
|
|
56
57
|
aw switch feature-auth-refresh # return to a worktree
|
|
57
58
|
aw pull # update repositories
|
|
58
59
|
aw push --set-upstream # publish branches
|
|
@@ -77,11 +78,20 @@ For a single repository without persisted Arashi configuration, use `aw init --z
|
|
|
77
78
|
| `aw pull` / `aw push` / `aw sync` | Synchronize repositories |
|
|
78
79
|
| `aw setup` | Run repository setup steps |
|
|
79
80
|
| `aw remove` / `aw prune` | Clean up branch worktrees and metadata |
|
|
81
|
+
| `aw finish` | Assess and retire a coordinated workspace |
|
|
80
82
|
| `aw doctor` | Diagnose workspace problems |
|
|
81
83
|
| `aw update` | Update Arashi |
|
|
82
84
|
|
|
83
85
|
Run `aw --help`, `aw <command> --help`, or use the [complete command reference](https://arashi.haphazard.dev/commands/) for options and examples.
|
|
84
86
|
|
|
87
|
+
### Finishing a coordinated workspace
|
|
88
|
+
|
|
89
|
+
`aw finish <branch-or-parent-path> --dry-run` inventories the registered parent and configured children, refreshes named base/upstream refs into disposable private Git storage, and previews the exact cleanup scope and remove hooks. It does not run hooks, ask for completion/discard/removal consent, or write managed worktrees, refs, config, or index; network metadata refresh is permitted. A blocked or unknown preview still exits successfully **as a preview**, not as cleanup authorization. In main, a human TTY can omit the target to select one parent; selection is not consent. JSON/non-TTY requires an explicit target.
|
|
90
|
+
|
|
91
|
+
Current `repos.<key>.baseBranch` overrides workspace `baseBranch` (`meta.baseBranch` overrides it for the parent). This is **current policy**, not a record of the create-time base or invocation-only overrides. With no configured base, preview leaves integration unknown; interactive execution can supply a repository-specific remote and full `refs/heads/...` target without saving it. Exact inspected HEAD ancestry of a freshly fetched named base can prove integration, but a negative ancestry result cannot prove non-integration after squash, rebase, or cherry-pick. GitHub PR correlation is attempted when ancestry is unproven and head/base remotes identify the same GitHub repository, including during dry-run: finish runs `gh auth status` and up to three paginated `gh api` requests. A match is only a correlation, not immutable historical merge-time HEAD proof; squash/rebase and other unproven completion still require explicit per-repository manual judgment in a human TTY. `--force` never supplies that judgment.
|
|
92
|
+
|
|
93
|
+
Run `aw finish <target>` to review unknown completion, then separately consent to discarding dirty, untracked, or ignored local data and absent/ahead-upstream state and to removal. `--force` covers the latter two consents only; `--keep-branches` retains local branches. `--json` / `-j` emits one schema-versioned report and never prompts. Finish rechecks identity, policy, fresh evidence, and exact remove actions after consent and after successful pre-remove hooks before mutation. Hooks may already have side effects if that gate aborts; once removal starts, partial failures retain the existing remove ledger and require manual inspection/retry. External Git/filesystem actors can still race after the final gate: finish does **not** make deletion atomic or serialize other Arashi commands. It does not merge, push, delete remote branches, or detect later reverts.
|
|
94
|
+
|
|
85
95
|
## Shell integration
|
|
86
96
|
|
|
87
97
|
Install shell integration for parent-shell directory switching and completion in Bash, Zsh, or Fish:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arashi",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.37.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",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
],
|
|
57
57
|
"type": "module",
|
|
58
58
|
"scripts": {
|
|
59
|
-
"dev": "
|
|
59
|
+
"dev": "bun src/index.ts",
|
|
60
60
|
"build": "pnpm run completion:check && bun build src/index.ts --compile --minify --outfile bin/arashi.bin",
|
|
61
61
|
"build:debug": "pnpm run completion:check && bun build src/index.ts --compile --sourcemap --outfile bin/arashi.bin",
|
|
62
62
|
"build:all": "pnpm run completion:check && pnpm run build:mac && pnpm run build:linux && pnpm run build:windows",
|
|
@@ -65,6 +65,10 @@
|
|
|
65
65
|
"build:linux": "pnpm run completion:check && bun build src/index.ts --compile --target=bun-linux-x64 --outfile bin/arashi-linux-x64",
|
|
66
66
|
"build:windows": "pnpm run completion:check && bun build src/index.ts --compile --target=bun-windows-x64 --outfile bin/arashi-windows-x64.exe",
|
|
67
67
|
"test": "node scripts/test/run-tests.ts",
|
|
68
|
+
"benchmark": "node --experimental-strip-types scripts/benchmark/orchestrate.ts",
|
|
69
|
+
"benchmark:run": "node --experimental-strip-types scripts/benchmark/run.ts",
|
|
70
|
+
"benchmark:pull:run": "node --experimental-strip-types scripts/benchmark/pull-run.ts",
|
|
71
|
+
"benchmark:test": "vitest run tests/benchmarks",
|
|
68
72
|
"typecheck": "tsc --noEmit",
|
|
69
73
|
"lint": "oxlint -D no-explicit-any .",
|
|
70
74
|
"lint:fix": "oxlint --fix -D no-explicit-any .",
|
|
@@ -96,7 +100,7 @@
|
|
|
96
100
|
"commander": "12.1.0",
|
|
97
101
|
"conventional-changelog-conventionalcommits": "8.0.0",
|
|
98
102
|
"husky": "9.1.7",
|
|
99
|
-
"js-yaml": "4.3.
|
|
103
|
+
"js-yaml": "4.3.2",
|
|
100
104
|
"lint-staged": "16.2.7",
|
|
101
105
|
"node-pty": "1.1.0",
|
|
102
106
|
"ora": "8.2.0",
|
|
@@ -105,7 +109,7 @@
|
|
|
105
109
|
"semantic-release": "25.0.6",
|
|
106
110
|
"ts-json-schema-generator": "2.4.0",
|
|
107
111
|
"typescript": "5.9.3",
|
|
108
|
-
"vitest": "4.1.
|
|
112
|
+
"vitest": "4.1.11"
|
|
109
113
|
},
|
|
110
114
|
"lint-staged": {
|
|
111
115
|
"*.{ts,tsx,js,mjs,cjs,json,md,yml,yaml}": "oxfmt --config .oxfmtrc.json --write"
|