yadflow 2.9.0 → 2.10.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
@@ -1,9 +1,9 @@
1
- # [2.9.0](https://github.com/abdelrahmannasr/yadflow/compare/v2.8.0...v2.9.0) (2026-06-15)
1
+ # [2.10.0](https://github.com/abdelrahmannasr/yadflow/compare/v2.9.0...v2.10.0) (2026-06-15)
2
2
 
3
3
 
4
4
  ### Features
5
5
 
6
- * **docs:** enhance interactive docs clearer diagram, brand icon, dimmed stubs ([#65](https://github.com/abdelrahmannasr/yadflow/issues/65)) ([969a20d](https://github.com/abdelrahmannasr/yadflow/commit/969a20dc1e9778e1ffd0962e557f3e2c28dfd6ef))
6
+ * **checks:** cap jest/vitest test workers in connected-repo CI gates ([#66](https://github.com/abdelrahmannasr/yadflow/issues/66)) ([7a16d51](https://github.com/abdelrahmannasr/yadflow/commit/7a16d51eb135c3240d3e94012f844c8b74210bd9))
7
7
 
8
8
  # [2.2.0](https://github.com/abdelrahmannasr/yadflow/compare/v2.1.0...v2.2.0) (2026-06-14)
9
9
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yadflow",
3
- "version": "2.9.0",
3
+ "version": "2.10.0",
4
4
  "description": "Yadflow — the gated, team, multi-repo SDLC: author → review → build with a PR-driven review gate and a zero-dependency `yad` CLI (setup, gate, commit, open-pr, ship, repo). A BMAD module + 29 yad-* skills.",
5
5
  "type": "module",
6
6
  "author": "AbdelRahman Nasr",
@@ -16,6 +16,8 @@ in CI on every PR/MR and must pass before merge (build plan §C). Each is a smal
16
16
  contract upstream, it **FAILS and routes back to the architecture gate**. The shared surface is
17
17
  never widened from inside a code repo (Phase 2 contract representation: delimited block + SHA-256 lock).
18
18
  3. **build/test/lint** — standard quality stage; tests must actually exercise new behavior, not just pass.
19
+ The CI job sets `YAD_TEST_MAX_WORKERS` (default `2`); the gate caps jest/vitest test concurrency at
20
+ that and is a no-op for other runners (see `references/check-gates.md`).
19
21
  4. **verified-commits** — no unverified commits from unverified users: every commit in the range must
20
22
  carry a signature the platform marks **Verified** AND be authored by a known identity
21
23
  (`.sdlc/verified-authors`, generated from the hub roster's `email` fields). Enforced on the
@@ -46,6 +46,11 @@ repo uses. Each reads conventions established by earlier steps — it invents no
46
46
  - Runs `npm run lint`, `npm run build`, `npm test` in order; any non-zero exit fails the gate.
47
47
  - Tests must actually exercise behavior (build plan §C) — an empty or trivially-passing suite does not
48
48
  satisfy the gate's intent.
49
+ - **Test worker cap.** When the CI job sets `YAD_TEST_MAX_WORKERS` (the templates default it to `2`)
50
+ and the repo's `test` script is jest/vitest, the gate forwards `--maxWorkers=<n>` to bound CI
51
+ concurrency. For any other runner (`node --test`, mocha, …) it is a no-op — the flag is never
52
+ passed, so the gate cannot break on an unknown option. Override it per repo via the
53
+ `YAD_TEST_MAX_WORKERS` CI variable, or unset it to remove the cap.
49
54
 
50
55
  ### Canonical `package.json` scripts (Node demo)
51
56
 
@@ -8,7 +8,19 @@ echo "[build/test/lint] lint…"
8
8
  npm run --silent lint
9
9
  echo "[build/test/lint] build…"
10
10
  npm run --silent build
11
+
12
+ # Worker cap: when YAD_TEST_MAX_WORKERS is set AND the repo's test script is jest/vitest (the
13
+ # runners that accept --maxWorkers), forward it to bound CI test concurrency. For any other runner
14
+ # (node --test, mocha, …) it is a deliberate no-op so the gate never breaks on an unknown flag.
15
+ extra=""
16
+ if [ -n "${YAD_TEST_MAX_WORKERS:-}" ]; then
17
+ case "$(npm pkg get scripts.test 2>/dev/null || true)" in
18
+ *jest*|*vitest*) extra="-- --maxWorkers=${YAD_TEST_MAX_WORKERS}" ;;
19
+ esac
20
+ fi
11
21
  echo "[build/test/lint] test…"
12
- npm run --silent test
22
+ # Intentional word-splitting: $extra is either empty or `-- --maxWorkers=N`.
23
+ # shellcheck disable=SC2086
24
+ npm run --silent test $extra
13
25
 
14
26
  echo "PASS [build/test/lint]: lint, build, and tests all green."
@@ -25,6 +25,8 @@ jobs:
25
25
 
26
26
  build-test-lint:
27
27
  runs-on: ubuntu-latest
28
+ env:
29
+ YAD_TEST_MAX_WORKERS: "2" # cap jest/vitest test workers in CI; ignored by other runners
28
30
  steps:
29
31
  - uses: actions/checkout@v4
30
32
  with: { fetch-depth: 0 }
@@ -42,6 +42,8 @@ yad-contract-check:
42
42
  yad-build-test-lint:
43
43
  extends: .sdlc_mr_only
44
44
  needs: []
45
+ variables:
46
+ YAD_TEST_MAX_WORKERS: "2" # cap jest/vitest test workers in CI; ignored by other runners
45
47
  script:
46
48
  - bash checks/build-test-lint.sh
47
49