@sma1lboy/kobe 0.9.18 → 0.9.20
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/dist/cli/index.js +367 -367
- package/dist/cli/kobe-run.js +367 -367
- package/dist/cli/rove-run.js +367 -367
- package/dist/skills/rove/SKILL.md +28 -16
- package/dist/skills/rove/references/api-flags.md +3 -3
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ name: rove
|
|
|
3
3
|
description: Use when controlling Rove tasks, parallel coding attempts, hosted agent sessions, task lifecycle, or the daemon-owned issue tracker from a shell. Also the ONLY channel for messaging another agent session on this machine — `rove api send`, never a peer/MCP side channel.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- rove-skill-version:
|
|
6
|
+
<!-- rove-skill-version: 36 — bump in lockstep with KOBE_SKILL_VERSION (src/lib/skill-install.ts). -->
|
|
7
7
|
|
|
8
8
|
# Rove shell control
|
|
9
9
|
|
|
@@ -215,7 +215,7 @@ turn either. These five carry almost all traffic:
|
|
|
215
215
|
add --repo(REQ) --prompt --title --command --count --agents --activate
|
|
216
216
|
send --prompt(REQ) --task-id --tab --command --plain
|
|
217
217
|
get-task --task-id(REQ) list (no flags)
|
|
218
|
-
collect --task-ids <csv> | --repo
|
|
218
|
+
collect --group <groupId> | --task-ids <csv> | --repo
|
|
219
219
|
```
|
|
220
220
|
|
|
221
221
|
Four names that have actually been guessed wrong here: `add --vendor` is
|
|
@@ -277,7 +277,10 @@ rove api send --task-id <id> --tab new --prompt "<turn>" # fresh engine tab
|
|
|
277
277
|
rove api send --task-id <id> --tab new --command codex --prompt "<turn>"
|
|
278
278
|
|
|
279
279
|
rove api get-task --task-id <id>
|
|
280
|
-
|
|
280
|
+
# One read for the whole round — the groupId `add --count` returned. Never
|
|
281
|
+
# hand-copy N task ids across turns: collect by group. Lost the groupId? Any
|
|
282
|
+
# sibling task's `.groupId` in `list` output recovers it.
|
|
283
|
+
rove api collect --group <groupId> --pretty
|
|
281
284
|
rove api list --pretty
|
|
282
285
|
```
|
|
283
286
|
|
|
@@ -286,7 +289,13 @@ command, or content tab alone does not count.
|
|
|
286
289
|
Omitting BOTH `--task-id` and `--tab` inside a task that has a dispatcher
|
|
287
290
|
targets that dispatcher's tab (see the reply rule above); otherwise the
|
|
288
291
|
target is the active task. Omitting only `--tab` targets a live engine tab
|
|
289
|
-
(`tab-1` first, then any surviving engine tab).
|
|
292
|
+
(`tab-1` first, then any surviving engine tab). **Trap: omitting only
|
|
293
|
+
`--task-id` while giving `--tab tab-N` inside a dispatched task delivers to
|
|
294
|
+
`tab-N` of the DISPATCHER's task** — the dispatcher's id fills in for
|
|
295
|
+
`--task-id`, but an explicit `--tab` is kept, so your `send --tab tab-3`
|
|
296
|
+
lands in the middle of another session's tab-3, not yours. Target your own
|
|
297
|
+
task's tab with `--task-id "$ROVE_TASK_ID" --tab tab-N`. Only when the task
|
|
298
|
+
has NO live session at all does `send`
|
|
290
299
|
auto-start the canonical engine in the task's worktree (`started: true` in
|
|
291
300
|
the result marks that fresh session). If live tabs exist but none resolves
|
|
292
301
|
as an engine, it refuses with `NO_ENGINE_TAB` — address one with `--tab
|
|
@@ -330,18 +339,19 @@ logs, dashboards), don't scatter panes for work `add` should own.
|
|
|
330
339
|
| `set-branch --task-id ID --branch B` | Rename its branch |
|
|
331
340
|
| `set-command --task-id ID --command CMD` | Change the engine launch command for the next launch |
|
|
332
341
|
| `set-status --task-id ID --status S` | Set lifecycle status |
|
|
333
|
-
| `archive --task-id ID [--archived=false]` | Archive/unarchive; stops live sessions |
|
|
334
342
|
| `pin --task-id ID [--pinned=false]` | Pin/unpin |
|
|
335
343
|
| `set-active --task-id ID` / `--none` | Change shared active task |
|
|
336
344
|
| `ensure-worktree --task-id ID` | Materialize without starting an engine |
|
|
337
|
-
| `land --task-id ID [--strategy merge\|squash] [--delete-branch] [--
|
|
345
|
+
| `land --task-id ID [--strategy merge\|squash] [--delete-branch] [--remove-worktree=false]` | Merge the task's branch into the base repo's current branch; the Worktree is removed by default (`--remove-worktree=false` keeps it). The branch always stays; dirty/self/base removals are refused, outcome in the result's `worktree` field |
|
|
338
346
|
| `delete --task-id ID [--force] [--delete-branch]` | Remove task + Worktree; the git branch stays unless `--delete-branch` (and `--force` never implies it) |
|
|
339
347
|
| `discover-adoptable --repo PATH` | Find untracked Worktrees |
|
|
340
348
|
| `adopt --repo PATH --worktree PATH` | Import a Worktree |
|
|
341
349
|
|
|
342
350
|
Once a task's work is merged, `delete` is the normal cleanup — the branch is
|
|
343
|
-
git's durable record and survives.
|
|
344
|
-
|
|
351
|
+
git's durable record and survives. There is no "hide the row without
|
|
352
|
+
deleting" verb anymore (`archive` was removed); a merged task you want out of
|
|
353
|
+
the way is a `delete`, and its branch is still there if you need the history
|
|
354
|
+
back. `--delete-branch` (or a dirty-worktree `--force`) still needs
|
|
345
355
|
explicit user authorization.
|
|
346
356
|
|
|
347
357
|
## Issue tracker
|
|
@@ -462,15 +472,17 @@ After comparing attempts, finish the round instead of leaving tasks behind:
|
|
|
462
472
|
```bash
|
|
463
473
|
# Land the winner: merge its branch into the base repo's CURRENT branch.
|
|
464
474
|
# Verify the base checkout is on the intended branch first.
|
|
465
|
-
rove api land --task-id <winner>
|
|
475
|
+
rove api land --task-id <winner>
|
|
466
476
|
|
|
467
|
-
#
|
|
468
|
-
|
|
469
|
-
|
|
477
|
+
# Delete the losers: task + worktree go away, the git branch survives
|
|
478
|
+
# (recoverable). NOT --delete-branch — that destroys history and needs
|
|
479
|
+
# explicit user authorization.
|
|
480
|
+
rove api delete --task-id <loser1>
|
|
481
|
+
rove api delete --task-id <loser2>
|
|
470
482
|
```
|
|
471
483
|
|
|
472
484
|
`land` refuses a dirty base checkout; on merge conflict it aborts cleanly and
|
|
473
|
-
returns the conflicted files for manual resolution. `delete` removes a
|
|
474
|
-
Worktree but keeps its branch (recoverable);
|
|
475
|
-
|
|
476
|
-
authorization.
|
|
485
|
+
returns the conflicted files for manual resolution. `delete` removes a
|
|
486
|
+
loser's Worktree but keeps its branch (recoverable); `--delete-branch`
|
|
487
|
+
destroys the history and is never part of closing a round without explicit
|
|
488
|
+
user authorization.
|
|
@@ -41,6 +41,7 @@ Four flag names that have actually been guessed wrong here, and what they are:
|
|
|
41
41
|
|
|
42
42
|
| Gone | Now |
|
|
43
43
|
|---|---|
|
|
44
|
+
| `archive` | `delete` (task + worktree go; the git branch survives unless `--delete-branch`) |
|
|
44
45
|
| `fan-out` | `add --count N` / `add --agents claude:2,codex:1` |
|
|
45
46
|
| `task-list` | `list` |
|
|
46
47
|
| `send-tab` | `send --tab tab-N` |
|
|
@@ -52,7 +53,7 @@ Seeing one of these in guidance means that guidance predates the rename —
|
|
|
52
53
|
## read
|
|
53
54
|
|
|
54
55
|
```text
|
|
55
|
-
list (none) every task
|
|
56
|
+
list (none) every task
|
|
56
57
|
get-task --task-id(REQ) one task + .tabs[] — the read before `send --tab`
|
|
57
58
|
collect --task-ids <csv> --repo comparison snapshot across tasks
|
|
58
59
|
inspect --task-id daemon activity + pty walk + tab snapshots
|
|
@@ -113,9 +114,8 @@ rename --task-id(REQ) --title(REQ)
|
|
|
113
114
|
set-branch --task-id(REQ) --branch(REQ)
|
|
114
115
|
set-command --task-id(REQ) --command(REQ) next launch only
|
|
115
116
|
set-status --task-id(REQ) --status(REQ)[backlog|in_progress|in_review|done|canceled|error]
|
|
116
|
-
archive --task-id(REQ) --archived(true)
|
|
117
117
|
pin --task-id(REQ) --pinned(true)
|
|
118
|
-
land --task-id(REQ) --strategy[merge|squash] --delete-branch --
|
|
118
|
+
land --task-id(REQ) --strategy[merge|squash] --delete-branch --remove-worktree(true)
|
|
119
119
|
delete --task-id(REQ) --force --delete-branch
|
|
120
120
|
```
|
|
121
121
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@sma1lboy/kobe",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.20",
|
|
5
5
|
"description": "Rove — the agent multiplexer for your terminal. Run coding agents on parallel tasks with isolated worktrees and persistent sessions.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"terminal",
|