@geonosis/review 2.3.1 → 2.4.2
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 +108 -0
- package/bin/geonosis-review.mjs +19 -5
- package/package.json +2 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# @geonosis/review
|
|
2
|
+
|
|
3
|
+
## 2.4.2
|
|
4
|
+
|
|
5
|
+
## 2.4.1
|
|
6
|
+
|
|
7
|
+
## 2.4.0
|
|
8
|
+
|
|
9
|
+
## 2.3.1
|
|
10
|
+
|
|
11
|
+
## 2.3.0
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 3dac9a7: **One documented spelling (#90).** Every README of a package the metapackage fronts now names
|
|
16
|
+
`geonosis <tool>` — the door that pins the whole toolchain at one version — beside the bare bin, and
|
|
17
|
+
a `tooling/` test holds it. `#230`'s stamp test lands with it: every flag `docs/orchestration.md`'s
|
|
18
|
+
adoption loop names has to carry the version it first ships in, because the loop once told a
|
|
19
|
+
consumer to run a flag the published version did not have.
|
|
20
|
+
|
|
21
|
+
## 2.2.0
|
|
22
|
+
|
|
23
|
+
## 2.1.0
|
|
24
|
+
|
|
25
|
+
## 2.0.0
|
|
26
|
+
|
|
27
|
+
## 1.4.0
|
|
28
|
+
|
|
29
|
+
## 1.3.0
|
|
30
|
+
|
|
31
|
+
### Minor Changes
|
|
32
|
+
|
|
33
|
+
- 2d1d841: **`geonosis-review --help` answered "unknown option --help" at exit 2 (#66).** The README was the
|
|
34
|
+
only usage there was. `--help`/`-h` now print it at exit 0, and the unknown-option refusal points at
|
|
35
|
+
the flag that produces it.
|
|
36
|
+
|
|
37
|
+
**It also answers `--print-config-shape` (#75)**, assembled from the same `KNOWN` set the reader refuses against, so the shape cannot drift from the check.
|
|
38
|
+
|
|
39
|
+
## 1.2.0
|
|
40
|
+
|
|
41
|
+
## 1.1.0
|
|
42
|
+
|
|
43
|
+
## 1.0.1
|
|
44
|
+
|
|
45
|
+
### Patch Changes
|
|
46
|
+
|
|
47
|
+
- 1c2ee0b: **Every package ships its declarations and says where they are.** `@geonosis/visual-diff` and
|
|
48
|
+
`@geonosis/verify` emitted no `.d.ts` at all (TS7016 in a consumer: the comparator every visual test
|
|
49
|
+
calls became `any` at the one seam that decides whether a screenshot regressed), and no package
|
|
50
|
+
declared `types` — the nineteen that worked did so through the sibling-file fallback, which ends the
|
|
51
|
+
day `exports` gains a condition. Every export now carries a `types` condition beside `default`, every
|
|
52
|
+
manifest a `types` field, and `tooling/types.test.ts` holds all twenty-one to it after the build.
|
|
53
|
+
|
|
54
|
+
`geonosis-verify-arch` prints a check once when its label is its id ("direction, orphan", not
|
|
55
|
+
"direction direction").
|
|
56
|
+
|
|
57
|
+
## 1.0.0
|
|
58
|
+
|
|
59
|
+
### Major Changes
|
|
60
|
+
|
|
61
|
+
- b1157fc: `@geonosis/review`: the decision-only reviewer contract from Medusa's `reviewing-prs`, as a schema
|
|
62
|
+
and a deterministic applier. One `review-decision.json` (Zod, strict — an unknown key is refused,
|
|
63
|
+
never dropped); `apply` records it and does nothing else; `check --criteria <plan.md>` refuses a
|
|
64
|
+
decision that never looked at an EARS criterion the plan states. Two of Medusa's "Common Mistakes"
|
|
65
|
+
are mechanical here: an approval carrying a blocker, and a request-changes naming nothing to change.
|
|
66
|
+
It imports nothing of the kit — including the ledger, because a reviewer that can reach the ledger
|
|
67
|
+
is one call away from writing the tick it just judged. `review.runner` is `peer-session` or
|
|
68
|
+
`agent:<model>` (C13) and nothing in the package acts on it.
|
|
69
|
+
- f60a869: **The six defects the 1.0.0 reviews filed, before the release: two of them about being installable
|
|
70
|
+
at all, three about refusing honestly, one about counting a finding twice.**
|
|
71
|
+
|
|
72
|
+
`geonosis-review` read its command line OUTSIDE `main`'s try, so `--definitely-not-a-flag` reached
|
|
73
|
+
node uncaught: a stack trace and exit **1** — the one code the contract reserves for "the review was
|
|
74
|
+
read and REFUSED", so a caller branching on the code read a typo as a rejection. Parsing happens
|
|
75
|
+
inside now, every command-line mistake is 2 on one line, and the README's exit codes are a table
|
|
76
|
+
that says which is which (#50).
|
|
77
|
+
|
|
78
|
+
`@geonosis/testbed`'s `bin` named `dist/cli.js`, the only bin in the kit that pointed at a build
|
|
79
|
+
output. `pnpm install` links bins BEFORE anything is built, so a fresh clone printed
|
|
80
|
+
`Failed to create bin … ENOENT` and had no `geonosis-testbed` — including the copy `@geonosis/cli`
|
|
81
|
+
spawns for its `testbed` door. It has a committed `bin/geonosis-testbed.mjs` shim like every other
|
|
82
|
+
package, and `tooling/bins.test.ts` holds every `bin` entry to a file git carries (#51).
|
|
83
|
+
|
|
84
|
+
Two shims — `create-geonosis` and `geonosis-mcp` — were **committed at mode 644**. pnpm sets the
|
|
85
|
+
executable bit on the link it creates, so the mode was right everywhere except where it is kept, and
|
|
86
|
+
the flip only ever surfaced as an unrelated diff in somebody else's commit. Both are 755, and the
|
|
87
|
+
test reads the mode **git records**, which is the mode a clone gets (#52). Measured on this base:
|
|
88
|
+
`doctor` and `verify-arch`, the two the review named, were already executable.
|
|
89
|
+
|
|
90
|
+
`geonosis-testbed matrix` crashed on a malformed `testbed.matrix`: a block spelling `majors` as
|
|
91
|
+
`postgres` reached the renderer, which read `.length` off `undefined` — a TypeError at exit 1 for a
|
|
92
|
+
config error one line long. `readDbMatrix` checks the block first and refuses with **2**, naming
|
|
93
|
+
every wrong key at once (a missing one and an unknown one are two findings, and being told one at a
|
|
94
|
+
time means editing the file twice). Hand-rolled, not Zod: this package has no runtime dependencies
|
|
95
|
+
and a test that keeps it that way (#45).
|
|
96
|
+
|
|
97
|
+
`no-mock-db-in-integration` reported an imported handle **twice at one position**: an
|
|
98
|
+
ImportSpecifier's `imported` and its `local` are two nodes over the same span when nothing is
|
|
99
|
+
renamed. One report per place now — the corpus carries the fixture that shows it, and a finding
|
|
100
|
+
counted twice is a finding a ratchet counter banks twice (#46).
|
|
101
|
+
|
|
102
|
+
`geonosis-ledger sync --write` refused a config that did not already carry the fragment
|
|
103
|
+
(`"boundaries": no such key`), so the command whose job is to write the config could not write the
|
|
104
|
+
first one and hand-authoring the generated shape was the way in. It creates the key now — in a
|
|
105
|
+
`turbo.json` with no `boundaries`, in a config that has never named `layer-walls`, in a package with
|
|
106
|
+
no `no-restricted-imports`, and the `rules` object itself if that is missing too — and still writes
|
|
107
|
+
only that fragment. A rule is grown as `["error", { … }]`, the severity being the one thing no
|
|
108
|
+
generator can read off the table (#34).
|
package/bin/geonosis-review.mjs
CHANGED
|
@@ -17,11 +17,25 @@ const newest = (dir) =>
|
|
|
17
17
|
}, 0)
|
|
18
18
|
: 0
|
|
19
19
|
const src = join(here, '..', 'src')
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
const dist = join(here, '..', 'dist')
|
|
21
|
+
// `newest` answers 0 for a directory that is NOT THERE and for one that is merely old, so the
|
|
22
|
+
// two conditions were one comparison and one sentence — and the staleness sentence was printed
|
|
23
|
+
// over trees that had never been built at all, blocking a turn in a fresh git worktree, which
|
|
24
|
+
// has no dist because dist is not committed (#357). Only the second is evidence of a mistake.
|
|
25
|
+
if (existsSync(src)) {
|
|
26
|
+
const built = newest(dist)
|
|
27
|
+
if (built === 0) {
|
|
28
|
+
process.stderr.write(
|
|
29
|
+
'geonosis-review: this tree has never been built — run pnpm build. No dist here at all, which is what a fresh clone or a linked git worktree starts with; nothing is stale.\n',
|
|
30
|
+
)
|
|
31
|
+
process.exit(2)
|
|
32
|
+
}
|
|
33
|
+
if (newest(src) > built) {
|
|
34
|
+
process.stderr.write(
|
|
35
|
+
'geonosis-review: dist is older than src — run pnpm build before trusting this bin.\n',
|
|
36
|
+
)
|
|
37
|
+
process.exit(2)
|
|
38
|
+
}
|
|
25
39
|
}
|
|
26
40
|
|
|
27
41
|
await import('../dist/review-cli.js')
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geonosis/review",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.2",
|
|
4
4
|
"types": "./dist/index.d.ts",
|
|
5
5
|
"description": "The decision-only reviewer contract: a review's sole output is one JSON decision, validated and applied by a step that comments nowhere, approves nothing and cannot reach a forge.",
|
|
6
6
|
"keywords": [
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
"files": [
|
|
34
|
+
"CHANGELOG.md",
|
|
34
35
|
"bin",
|
|
35
36
|
"dist"
|
|
36
37
|
],
|