@henryqw/pi-herdr-done 0.5.4 → 0.5.5
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 +23 -6
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# `@henryqw/pi-herdr-done`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Close and remove the current Herdr-managed linked worktree safely.
|
|
4
4
|
|
|
5
5
|
## Why
|
|
6
6
|
|
|
7
|
-
- **Created for**:
|
|
7
|
+
- **Created for**: Clean up finished worktree tasks without manually removing checkouts, closing tabs, and pulling parents.
|
|
8
8
|
- **Advantage**: `/done` removes the checkout, closes workspace tabs, fast-forwards the parent with `--ff-only`, and refuses unsafe cases unless forced.
|
|
9
9
|
|
|
10
10
|
## Install
|
|
@@ -13,6 +13,8 @@ Pi extension that closes and removes the current Herdr-managed linked worktree.
|
|
|
13
13
|
pi install npm:@henryqw/pi-herdr-done
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
+
Requires a Pi session running inside Herdr.
|
|
17
|
+
|
|
16
18
|
## Use
|
|
17
19
|
|
|
18
20
|
| Surface | Type | Purpose |
|
|
@@ -20,7 +22,13 @@ pi install npm:@henryqw/pi-herdr-done
|
|
|
20
22
|
| `/done` | command | Remove the current worktree checkout, close its Herdr workspace's tabs, and fast-forward the parent workspace. |
|
|
21
23
|
| `/done --force` | command | Same, even when the worktree is dirty or used by tabs in another workspace. |
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
### Idle and confirmation
|
|
26
|
+
|
|
27
|
+
- Both forms wait for Pi to become idle.
|
|
28
|
+
- `/done` asks for confirmation first.
|
|
29
|
+
- `/done --force` skips confirmation because the flag already states intent.
|
|
30
|
+
|
|
31
|
+
Normal removal runs:
|
|
24
32
|
|
|
25
33
|
```bash
|
|
26
34
|
git worktree remove .
|
|
@@ -29,8 +37,17 @@ git -C <parent> pull --ff-only
|
|
|
29
37
|
herdr tab close "$HERDR_TAB_ID"
|
|
30
38
|
```
|
|
31
39
|
|
|
32
|
-
|
|
40
|
+
### Parent pull and tabs
|
|
41
|
+
|
|
42
|
+
- The parent pull runs only when this session ran in a linked worktree with a non-bare primary.
|
|
43
|
+
- It fails safely when the parent has diverged.
|
|
44
|
+
- Parent tabs do not block worktree removal or the parent pull.
|
|
45
|
+
- Once removal succeeds, every tab in the current Herdr workspace closes, even when the parent pull fails.
|
|
46
|
+
- Concurrent completions serialize on a lock around the parent checkout.
|
|
33
47
|
|
|
34
|
-
|
|
48
|
+
### Herdr requirements and force
|
|
35
49
|
|
|
36
|
-
|
|
50
|
+
- Tabs in the current Herdr workspace close automatically.
|
|
51
|
+
- If a tab from another workspace still uses the current checkout, `/done` refuses and lists it by name. Use `/done --force` to remove the checkout regardless.
|
|
52
|
+
- The command requires Pi inside Herdr with `HERDR_ENV=1`, `HERDR_WORKSPACE_ID`, and `HERDR_TAB_ID` set.
|
|
53
|
+
- Dirty worktrees make `/done` fail. Commit or discard changes, or use `/done --force` to explicitly delete them.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@henryqw/pi-herdr-done",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"description": "Close and remove the current Herdr worktree from Pi.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
},
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"files": [
|
|
17
|
+
"LICENSE",
|
|
17
18
|
"extensions",
|
|
18
|
-
"README.md"
|
|
19
|
-
"LICENSE"
|
|
19
|
+
"README.md"
|
|
20
20
|
],
|
|
21
21
|
"scripts": {
|
|
22
22
|
"test": "node --test test/*.test.ts",
|