@sjawhar/opencode-legion-envoy 5.4.4 → 5.4.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjawhar/opencode-legion-envoy",
3
- "version": "5.4.4",
3
+ "version": "5.4.6",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "dist/src/server.js",
@@ -82,7 +82,8 @@ because replying to an ask makes you one of its followers (see [Following](skill
82
82
  `quote` requires `artifact`; its anchor is pinned to the containing block while retaining the quote
83
83
  for display. Omit both for a floating issue comment. A reply (`reply_to`/`reply_to_ask`) takes no
84
84
  `quote`; it belongs to its parent's anchor. Reply to any comment in a thread; the server keeps
85
- threads flat. A reply to a resolved thread reopens it. Use `reply_to_ask` to reply directly under a
85
+ threads flat. A reply to a resolved thread reopens it, except a decided suggestion's: a reply joins
86
+ that thread and the suggestion stays accepted or rejected. Use `reply_to_ask` to reply directly under a
86
87
  question asked with `dispatch_ask`; `turn` (only with `reply_to_ask`) says who holds the turn after
87
88
  the reply — `agent` for a progress note that keeps the ask waiting on you, `human` (the default) when
88
89
  the human needs to act; see "Asking" in `skill://dispatch`. Comments are edited only by their author from the
@@ -99,7 +100,8 @@ dispatch_resolve_comment({ comment })
99
100
  8+ character id prefix is resolved against the owner's comments). It returns the owner details plus `comment`, and takes no reason —
100
101
  say what you did in a `reply_to` first if the thread needs it. The server lets any session or human resolve any open comment, so
101
102
  resolve only threads you opened or were asked to close; reopening a resolved thread is human-only (from the dashboard), though your
102
- reply to it reopens it. Asks are closed with `dispatch_resolve_ask` instead.
103
+ reply to it reopens it - except a decided suggestion's, which your reply joins and leaves accepted or rejected. A reply to a pending
104
+ suggestion whose text an edit removed lands as well. Asks are closed with `dispatch_resolve_ask` instead.
103
105
 
104
106
  An exact replacement for document text is a suggestion (`dispatch_suggest`), never a comment; a
105
107
  comment is for a question or a note the human answers in words. A human accepts a suggestion with
@@ -46,10 +46,14 @@ takes this order: write, commit and push the handoff; submit the review of the h
46
46
  made, by its SHA; then complete. An approval waits for the CI verdict to settle green at that head
47
47
  before you submit it, since an approval stands only on green checks and GitHub can dismiss one
48
48
  once the head moves, and a verdict that settles red there makes the round's decision a request for
49
- changes naming the failing checks; a request for changes does not wait, since it stands whatever
50
- CI says and the issue leaves reviewing with it. The verdict is of the checks and workflows the
51
- base branch requires, the set READY checks: red when one of them failed, and never red for a check
52
- the base branch does not require. A required check that was cancelled, or that the head's checks
49
+ changes naming the failing checks, unless only review workflows the project declares
50
+ (`projects.<KEY>.review_workflows`) are red on their own findings: then you answer their threads,
51
+ have them resolved with `legion threads resolve` and re-run the failed run, as your role prompt
52
+ says, and approve once it passes. Any other red required workflow is a failing check like any
53
+ other. A request for changes does not wait, since it stands whatever CI says and the issue leaves
54
+ reviewing with it. The verdict is of the checks and workflows the base branch requires, the set
55
+ READY checks: red when one of them failed, and never red for a check the base branch does not
56
+ require. A required check that was cancelled, or that the head's checks
53
57
  settled without, leaves no verdict until a later settlement decides it, since a run can be
54
58
  cancelled or not yet queued when the head settles; a required workflow's run on the head that is
55
59
  still going or has not happened leaves none either. A review of a head the handoff push
@@ -2,7 +2,8 @@
2
2
 
3
3
  Part of `skill://legion-worker`. Read it when you reply to, accept, or resolve a review thread,
4
4
  or run `legion threads resolve`: the implementer after every push that answers a review, the
5
- merger before READY, and the reviewer, who answers threads on every re-review and runs nothing.
5
+ merger before READY, and the reviewer, who answers threads on every re-review and runs the command
6
+ only when a review workflow the project declares is red on a bot's findings.
6
7
  Every path it cites is in sjawhar/legion.
7
8
 
8
9
  - **Threads are dispositioned individually, never resolved in bulk.** Every open review
@@ -15,7 +16,11 @@ Every path it cites is in sjawhar/legion.
15
16
  considers only the newest comment). The review App can reply on a thread but cannot resolve it:
16
17
  GitHub grants resolving a review thread to the pull request's author, and the implementer opens
17
18
  every Legion pull request (`docs/site/src/content/docs/legion/running-legion.md`, "The two
18
- GitHub Apps").
19
+ GitHub Apps"). In the reviewer's pane (`LEGION_ROLE=reviewer`), `legion threads resolve` asks
20
+ the daemon instead (`POST /legion/v1/threads/resolve`), which resolves as the implementer's App
21
+ only the threads a bot outside Legion's role Apps opened whose newest submitted comment is the
22
+ reviewer's `Accepted:`, on the pull request of the reviewer's own issue, and prints the same
23
+ lines; the reviewer never holds the implementer's token.
19
24
  When `LEGION_GRANT_FILE` or `LEGION_GRANT` is set, use `legion threads resolve --pr <number> --repo <owner>/<repo>`.
20
25
  When neither is set, add `--gh` to that command, which applies the fallback's rule below through
21
26
  your own `gh`; where no `legion` command is installed, use `gh api graphql` with the session's
@@ -80,5 +85,9 @@ Every path it cites is in sjawhar/legion.
80
85
  opener's (read the newest comments with `gh api graphql`, never from the PR body). Another
81
86
  opener's thread that a person resolved with GitHub's button, with no `Accepted:`, gates nothing:
82
87
  neither `legion threads resolve` nor the merge queue's gate counts a resolved thread. Resolution
83
- is the pull request author's App's, so your approval never waits on it. The merger resolves
84
- accepted threads that remain open before publishing READY.
88
+ is the pull request author's App's, so your approval never waits on it, except when a review
89
+ workflow the project declares (`projects.<KEY>.review_workflows`) is red on its findings: such a
90
+ workflow passes on a re-run only once its threads are resolved, so you run `legion threads
91
+ resolve` (the daemon resolves the bot threads you accepted) and re-run the failed run before you
92
+ approve, as your role prompt says.
93
+ The merger resolves accepted threads that remain open before publishing READY.