@geonosis/review 2.3.1 → 2.4.3

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