opencode-plugin-flow 4.3.3 → 4.3.5
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 +37 -0
- package/README.md +13 -5
- package/dist/adapters/opencode/tools.d.ts +14 -0
- package/dist/cli.js +313 -113
- package/dist/cli.js.map +3 -3
- package/dist/index.js +573 -119
- package/dist/index.js.map +7 -7
- package/dist/runtime/api.d.ts +11 -0
- package/dist/runtime/schema.d.ts +119 -0
- package/dist/runtime/transitions.d.ts +43 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
One short entry per release, written for users deciding whether to upgrade.
|
|
4
4
|
|
|
5
|
+
## [4.3.5] - 2026-07-08
|
|
6
|
+
|
|
7
|
+
Flow now stops long autonomous loops more deliberately without making reviews
|
|
8
|
+
shallower:
|
|
9
|
+
|
|
10
|
+
- Runtime budget telemetry records completed features since the last phase
|
|
11
|
+
boundary, feature/final review counts, failed review counts, per-feature
|
|
12
|
+
retry attempts, and host token telemetry availability.
|
|
13
|
+
- Failed feature and final reviews now pause by default, allow only one
|
|
14
|
+
autonomous repair plus one retry, then block the feature with a compact
|
|
15
|
+
resume packet instead of continuing to edit in the same root session.
|
|
16
|
+
- Feature completion now records `featureReviewDepth` and rejects evidence that
|
|
17
|
+
is shallower than the approved feature requires.
|
|
18
|
+
- Large sessions now checkpoint after three completed features and require an
|
|
19
|
+
explicit `phaseBoundaryAck` in a fresh phase before the next feature starts.
|
|
20
|
+
- Flow planning, running, review, README, maintainer docs, and wiki pages now
|
|
21
|
+
describe scoped review packets, risk-based review depth, retry limits, and
|
|
22
|
+
phase-boundary handoffs.
|
|
23
|
+
|
|
24
|
+
## [4.3.4] - 2026-07-07
|
|
25
|
+
|
|
26
|
+
Planning and final-review lore sharpened without changing the runtime surface:
|
|
27
|
+
|
|
28
|
+
- `flow-plan` now has a pre-approval quality gate that checks outcome,
|
|
29
|
+
requirements, decisions, uncertainty, feature shape, bounded targets,
|
|
30
|
+
validation levels, dependencies, and review policy before a plan is saved or
|
|
31
|
+
approved.
|
|
32
|
+
- Planning examples now cover bugfix, UI/frontend, runtime/schema, docs-only,
|
|
33
|
+
audit-first, and stronger validation patterns, giving agents better few-shot
|
|
34
|
+
guidance for common Flow sessions.
|
|
35
|
+
- Final review now includes a convergence scan that traces the original goal,
|
|
36
|
+
approved requirements, every planned feature, changed artifacts, and
|
|
37
|
+
validation evidence before returning a passing `finalReview`.
|
|
38
|
+
- The new planning checklist is shipped through synced skills and bundled
|
|
39
|
+
`/flow-plan` and `/flow-auto` command instructions, so fresh and stale skill
|
|
40
|
+
discovery paths get the same guidance.
|
|
41
|
+
|
|
5
42
|
## [4.3.3] - 2026-07-07
|
|
6
43
|
|
|
7
44
|
Verification only — no behavior change:
|
package/README.md
CHANGED
|
@@ -17,8 +17,8 @@ Full project documentation is available in the
|
|
|
17
17
|
## Quick start
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
opencode plugin opencode-plugin-flow@4.3.
|
|
21
|
-
npx -y opencode-plugin-flow@4.3.
|
|
20
|
+
opencode plugin opencode-plugin-flow@4.3.5 --global --force
|
|
21
|
+
npx -y opencode-plugin-flow@4.3.5 sync
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
Restart OpenCode, then give Flow a goal:
|
|
@@ -46,6 +46,7 @@ restart.
|
|
|
46
46
|
... implementation, tests ...
|
|
47
47
|
flow_feature_complete
|
|
48
48
|
validationRun: "bun test tests/middleware.test.ts" passed
|
|
49
|
+
featureReviewDepth: standard
|
|
49
50
|
featureReview: passed
|
|
50
51
|
flow_run_start feature: per-route-config
|
|
51
52
|
...
|
|
@@ -93,8 +94,8 @@ The runtime exposes seven tools:
|
|
|
93
94
|
| `flow_session_close` | Archive the active session as completed, deferred, or abandoned. |
|
|
94
95
|
|
|
95
96
|
Review evidence is part of `flow_feature_complete`: every completed feature
|
|
96
|
-
needs a passing `featureReview
|
|
97
|
-
`finalReview`.
|
|
97
|
+
needs a passing `featureReview` at the feature's planned `reviewDepth`, and the
|
|
98
|
+
final feature also needs a passing `finalReview`.
|
|
98
99
|
|
|
99
100
|
## What the runtime enforces
|
|
100
101
|
|
|
@@ -107,6 +108,13 @@ The runtime owns only safety; judgment lives in the skills:
|
|
|
107
108
|
- Completion requires passing validation evidence: `targeted` scope for
|
|
108
109
|
ordinary features, `broad` scope plus a passing final review for the last
|
|
109
110
|
one.
|
|
111
|
+
- Completion records `featureReviewDepth`; the runtime rejects review evidence
|
|
112
|
+
that is shallower than the approved feature requires.
|
|
113
|
+
- Failed reviews are bounded: a failed review pauses by default, and autonomous
|
|
114
|
+
repair is limited to one repair plus one retry before the feature blocks.
|
|
115
|
+
- Long sessions hit phase boundaries after a small number of completed
|
|
116
|
+
features. Flow returns a compact resume packet and requires explicit
|
|
117
|
+
`phaseBoundaryAck` before starting the next feature.
|
|
110
118
|
- A session can close as `completed` only after final completion has passed.
|
|
111
119
|
- Crash recovery is built in: stale session locks expire automatically and
|
|
112
120
|
unreadable session files are quarantined with recovery guidance, never
|
|
@@ -135,7 +143,7 @@ To update a pinned Flow version, rerun the install command with the new
|
|
|
135
143
|
version. To inspect skill health:
|
|
136
144
|
|
|
137
145
|
```bash
|
|
138
|
-
npx -y opencode-plugin-flow@4.3.
|
|
146
|
+
npx -y opencode-plugin-flow@4.3.5 doctor
|
|
139
147
|
```
|
|
140
148
|
|
|
141
149
|
## Experimental: compaction context
|
|
@@ -28,6 +28,11 @@ export declare function createTools(ctx: unknown): {
|
|
|
28
28
|
completed: "completed";
|
|
29
29
|
blocked: "blocked";
|
|
30
30
|
}>>;
|
|
31
|
+
reviewDepth: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
32
|
+
quick: "quick";
|
|
33
|
+
standard: "standard";
|
|
34
|
+
detailed: "detailed";
|
|
35
|
+
}>>;
|
|
31
36
|
targets: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
32
37
|
validation: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
33
38
|
dependsOn: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
@@ -46,6 +51,7 @@ export declare function createTools(ctx: unknown): {
|
|
|
46
51
|
id: string;
|
|
47
52
|
title: string;
|
|
48
53
|
status?: "pending" | "in_progress" | "completed" | "blocked" | undefined;
|
|
54
|
+
reviewDepth?: "quick" | "standard" | "detailed" | undefined;
|
|
49
55
|
targets?: string[] | undefined;
|
|
50
56
|
validation?: string[] | undefined;
|
|
51
57
|
dependsOn?: string[] | undefined;
|
|
@@ -63,9 +69,11 @@ export declare function createTools(ctx: unknown): {
|
|
|
63
69
|
description: string;
|
|
64
70
|
args: {
|
|
65
71
|
featureId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
72
|
+
phaseBoundaryAck: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
66
73
|
};
|
|
67
74
|
execute(args: {
|
|
68
75
|
featureId?: string | undefined;
|
|
76
|
+
phaseBoundaryAck?: boolean | undefined;
|
|
69
77
|
}, context: ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
|
|
70
78
|
};
|
|
71
79
|
flow_feature_complete: {
|
|
@@ -92,6 +100,11 @@ export declare function createTools(ctx: unknown): {
|
|
|
92
100
|
targeted: "targeted";
|
|
93
101
|
broad: "broad";
|
|
94
102
|
}>>;
|
|
103
|
+
featureReviewDepth: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
104
|
+
quick: "quick";
|
|
105
|
+
standard: "standard";
|
|
106
|
+
detailed: "detailed";
|
|
107
|
+
}>>;
|
|
95
108
|
featureReview: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
96
109
|
status: import("zod").ZodEnum<{
|
|
97
110
|
passed: "passed";
|
|
@@ -156,6 +169,7 @@ export declare function createTools(ctx: unknown): {
|
|
|
156
169
|
summary: string;
|
|
157
170
|
}[] | undefined;
|
|
158
171
|
validationScope?: "targeted" | "broad" | undefined;
|
|
172
|
+
featureReviewDepth?: "quick" | "standard" | "detailed" | undefined;
|
|
159
173
|
featureReview?: {
|
|
160
174
|
status: "passed" | "failed";
|
|
161
175
|
summary: string;
|