@axelgar/opentree 1.2.0 → 1.3.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 +32 -3
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ opentree is a cross-platform CLI tool that manages multiple AI coding agent sess
|
|
|
15
15
|
- **💬 Built-in Chat**: Every agent speaks the [Agent Client Protocol](https://agentclientprotocol.com) and runs inside opentree's own chat view — answer permissions, watch diffs, send images, and drive the agent from the dashboard without attaching
|
|
16
16
|
- **📊 TUI Dashboard**: Interactive terminal UI for managing workspaces (press `?` for help)
|
|
17
17
|
- **🔀 Parallel Development**: Work on multiple branches simultaneously without checkout overhead
|
|
18
|
-
- **📝 Diff Viewer**:
|
|
18
|
+
- **📝 Diff Viewer**: Read a workspace's changes with a file tree, search and syntax colour — and leave notes on lines that go to its agent as a prompt
|
|
19
19
|
- **🚀 PR Creation**: Create GitHub PRs directly from the TUI with auto-generated title and body
|
|
20
20
|
- **✈️ Autopilot**: After each agent turn, run your check command, feed failures back, and publish the PR when it passes — per workspace, opt-in
|
|
21
21
|
- **📦 Dispatch**: `opentree dispatch 42 --headless` turns an issue into a PR with nobody watching, exiting with a code a script can branch on
|
|
@@ -119,7 +119,7 @@ opentree
|
|
|
119
119
|
- `n` - Create new workspace (prompts for branch name, then base branch)
|
|
120
120
|
- `i` - Create workspace from a GitHub issue number
|
|
121
121
|
- `Enter` - Attach to selected workspace
|
|
122
|
-
- `d` -
|
|
122
|
+
- `d` - Open the workspace's diff (see *Reviewing a diff* below)
|
|
123
123
|
- `D` - Compare a fan-out group: every sibling's diff in one scroll
|
|
124
124
|
- `W` - Promote a fan-out's winner: keep this sibling, delete the rest
|
|
125
125
|
- `p` - Create PR for selected workspace (auto-generates title and body from commits)
|
|
@@ -144,6 +144,35 @@ opentree
|
|
|
144
144
|
The mouse works too: the wheel scrolls, a click selects a row, and a
|
|
145
145
|
double-click attaches to it.
|
|
146
146
|
|
|
147
|
+
### Reviewing a diff
|
|
148
|
+
|
|
149
|
+
`d` opens the workspace's changes — committed and uncommitted, each under its
|
|
150
|
+
own heading — with the changed files down the left and the code on the right,
|
|
151
|
+
syntax-coloured, added and removed lines on a green and a red band. There is a
|
|
152
|
+
cursor, and everything else is a question about where it is. Press `?` inside
|
|
153
|
+
the view for the full card.
|
|
154
|
+
|
|
155
|
+
- `j`/`k`, `pgup`/`pgdn`, `g`/`G` move; `]`/`[` jump between hunks, `n`/`p`
|
|
156
|
+
between files; a click on a file in the tree jumps to it, a click on a line
|
|
157
|
+
takes the cursor there
|
|
158
|
+
- `space` ticks the file under the cursor as reviewed; `t` hides the tree
|
|
159
|
+
- `/` finds: type, `enter` keeps the query, and `n`/`N` step its matches until
|
|
160
|
+
`esc` clears it (with no query, `n` steps files again)
|
|
161
|
+
- `L` shows line numbers, `w` wraps long lines, `W` marks the words that
|
|
162
|
+
changed within a changed line
|
|
163
|
+
- `a` or `enter` writes a note on the line under the cursor, `A` on the whole
|
|
164
|
+
file; `@` lists them, `x` deletes the one under the cursor
|
|
165
|
+
- `s` sends every note to the workspace's agent as one prompt: the path and
|
|
166
|
+
line, the code quoted, and what you said about it. A note that ends in `?`
|
|
167
|
+
(or carries `??` anywhere) is asked as a question rather than given as an
|
|
168
|
+
instruction — *why is this recomputed every frame?* gets an answer, *cache
|
|
169
|
+
this* gets a change.
|
|
170
|
+
- `esc` closes; with notes unsent it warns first and closes on the second press
|
|
171
|
+
|
|
172
|
+
`D` opens a fan-out group the same way, every sibling's diff in one view with
|
|
173
|
+
the tree grouped by sibling. Notes cannot be sent from there — three agents,
|
|
174
|
+
one prompt, no right answer about who gets it.
|
|
175
|
+
|
|
147
176
|
Each row also carries what its agent is doing — working, waiting on a
|
|
148
177
|
permission, stopped — plus cost and context use, read live from the chat's
|
|
149
178
|
control socket. Open PRs show **CI check status** badges.
|
|
@@ -463,7 +492,7 @@ dashboard messages whichever you like.
|
|
|
463
492
|
The dashboard shows the group as one thing: siblings sort together under
|
|
464
493
|
every sort mode, each row wears a `⑂ feat/x` badge, and the cost, context
|
|
465
494
|
and diff numbers already on every row become the scoreboard. `D` opens the
|
|
466
|
-
comparison — every sibling's diff in one
|
|
495
|
+
comparison — every sibling's diff in one view, the file tree grouped by agent.
|
|
467
496
|
|
|
468
497
|
Then pick:
|
|
469
498
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axelgar/opentree",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Git worktree manager CLI for orchestrating parallel AI coding sessions",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"NOTICE"
|
|
18
18
|
],
|
|
19
19
|
"optionalDependencies": {
|
|
20
|
-
"@axelgar/opentree-linux-x64": "1.
|
|
21
|
-
"@axelgar/opentree-linux-arm64": "1.
|
|
22
|
-
"@axelgar/opentree-darwin-x64": "1.
|
|
23
|
-
"@axelgar/opentree-darwin-arm64": "1.
|
|
20
|
+
"@axelgar/opentree-linux-x64": "1.3.0",
|
|
21
|
+
"@axelgar/opentree-linux-arm64": "1.3.0",
|
|
22
|
+
"@axelgar/opentree-darwin-x64": "1.3.0",
|
|
23
|
+
"@axelgar/opentree-darwin-arm64": "1.3.0"
|
|
24
24
|
},
|
|
25
25
|
"engines": {
|
|
26
26
|
"node": ">=18"
|