@hmharness/evolution 0.14.11 → 0.14.12

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.
@@ -146,7 +146,13 @@ export function exportDpoPairs(labels, insights, taskOf, answerOf, opts = {}) {
146
146
  for (const b of rows) {
147
147
  if (a.session >= b.session)
148
148
  continue;
149
- const gap = a.y - b.y;
149
+ // round: 3/5 - 1/5 = 0.39999999999999997 in floats, and the epsilon
150
+ // silently ate every 2-step in-bucket pair (★1 vs ★3) - the judge's
151
+ // whole variance band
152
+ // abs: rows iterate in label-file order - the lower score can come first
153
+ // (judge labels do), which made a.y - b.y negative and silently dropped
154
+ // the pair; rounding kills the 3/5-1/5 float epsilon
155
+ const gap = Math.round(Math.abs(a.y - b.y) * 1000) / 1000;
150
156
  if (gap < minGap)
151
157
  continue;
152
158
  const hi = gap > 0 ? a : b;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hmharness/evolution",
3
- "version": "0.14.11",
3
+ "version": "0.14.12",
4
4
  "description": "hmharness evolution subsystem: persistent memory, insight capture, skill library, and the bench that gives evolution its fitness signal. First-class kernel citizen, not a plugin.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",