@biffo/cli 0.278.1 → 0.278.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@biffo/cli",
3
- "version": "0.278.1",
3
+ "version": "0.278.2",
4
4
  "description": "Biffo project scaffolding CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -997,6 +997,52 @@ export const RACE_THRESHOLD_MINUTES = 10
997
997
  * just before the window opened is not in `prs` to be counted. The bias is
998
998
  * one-directional and toward zero, so a rise is always real.
999
999
  *
1000
+ * ## `racedShare` is not portable across repos with different CI speed (#1419)
1001
+ *
1002
+ * `RACE_THRESHOLD_MINUTES` is an **absolute** 10 minutes, the same number for
1003
+ * every repo regardless of how long that repo's own CI takes to reach green.
1004
+ * That makes the threshold a function of pipeline latency as much as of
1005
+ * contention: a repo whose median time-to-green already exceeds 10 minutes
1006
+ * crosses `racedShare`'s numerator condition on wait time alone, before any
1007
+ * question of whether `dev` moved underneath it.
1008
+ *
1009
+ * Measured live 2026-08-12, four repos, 7-day window, `strict: false` on
1010
+ * three of the four (the fourth, `biffo-plugin-idea-scout`, `true`):
1011
+ *
1012
+ * | repo | runner | `greenToMergeP50Minutes` | `repushRate` | `racedShare` | `staleMergeShare` |
1013
+ * | --- | --- | ---: | ---: | ---: | ---: |
1014
+ * | `biffo-template` | hosted | 4.1 | 15.0% | 12.6% | 18.1% |
1015
+ * | `biffo-platform` | hosted | 4.4 | 12.5% | 12.5% | 0% |
1016
+ * | `biffo-plugin-idea-scout` | hosted | 7.3 | 46.2% | 23.1% | 0% |
1017
+ * | `tabsii-platform` | **self-hosted, spot** | **14.7** | **42.7%** | **41.3%** | 7.3% |
1018
+ *
1019
+ * `tabsii-platform` is the only repo of the four on self-hosted (spot) runner
1020
+ * capacity, and its median green-to-merge lag (14.7min) already clears the
1021
+ * fixed 10-minute threshold by itself — consistent with the runner-queueing
1022
+ * cost recorded elsewhere in this estate for that fleet. `racedShare` tracks
1023
+ * `repushRate` far more tightly across this table than it tracks `strict`
1024
+ * (three of the four rows are `strict: false` and still span 12.5%–41.3%),
1025
+ * which reconfirms H4's amendment to H3: *"`racedShare` counts PRs that sat
1026
+ * green over ten minutes and were repushed. It is arithmetically a function of
1027
+ * how many times you push."*
1028
+ *
1029
+ * The clincher against reading `racedShare` as *this repo has more genuine
1030
+ * integration contention*: `staleMergeShare` — the metric that actually
1031
+ * detects whether `dev` moved between a PR's last green run and its merge —
1032
+ * is **lower** at `tabsii-platform` (7.3%) than at `biffo-template` (18.1%).
1033
+ * If `tabsii-platform`'s elevated `racedShare` reflected more real racing
1034
+ * against a moving `dev`, `staleMergeShare` should read higher there too, not
1035
+ * lower. It does not, so the elevated reading is better read as this repo's
1036
+ * own CI/runner latency and repush volume crossing an absolute threshold, not
1037
+ * as more contention.
1038
+ *
1039
+ * **Practical consequence: never read `racedShare` as a bare cross-repo
1040
+ * defect rate.** Read it beside `greenToMergeP50Minutes` (this repo's own
1041
+ * pipeline speed relative to the fixed threshold) and `repushRate` (the
1042
+ * arithmetic driver), and treat `staleMergeShare` as the tie-breaker when the
1043
+ * two disagree about whether a high `racedShare` is genuine contention. The
1044
+ * dashboard's tooltip on this cell carries the same note.
1045
+ *
1000
1046
  * @param {Array<{createdAt: string, mergedAt: string | null, headRefName: string, baseRefName?: string}>} prs
1001
1047
  * @param {Map<string, Array<Record<string, unknown>>>} runsByBranch
1002
1048
  */