limn-review 0.1.173 → 0.1.174
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.
|
@@ -349,13 +349,19 @@ async function startAutoItem(a) {
|
|
|
349
349
|
const detect = preflightFor(ctx);
|
|
350
350
|
const nowMs = Date.now();
|
|
351
351
|
const wantsPair = (await readAutoReviewProvidersForPr(ctx, accountId, prId)) === 'both';
|
|
352
|
-
|
|
352
|
+
// ⚠ A PAIR drops a locked half EVEN ON A PRESS while the other half can run: that half would
|
|
353
|
+
// fail at once (2026-11-03: six pressed Codex halves over the limit, nothing reviewed). Only when
|
|
354
|
+
// every provider is locked does a press run anyway (the reader's choice).
|
|
355
|
+
const pick = (lockedOk) => automaticRunProviders({
|
|
353
356
|
defaultProvider: activeProviderId(),
|
|
354
357
|
pair: wantsPair,
|
|
355
358
|
order: PAIR_ORDER,
|
|
356
359
|
ready: (p) => detect(p, 'review').status === 'ok',
|
|
357
|
-
locked: (p) => !
|
|
360
|
+
locked: (p) => !lockedOk && isLockedOut(p, nowMs),
|
|
358
361
|
});
|
|
362
|
+
let providers = pick(a.pressed === true && !wantsPair);
|
|
363
|
+
if (providers.length === 0 && a.pressed)
|
|
364
|
+
providers = pick(true);
|
|
359
365
|
if (providers.length === 0) {
|
|
360
366
|
ctx.log.info(`auto claude review pr ${prId}: skipped — no provider outside its usage limit`);
|
|
361
367
|
return;
|
|
@@ -43,13 +43,17 @@ export function releasedLine(login, by) {
|
|
|
43
43
|
// A FREE line: a success starting "Cleared by " (a Clear, a release of ours or of a teammate's expired
|
|
44
44
|
// line), a success "free to claim" or "Released:" (a 2026-10-28 build's wording), or a pending "free to
|
|
45
45
|
// claim" (older Limn versions).
|
|
46
|
+
// A teammate's review KEPT IN LIMN put nothing on GitHub: the team got nothing from it, so it holds
|
|
47
|
+
// nothing (2026-11-03 — robin-dunn's kept-in-Limn Claude reviews held six PRs, the pair fell back to a
|
|
48
|
+
// Codex over its usage limit, and nobody got a review).
|
|
49
|
+
const KEPT_PHRASE = ' reviewed · kept in Limn';
|
|
46
50
|
const isFreeLine = (l) => {
|
|
47
51
|
const d = l.description ?? '';
|
|
48
52
|
if (l.state === 'pending')
|
|
49
53
|
return d.includes(FREE_PHRASE);
|
|
50
54
|
if (l.state !== 'success')
|
|
51
55
|
return false;
|
|
52
|
-
return d.includes(FREE_PHRASE) || d.startsWith(CLEARED_PREFIX) || d.startsWith(RELEASED_PREFIX);
|
|
56
|
+
return d.includes(FREE_PHRASE) || d.startsWith(CLEARED_PREFIX) || d.startsWith(RELEASED_PREFIX) || d.endsWith(KEPT_PHRASE);
|
|
53
57
|
};
|
|
54
58
|
const settles = (l) => l.state !== 'pending' || isFreeLine(l);
|
|
55
59
|
const sameLogin = (a, b) => a != null && b != null && a.toLowerCase() === b.toLowerCase();
|
package/package.json
CHANGED