@sjawhar/opencode-legion-envoy 1.1.0 → 1.2.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.
@@ -13611,6 +13611,7 @@ var CommentEventPayloadSchema = object({
13611
13611
  reply_to: string2().nullish(),
13612
13612
  ask_id: string2().nullish(),
13613
13613
  ask_question: string2().optional(),
13614
+ ask_state: _enum2(["open", "answered", "resolved"]).optional(),
13614
13615
  anchor: object({ quote: string2().optional() }).nullish(),
13615
13616
  suggestion: object({ replace_with: string2().optional() }).nullish(),
13616
13617
  author: object({ kind: string2(), id: string2() }).optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjawhar/opencode-legion-envoy",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "type": "module",
5
5
  "main": "dist/src/server.js",
6
6
  "exports": {
@@ -118,6 +118,11 @@ in its Conversation card and reply thread. Resolution is not an answer: it never
118
118
  resolved. A human may reply to an open or answered ask; so may you, e.g. after finding the answer — use `reply_to_ask` on
119
119
  `dispatch_comment` (mutually exclusive with `reply_to`).
120
120
 
121
+ A human reply while your ask is still open (the delivered `comment.created` carries `ask_state: open`) is a request for
122
+ clarification, not an answer: the human did not understand the question or needs more before choosing. The ask now waits on you
123
+ in their Inbox. Answer in the same thread with `dispatch_comment({ reply_to_ask })`, or reword the question itself with
124
+ `dispatch_edit_ask` when the wording was the problem; either puts the ask back in front of them. Do not open a second ask.
125
+
121
126
  ## The Spec
122
127
 
123
128
  The spec holds requirements, design, acceptance, decisions, and rejected alternatives, structured per [Writing a spec](#writing-a-spec).
@@ -218,6 +218,7 @@ corresponding lifecycle procedure.
218
218
  | `pr-ready` | Verify the live PR head, green status, and review state. Continue the review/retro/merger order only for that current head. |
219
219
  | `pr-review` | Payload `{type:"pr-review", state, author, body}`. Delivered to whichever role is currently active for the issue, falling back to you when no worker phase is active. Follows the same verdict rule as a reviewer's `phase-complete`: `state: "changes_requested"` sends the implementer back in with the review findings, then tester, then reviewer — never the reviewer again and never retro; `state: "approved"` proceeds toward retro (step 5) once the step 6 integration/merge-gate conditions are met. |
220
220
  | `pr-blocked` | Read the failed CI evidence and recovery attempts. Assign a focused implementer or corrective child, then return it through testing and review; do not treat the blocked PR as final. |
221
+ | `pr-merged` | Payload `{type:"pr-merged", pr, mergeCommitSha}`. The merge queue landed the PR. This is your cue for step 7: post the sign-off comment naming that merge commit and set the issue `done`. Nothing else follows a merge. |
221
222
  | `pr-closed-unmerged` | Decide from current scope whether to reopen the work, send a fresh implementer, or cancel it with a reason. Delegate the repository action to the responsible phase worker and keep ownership. |
222
223
  | `issue-comment` | Interpret the comment in the issue's design context. Answer it, adjust the plan, or relay it via `envoy_publish` to the responsible worker's role token; scope and product decisions remain with you. |
223
224
  | `catchup-overseer` | Verify its gates, child counts, and PR verdicts against current artifacts, then resume the applicable numbered lifecycle step. It is a current-state snapshot, not a raw-event replay. For each entry in its `phaseCompletions` (`{issue, role, summary, at}`, phases that completed while you were not live), handle it exactly as a `phase-complete` wake. |