opencode-plugin-flow 6.7.0 → 6.8.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/CHANGELOG.md CHANGED
@@ -6,6 +6,50 @@ One short entry per release, written for users deciding whether to upgrade.
6
6
 
7
7
  No changes yet.
8
8
 
9
+ ## [6.8.0] - 2026-07-24
10
+
11
+ Checkpoint-safe continuation and leaner review convergence:
12
+
13
+ - `/flow-auto` now remains waiting through same-revision checkpoint replies and
14
+ enqueues exactly one continuation only after the same host observes an
15
+ accepted Flow mutation whose tool assistant resolves through cached
16
+ `message.updated` parentage to the authoritative user reply; missing or
17
+ mismatched provenance fails closed. Mechanical progress must match that
18
+ revision exactly, except for the single state-constrained reviewer-result
19
+ revision after an authenticated `flow_review_start`.
20
+ - Compaction carries reply authority only across an authenticated trigger
21
+ assistant, automatic compaction marker, summary assistant, and successor user
22
+ lineage while authority remains unchanged; incomplete or unrelated lineage
23
+ fails closed.
24
+ - From idle, auto-routing requires a same-host accepted non-replayed
25
+ `flow_plan_save` for the newly created Flow session; a baseline that already
26
+ has a pending reviewer retains a narrow temporal exception.
27
+ - `/flow-auto stop` and `/flow-auto cancel` now revoke the process-local
28
+ continuation lease without closing, deferring, abandoning, or otherwise
29
+ mutating the durable Flow session.
30
+ - Manager command rewrites preserve every nonblank raw request, including
31
+ exterior whitespace, exactly once while keeping synthetic guidance separate.
32
+ - Initial auto/run prompts, dynamically loaded run guidance, compaction context,
33
+ and synthetic continuations share one concise manager kernel for reserved
34
+ roles, the exact `failedReviewCount === 1` retry gate, and current-source plus
35
+ relevant baseline evidence.
36
+ - Guidance represents race-heavy risk checks as one transition matrix and
37
+ preserves stable finding IDs, relevant baseline facts, and prior dispositions.
38
+ Ordinary reviewer summaries keep IDs mapped to the active feature or supplied
39
+ explicitly in its packet; final review covers every approved requirement or
40
+ feature ID. Both keep each still-live prior finding through failed reviews; a
41
+ proven repair remains pending until a later passing review, so closure and
42
+ archive replay need no prerequisite detail read or unbounded historical
43
+ ledger. The Session v5 schema is unchanged.
44
+ Provider/model execution remains unverified unless the opt-in manual canary
45
+ is run.
46
+
47
+ Install or update:
48
+
49
+ ```bash
50
+ opencode plugin opencode-plugin-flow@6.8.0 --global --force
51
+ ```
52
+
9
53
  ## [6.7.0] - 2026-07-23
10
54
 
11
55
  Bounded auto-continuation lore keeps user-authorized goals moving while making
package/README.md CHANGED
@@ -21,11 +21,11 @@ into the active goal.
21
21
  Install the exact npm release through OpenCode:
22
22
 
23
23
  ```bash
24
- opencode plugin opencode-plugin-flow@6.7.0 --global --force
24
+ opencode plugin opencode-plugin-flow@6.8.0 --global --force
25
25
  ```
26
26
 
27
27
  Omit `--global` for project scope. Exact version pins do not update
28
- automatically. To update, replace `6.7.0` with the new release and rerun the
28
+ automatically. To update, replace `6.8.0` with the new release and rerun the
29
29
  command.
30
30
 
31
31
  Before upgrading from Flow v5 or earlier, finish or explicitly close any active
@@ -43,7 +43,7 @@ The equivalent manual project configuration is:
43
43
  ```json
44
44
  {
45
45
  "$schema": "https://opencode.ai/config.json",
46
- "plugin": ["opencode-plugin-flow@6.7.0"]
46
+ "plugin": ["opencode-plugin-flow@6.8.0"]
47
47
  }
48
48
  ```
49
49
 
@@ -67,7 +67,14 @@ runnable feature at a time, validates the actual workspace, obtains an
67
67
  independent review, and repeats until it can close the session. While
68
68
  implementation remains authorized, `ready` and `completed` are internal loop
69
69
  states: `/flow-auto` does not hand back “ready for the next feature” or wait for
70
- another command between passing features.
70
+ another command between passing features. From idle, auto-routing first requires
71
+ a same-host accepted non-replayed `flow_plan_save` for the created Flow session;
72
+ an active baseline that already has a pending reviewer retains a narrow temporal
73
+ exception for that completion.
74
+
75
+ Send `/flow-auto stop` or `/flow-auto cancel` in the same OpenCode session to
76
+ revoke only the process-local continuation lease. This does not close, defer,
77
+ abandon, or otherwise mutate the durable Flow session.
71
78
 
72
79
  Before every manager-owned Flow mutation, including direct `/flow-plan` and
73
80
  `/flow-run` use, the manager compares the current request with the active goal.
@@ -79,8 +86,8 @@ continue, defer, or abandon the active work. If that work is completed but not
79
86
  closed, Flow closes it as completed before starting the new request.
80
87
 
81
88
  Existing implementation authority carries across approval and feature outcomes.
82
- Only the first in-scope failed review may automatically reset and atomically
83
- start one fresh full retry; a `[scope-blocker]` checkpoints immediately. A
89
+ Only when `failedReviewCount === 1` and no `[scope-blocker]` is present may Flow
90
+ automatically reset and atomically start one fresh full retry. A
84
91
  feature whose latest relevant reviewed outcome remains failed is never selected
85
92
  implicitly. `/flow-auto` may continue untouched, dependency-independent
86
93
  features, but when only retry-required candidates remain it projects
@@ -93,21 +100,40 @@ the superseded failed feature remains, status is ready with
93
100
  feature's exact `featureId`, because there is no blocked run left to reset. The
94
101
  active session remains authoritative while it waits. Ordinary blocking findings
95
102
  are in-scope by default; a reviewer uses `[scope-blocker]` only when the required
96
- repair would materially exceed the approved plan.
103
+ repair would materially exceed the approved plan. After a user checkpoint, the
104
+ process-local continuation resumes only after that same OpenCode session observes
105
+ an accepted non-replayed Flow mutation whose tool assistant ID resolves, through
106
+ the cached `message.updated` `parentID`, to the authoritative user reply. A
107
+ missing or mismatched origin fails closed. Another host cannot establish that
108
+ authority. The mechanical projection must match the credited revision exactly;
109
+ the sole successor allowance is one revision after an authenticated
110
+ `flow_review_start`, where the state machine admits the reserved reviewer result.
111
+ Compaction transfers the reply authority only across an authenticated trigger
112
+ assistant, automatic compaction marker, summary assistant, and successor user
113
+ lineage while the authority is unchanged; an incomplete or unrelated lineage
114
+ fails closed.
97
115
 
98
116
  Before coding each feature, Flow inventories required evidence and its
99
117
  environment, then applies an adversarial risk checklist covering failure
100
118
  ordering, repeated and interrupted operations, adjacent state transitions,
101
119
  overlapping invariants, and relevant file-mode or platform risks. While required
102
120
  behavior or environment evidence is knowingly skipped, manager policy forbids
103
- requesting review; the reviewer treats missing proof as blocking if the gap
104
- reaches its packet. Flow persists no skipped-evidence ledger. Asking the user
105
- remains the default when external evidence or authority is missing. At a blocked
106
- checkpoint, atomic reset-and-start can discard that attempt and continue the
121
+ requesting review; the reviewer treats proof required to approve the outcome as
122
+ blocking if it is missing from the packet. Flow persists no skipped-evidence
123
+ ledger. Asking the user remains the default when external evidence or authority
124
+ is missing. At a blocked checkpoint, atomic reset-and-start can discard that
125
+ attempt and continue the
107
126
  exact authorized retry or dependency-independent feature. At a ready retry
108
127
  checkpoint, explicit feature start resumes the already superseded failure.
109
128
  Neither route adds a hold or second blocker ledger.
110
129
 
130
+ Flow guidance represents the checklist for concurrency and state-machine work
131
+ as one compact transition matrix shared by workers and the reviewer. Review
132
+ packets reuse a refreshed run baseline, carry only feature-relevant file facts
133
+ until final review, and preserve source IDs, current-source evidence, risk
134
+ coverage, and prior finding dispositions in existing text fields—no new audit
135
+ schema.
136
+
111
137
  For plan-only or advanced use, plan first:
112
138
 
113
139
  ```text
@@ -147,8 +173,10 @@ inactive, errored, and unprojected waits are excluded.
147
173
  not reopened or vetoed later at close.
148
174
  6. The reviewer inspects adjacent and repeated state transitions, overlapping
149
175
  feature invariants, the changed artifacts, and the packet's base-diff and
150
- file-mode inventory. Missing proof is recorded as a precise blocking
151
- evidence request.
176
+ file-mode inventory. Stable finding IDs survive retries; reviewer guidance
177
+ requires checking prior dispositions and completing the supplied risk
178
+ checklist, represented as a bounded matrix when applicable. Missing proof is
179
+ a precise blocker only when it is required to approve the outcome.
152
180
  7. A passing feature advances the plan. A failed feature is not selected again
153
181
  by default. From blocked status, reset atomically starts the exact authorized
154
182
  retry or independent feature through optional `nextFeatureId`. From ready
@@ -156,7 +184,18 @@ inactive, errored, and unprojected waits are excluded.
156
184
  `flow_run_start(featureId)` begins its retry. The final passing feature allows
157
185
  explicit closure. Every accepted close returns a concise delivery summary
158
186
  with each feature's attempt count, latest outcome, and terminal findings,
159
- derived from Flow's recorded state.
187
+ derived from Flow's recorded state. Ordinary reviewer summaries carry IDs
188
+ mapped to the active feature or explicitly supplied in its packet; final
189
+ review carries every approved requirement or feature ID. Both carry each
190
+ still-live prior finding with its severity and disposition into the latest
191
+ `outcomeSummary`. Terminal
192
+ `fixed` requires a later passing review and current evidence. If a failed
193
+ retry proves one repair but finds another blocker, it carries that ID and a
194
+ concise evidence reference forward as terminal fixed pending pass; it cannot
195
+ drop the ID or call it fixed. Unproven fixes stay unverified, `recurring`
196
+ confirms recurrence, and `residual` requires a confirmed nonblocker. Only a
197
+ passing review may remove fixed history from the live carry-forward set.
198
+ Terminal findings retain unresolved blockers and the handoff stays bounded.
160
199
 
161
200
  State lives in `.flow/session.json`, so `/flow-status` can recover the next
162
201
  action after a restart or context change.
@@ -206,11 +245,18 @@ mutation is attempted. Do not hand-edit
206
245
  fingerprinting, or archive publication fails, follow the focused steps in
207
246
  [troubleshooting](docs/troubleshooting.md).
208
247
 
209
- For an interrupted accepted close, replay the projected `archiveRetry.request`
210
- exactly once. Flow confirms the existing bytes without rewriting Session v5 and
211
- re-confirms archive cleanup. A real archive collision removes the automatic
212
- retry instruction and requires manual inspection; preserve both documents and
213
- do not overwrite, delete, or loop the request.
248
+ For an interrupted accepted close, compact `/flow-status` supplies
249
+ `archiveRetry.request`. Replay that request exactly once before any additional
250
+ or detail recovery read. Flow confirms the existing bytes without rewriting
251
+ Session v5, re-confirms archive cleanup, and returns the existing concise
252
+ `workflowData.delivery`. Reconstruct only the plan-bounded, terminal disposition
253
+ map from its latest `outcomeSummary` and terminal findings. If delivery is absent,
254
+ report the exact recovery and claim no map. On a close revision conflict,
255
+ refresh compact status and retry only after confirming the same session and goal
256
+ and that status still permits the selected
257
+ closure kind; never close a replacement. A real archive collision removes the
258
+ automatic retry instruction and requires manual inspection; preserve both
259
+ documents and do not overwrite, delete, or loop the request.
214
260
 
215
261
  ## Development
216
262