flow-workflows 0.65.0-rc.6 → 0.65.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/adapters/codex/CORE.md +1 -1
- package/adapters/gemini/CORE.md +1 -1
- package/adapters/hermes/CORE.md +1 -1
- package/adapters/opencode/CORE.md +1 -1
- package/bin/cli.mjs +10 -4
- package/package.json +1 -1
- package/plugins/flow/.claude-plugin/plugin.json +1 -1
- package/plugins/flow/CHANGELOG.md +16 -2
package/adapters/codex/CORE.md
CHANGED
|
@@ -17,7 +17,7 @@ Every `$flow-*` command assumes these rules. They are stated once, here, so a co
|
|
|
17
17
|
carries what is specific to its phase. Read this once per session; a command that says "load
|
|
18
18
|
`flow-core`" means this file.
|
|
19
19
|
|
|
20
|
-
**This file belongs to flow `0.65.0
|
|
20
|
+
**This file belongs to flow `0.65.0`.** Compare it once, at the start of the session, against
|
|
21
21
|
`version` in `~/.claude/flow/.claude-plugin/plugin.json`. The two differing means the session
|
|
22
22
|
is running a **mixture** — the commands from one copy of the plugin, these shared rules from another
|
|
23
23
|
— which is exactly what happens when a branch or a release candidate is loaded over an installed
|
package/adapters/gemini/CORE.md
CHANGED
|
@@ -16,7 +16,7 @@ Every `/flow:*` command assumes these rules. They are stated once, here, so a co
|
|
|
16
16
|
carries what is specific to its phase. Read this once per session; a command that says "load
|
|
17
17
|
`flow-core`" means this file.
|
|
18
18
|
|
|
19
|
-
**This file belongs to flow `0.65.0
|
|
19
|
+
**This file belongs to flow `0.65.0`.** Compare it once, at the start of the session, against
|
|
20
20
|
`version` in `~/.claude/flow/.claude-plugin/plugin.json`. The two differing means the session
|
|
21
21
|
is running a **mixture** — the commands from one copy of the plugin, these shared rules from another
|
|
22
22
|
— which is exactly what happens when a branch or a release candidate is loaded over an installed
|
package/adapters/hermes/CORE.md
CHANGED
|
@@ -17,7 +17,7 @@ Every `/flow-*` command assumes these rules. They are stated once, here, so a co
|
|
|
17
17
|
carries what is specific to its phase. Read this once per session; a command that says "load
|
|
18
18
|
`flow-core`" means this file.
|
|
19
19
|
|
|
20
|
-
**This file belongs to flow `0.65.0
|
|
20
|
+
**This file belongs to flow `0.65.0`.** Compare it once, at the start of the session, against
|
|
21
21
|
`version` in `~/.claude/flow/.claude-plugin/plugin.json`. The two differing means the session
|
|
22
22
|
is running a **mixture** — the commands from one copy of the plugin, these shared rules from another
|
|
23
23
|
— which is exactly what happens when a branch or a release candidate is loaded over an installed
|
|
@@ -16,7 +16,7 @@ Every `/flow-*` command assumes these rules. They are stated once, here, so a co
|
|
|
16
16
|
carries what is specific to its phase. Read this once per session; a command that says "load
|
|
17
17
|
`flow-core`" means this file.
|
|
18
18
|
|
|
19
|
-
**This file belongs to flow `0.65.0
|
|
19
|
+
**This file belongs to flow `0.65.0`.** Compare it once, at the start of the session, against
|
|
20
20
|
`version` in `~/.claude/flow/.claude-plugin/plugin.json`. The two differing means the session
|
|
21
21
|
is running a **mixture** — the commands from one copy of the plugin, these shared rules from another
|
|
22
22
|
— which is exactly what happens when a branch or a release candidate is loaded over an installed
|
package/bin/cli.mjs
CHANGED
|
@@ -263,14 +263,16 @@ function parseFlow(text) {
|
|
|
263
263
|
// resolve every key to its fallback and say nothing. Prefer the root we are in (a repo that
|
|
264
264
|
// commits its config gets it in every worktree, and a worktree may legitimately differ), and
|
|
265
265
|
// fall back to the main checkout, which `--git-common-dir` points into from anywhere.
|
|
266
|
-
function
|
|
267
|
-
if (existsSync(join(repo,
|
|
266
|
+
function rootHolding(repo, probe) {
|
|
267
|
+
if (existsSync(join(repo, probe))) return repo
|
|
268
268
|
const common = git(['rev-parse', '--path-format=absolute', '--git-common-dir'], repo).trim()
|
|
269
269
|
if (!common) return repo
|
|
270
270
|
const main = dirname(common)
|
|
271
|
-
return main !== repo && existsSync(join(main,
|
|
271
|
+
return main !== repo && existsSync(join(main, probe)) ? main : repo
|
|
272
272
|
}
|
|
273
273
|
|
|
274
|
+
const configRoot = (repo) => rootHolding(repo, 'FLOW.md')
|
|
275
|
+
|
|
274
276
|
// The overlay names flow-core §0 recognises. A `--harness` outside this set reads no
|
|
275
277
|
// overlay and looks exactly like a repo that has none, so it stops the run instead: a typo
|
|
276
278
|
// here is worth one error message and never worth a review round nobody can trust.
|
|
@@ -322,8 +324,12 @@ function flowConfig(repo, harness) {
|
|
|
322
324
|
return base
|
|
323
325
|
}
|
|
324
326
|
|
|
327
|
+
// `.claude/work` is git-ignored like the FLOW files, so a worktree does not carry it either — and
|
|
328
|
+
// the two things that read it fail silently when it is missing: the pack drops its `## Work`
|
|
329
|
+
// section, which it advertises and no reviewer knows to miss, and `--record` writes the figure
|
|
330
|
+
// nowhere and exits 0. Same resolution as the config: here first, the main checkout otherwise.
|
|
325
331
|
function workFolder(repo, branch) {
|
|
326
|
-
const root = join(repo, '.claude', 'work')
|
|
332
|
+
const root = join(rootHolding(repo, join('.claude', 'work')), '.claude', 'work')
|
|
327
333
|
if (!existsSync(root)) return null
|
|
328
334
|
for (const entry of readdirSync(root, { withFileTypes: true })) {
|
|
329
335
|
if (!entry.isDirectory() || entry.name === '_archive') continue
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flow-workflows",
|
|
3
|
-
"version": "0.65.0
|
|
3
|
+
"version": "0.65.0",
|
|
4
4
|
"description": "Guided feat/bug workflows (start→ship), post-deploy monitoring and multi-agent code review, stack-agnostic. Each repo uses a shared FLOW.md plus optional harness overlay.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "flow",
|
|
4
4
|
"displayName": "Flow — guided dev workflows",
|
|
5
5
|
"description": "Guided feat/bug workflows (start→ship), post-deploy monitoring and multi-agent code review, stack-agnostic. Each repo uses a shared FLOW.md plus optional harness overlay.",
|
|
6
|
-
"version": "0.65.0
|
|
6
|
+
"version": "0.65.0",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Alberto Vioque",
|
|
9
9
|
"email": "mashware@gmail.com"
|
|
@@ -5,7 +5,7 @@ plugin and is what `/flow:news` reads to show you what changed since your previo
|
|
|
5
5
|
|
|
6
6
|
The canonical, richest notes live in the [GitHub Releases](https://github.com/mashware/flow-workflows/releases).
|
|
7
7
|
|
|
8
|
-
## v0.65.0 — Every phase rediscovered the same context, and nobody knew what it cost · 2026-09-
|
|
8
|
+
## v0.65.0 — Every phase rediscovered the same context, and nobody knew what it cost · 2026-09-21
|
|
9
9
|
|
|
10
10
|
**In short**
|
|
11
11
|
- **A round gathers its material once.** `npx flow-workflows bundle` prints one context pack — worklist, diff, changed files, the repo's own analysis output, the work's handoff — instead of every reviewer paying to rediscover it. Two limits govern it, because how big a file is and how big its change is are different questions: a large file with a small edit keeps its diff.
|
|
@@ -123,7 +123,21 @@ and re-opening its file would pay for the same words twice; the folder is where
|
|
|
123
123
|
call separates a round that was lost from a round that was never done, and only the second is worth
|
|
124
124
|
another agent.
|
|
125
125
|
|
|
126
|
-
|
|
126
|
+
The first real run of the CLI panel — the half of this release nothing had exercised — found the
|
|
127
|
+
last one, and it is the worktree bug again in the place nobody looked. **`.claude/work` is
|
|
128
|
+
git-ignored exactly like the FLOW files**, so a phase running in a worktree does not have it
|
|
129
|
+
either: `bundle` silently dropped the `## Work` section it advertises, sending every reviewer a
|
|
130
|
+
pack with no handoff and no `meta.json`, and `review --record` wrote the figure nowhere and exited
|
|
131
|
+
0 — which is indistinguishable from a harness that reported no cost. The work folder now resolves
|
|
132
|
+
the way the config does: here first, the main checkout otherwise.
|
|
133
|
+
|
|
134
|
+
That same run is the argument for the whole release. Four one-shot reviewers, four and a half
|
|
135
|
+
minutes, **$4.24 measured** over a 1 360-line diff, and they found a major regression the agentic
|
|
136
|
+
panel had missed on the same branch: `Option<&RawValue>` collapses a JSON `null` into "key absent",
|
|
137
|
+
so a reply that carried an explicit null lost the distinction the code around it documents. Not
|
|
138
|
+
found by reading the plugin — found by running it.
|
|
139
|
+
|
|
140
|
+
None of the seven could be seen from the repo, and none of them failed. That is the argument for
|
|
127
141
|
driving a candidate through a real work rather than reading it: the run that found them is also the
|
|
128
142
|
one whose review then read the diff from git and caught five blocking defects anyway, because the
|
|
129
143
|
fallback is a real path and not an apology.
|