@ai-dossier/sched 0.7.0 → 0.7.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"bisect.d.ts","sourceRoot":"","sources":["../src/bisect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAuC,MAAM,eAAe,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,mCAAmC;AACnC,MAAM,MAAM,aAAa;AACvB,yEAAyE;AACvE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACnD,yFAAyF;GACvF;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE;AACnB,0FAA0F;GACxF;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACzD,gFAAgF;GAC9E;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,uFAAuF;IACvF,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAKD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,aAAa,CAuGrF"}
1
+ {"version":3,"file":"bisect.d.ts","sourceRoot":"","sources":["../src/bisect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAuC,MAAM,eAAe,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,mCAAmC;AACnC,MAAM,MAAM,aAAa;AACvB,yEAAyE;AACvE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACnD,yFAAyF;GACvF;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE;AACnB,0FAA0F;GACxF;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACzD,gFAAgF;GAC9E;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,uFAAuF;IACvF,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,aAAa,CAuGrF"}
package/dist/bisect.js CHANGED
@@ -13,8 +13,6 @@
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.runAttributionBisect = runAttributionBisect;
15
15
  const attribution_1 = require("./attribution");
16
- /** `<sha> is the first bad commit` — the line every git version prints on success. */
17
- const FIRST_BAD_RE = /^([0-9a-f]{7,40}) is the first bad commit/im;
18
16
  /**
19
17
  * Bisect the batch branch for the commit that broke `testCommand`.
20
18
  *
@@ -79,19 +77,20 @@ function runAttributionBisect(exec, opts) {
79
77
  detail: `git bisect start failed (is ${opts.good} an ancestor of ${opts.bad}?)`,
80
78
  };
81
79
  }
82
- const out = git(['bisect', 'run', ...opts.testCommand]);
83
- if (out === null) {
80
+ if (git(['bisect', 'run', ...opts.testCommand]) === null) {
84
81
  return { kind: 'error', detail: 'git bisect run failed' };
85
82
  }
86
83
  // Ask git for the answer rather than reading its prose: a completed bisect
87
- // leaves `refs/bisect/bad` pointing at the first bad commit. The
88
- // "<sha> is the first bad commit" line is printed on stdout by some git
89
- // versions and stderr by others, so parsing it alone makes the result
90
- // depend on which git the machine happens to have it stays only as the
91
- // fallback for a git that somehow leaves no ref.
92
- const sha = git(['rev-parse', '--verify', '--quiet', 'refs/bisect/bad'])?.trim() ??
93
- FIRST_BAD_RE.exec(out)?.[1] ??
94
- '';
84
+ // leaves `refs/bisect/bad` pointing at the first bad commit — set by git's
85
+ // own bisect algorithm from the test command's EXIT CODE alone, never from
86
+ // anything the command prints. There is deliberately no fallback that
87
+ // parses `git bisect run`'s captured output: that stream interleaves git's
88
+ // own lines with the failing test command's stdout, so a member-authored
89
+ // test could forge an "<sha> is the first bad commit" line naming another
90
+ // member's real commit to shift blame (#503). Every supported git writes
91
+ // this ref, and the module's contract is "no answer is an error, never a
92
+ // guess" — so no ref means no answer, not a guess from prose.
93
+ const sha = git(['rev-parse', '--verify', '--quiet', 'refs/bisect/bad'])?.trim() ?? '';
95
94
  if (!attribution_1.SHA_RE.test(sha)) {
96
95
  // No answer is an error, never a guess.
97
96
  return { kind: 'error', detail: 'git bisect run identified no first-bad commit' };
@@ -1 +1 @@
1
- {"version":3,"file":"bisect.js","sourceRoot":"","sources":["../src/bisect.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAiDH,oDAuGC;AAtJD,+CAAyF;AAqCzF,sFAAsF;AACtF,MAAM,YAAY,GAAG,6CAA6C,CAAC;AAEnE;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,IAAY,EAAE,IAAmB;IACpE,yEAAyE;IACzE,oEAAoE;IACpE,oDAAoD;IACpD,IAAI,CAAC,oBAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,kCAAkC,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAClG,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC;IACnE,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,IAAc,EAAiB,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,GAAkB,EAAE,CACnC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAE1E,6EAA6E;IAC7E,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,kDAAkD;IAClD,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,MAAM,OAAO,GACX,WAAW,KAAK,IAAI,IAAI,yBAAW,CAAC,IAAI,CAAC,WAAW,CAAC;QACnD,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC;QAC3B,CAAC,CAAC,WAAW,KAAK,IAAI,IAAI,oBAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChD,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC;IACb,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAC;IACtF,CAAC;IAED,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC;QACH,4EAA4E;QAC5E,4CAA4C;QAC5C,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACrD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,+BAA+B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC9E,CAAC;QACD,IAAI,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,uEAAuE;QACvE,2EAA2E;QAC3E,sEAAsE;QACtE,oEAAoE;QACpE,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,gCAAgC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAChF,CAAC;QACD,IAAI,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,+CAA+C,IAAI,CAAC,IAAI,0GAA0G;aAC3K,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3D,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,+BAA+B,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC,GAAG,IAAI;aAChF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACxD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;QAC5D,CAAC;QACD,2EAA2E;QAC3E,iEAAiE;QACjE,wEAAwE;QACxE,sEAAsE;QACtE,yEAAyE;QACzE,iDAAiD;QACjD,MAAM,GAAG,GACP,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE;YACpE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3B,EAAE,CAAC;QACL,IAAI,CAAC,oBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,wCAAwC;YACxC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,+CAA+C,EAAE,CAAC;QACpF,CAAC;QACD,MAAM,KAAK,GAAG,IAAA,4BAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO;gBACL,IAAI,EAAE,gBAAgB;gBACtB,GAAG;gBACH,MAAM,EAAE,oBAAoB,GAAG,iCAAiC;aACjE,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC3C,CAAC;YAAS,CAAC;QACT,yEAAyE;QACzE,2EAA2E;QAC3E,wEAAwE;QACxE,qEAAqE;QACrE,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,EAAE,CAAC,+DAA+D,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"bisect.js","sourceRoot":"","sources":["../src/bisect.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-dossier/sched",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Deterministic scheduler core for dossier batch cycles — queue, slots, persistent state machine, dispatch engine with completion verification and stall/escalation ladder, PR watching with script-based teardown, and batch failure recovery (attribution, bisect, eviction, dissolve). The scheduler never invokes an LLM.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",