@quickchatai/quickreview 1.3.1 → 1.3.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.
Files changed (46) hide show
  1. package/README.md +10 -11
  2. package/config.example.toml +5 -1
  3. package/dist/extensions/vendor/openviking-pi/index.js +4 -0
  4. package/dist/extensions/vendor/openviking-pi/index.js.map +1 -1
  5. package/dist/extensions/vendor/openviking-pi/qcr-hooks.js +3 -1
  6. package/dist/extensions/vendor/openviking-pi/qcr-hooks.js.map +1 -1
  7. package/dist/extensions/vendor/openviking-pi/sync.js +81 -0
  8. package/dist/extensions/vendor/openviking-pi/sync.js.map +1 -1
  9. package/dist/src/cli.js +2 -0
  10. package/dist/src/cli.js.map +1 -1
  11. package/dist/src/daemon.js +7 -4
  12. package/dist/src/daemon.js.map +1 -1
  13. package/dist/src/ledgercheck.js +39 -10
  14. package/dist/src/ledgercheck.js.map +1 -1
  15. package/dist/src/session-command-supervisor.js +38 -9
  16. package/dist/src/session-command-supervisor.js.map +1 -1
  17. package/dist/src/state.js +73 -9
  18. package/dist/src/state.js.map +1 -1
  19. package/dist/src/tui/alerts.js +4 -1
  20. package/dist/src/tui/alerts.js.map +1 -1
  21. package/dist/src/tui/board.js +1 -1
  22. package/dist/src/tui/board.js.map +1 -1
  23. package/dist/src/verdicts.js +12 -0
  24. package/dist/src/verdicts.js.map +1 -1
  25. package/dist/src/wire.js +3 -2
  26. package/dist/src/wire.js.map +1 -1
  27. package/dist/src/workerbreaker.js +32 -5
  28. package/dist/src/workerbreaker.js.map +1 -1
  29. package/extensions/vendor/openviking-pi/NOTICE +5 -0
  30. package/extensions/vendor/openviking-pi/README.md +39 -5
  31. package/extensions/vendor/openviking-pi/index.ts +4 -0
  32. package/extensions/vendor/openviking-pi/patches/0014-one-turn-sync-in-flight.patch +239 -0
  33. package/extensions/vendor/openviking-pi/qcr-hooks.ts +3 -1
  34. package/extensions/vendor/openviking-pi/sync.ts +80 -0
  35. package/extensions/vendor/openviking-pi/upstream.json +2 -1
  36. package/package.json +2 -2
  37. package/src/cli.ts +2 -0
  38. package/src/daemon.ts +8 -4
  39. package/src/ledgercheck.ts +45 -9
  40. package/src/session-command-supervisor.ts +41 -8
  41. package/src/state.ts +101 -11
  42. package/src/tui/alerts.ts +9 -2
  43. package/src/tui/board.ts +1 -1
  44. package/src/verdicts.ts +13 -0
  45. package/src/wire.ts +3 -2
  46. package/src/workerbreaker.ts +41 -5
@@ -11,8 +11,14 @@
11
11
  // its ledger — no review work, no posting, no verdict file. A second stale
12
12
  // detection for the same round never nudges again: it logs
13
13
  // `ledger_stale_unresolved`, the grade that wakes the overseer (the session
14
- // ignored its one nudge). The once-mark is persisted BEFORE the inject, so
15
- // even a crashed inject can never turn into a nudge loop.
14
+ // ignored its one nudge), once per nudge key; later checks at the same key
15
+ // are a quiet `ledger_stale_repeat` event. The once-mark is persisted BEFORE
16
+ // the inject, so even a crashed inject can never turn into a nudge loop.
17
+ //
18
+ // A recheck uphold (round-less) updates the ledger only "if the delta settled
19
+ // or re-opened a finding" (prompts/round-recheck.md), so on that path a header
20
+ // naming the head the PR was last reviewed at, or a head a recheck upheld
21
+ // since, is fresh too.
16
22
  import { readFileSync } from "node:fs";
17
23
  import { wakeOrHold } from "./wakes.js";
18
24
  /** The mirrored snapshot's header (see packages/pi-plugin/extensions/ledger-pin.ts LEDGER_RE):
@@ -26,7 +32,7 @@ const MIN_SHA_PREFIX = 7;
26
32
  * means the file was missing/unreadable. Anything but "fresh" is enforced
27
33
  * identically (anomaly + capped nudge) — the distinction is for the record.
28
34
  */
29
- export function classifyLedger(content, pr, headSha) {
35
+ export function classifyLedger(content, pr, headSha, alsoFresh = []) {
30
36
  if (content === null)
31
37
  return "missing";
32
38
  const match = LEDGER_HEADER_RE.exec(content);
@@ -35,9 +41,24 @@ export function classifyLedger(content, pr, headSha) {
35
41
  if (Number(match[1]) !== pr)
36
42
  return "wrong_pr";
37
43
  const written = match[2].toLowerCase();
38
- const head = headSha.toLowerCase();
39
- const fresh = written === head || (written.length >= MIN_SHA_PREFIX && head.startsWith(written));
40
- return fresh ? "fresh" : "stale_sha";
44
+ const names = (sha) => {
45
+ const head = sha.toLowerCase();
46
+ return written === head || (written.length >= MIN_SHA_PREFIX && head.startsWith(written));
47
+ };
48
+ return names(headSha) || alsoFresh.some(names) ? "fresh" : "stale_sha";
49
+ }
50
+ /** The heads a recheck uphold may find in the header besides its own: the head
51
+ * of the PR's last verdicted round and every head a recheck upheld since. */
52
+ export function upheldLedgerHeads(store, pr) {
53
+ const reviewed = store
54
+ .roundsFor(pr)
55
+ .filter((r) => r.verdict !== null)
56
+ .sort((a, b) => b.round_no - a.round_no)[0];
57
+ const since = reviewed ? (reviewed.finished_at ?? reviewed.started_at) : null;
58
+ return [
59
+ ...(reviewed?.head_sha ? [reviewed.head_sha] : []),
60
+ ...store.recheckUpheldHeads(pr, since),
61
+ ];
41
62
  }
42
63
  /** The re-nudge wake. Explicitly bookkeeping-only: the rewrite arrives
43
64
  * OUTSIDE a round, and the session must not mistake it for review work. */
@@ -69,7 +90,7 @@ export async function enforceLedgerFreshness(deps, target) {
69
90
  catch {
70
91
  content = null;
71
92
  }
72
- const freshness = classifyLedger(content, pr, headSha);
93
+ const freshness = classifyLedger(content, pr, headSha, roundNo === null ? upheldLedgerHeads(store, pr) : []);
73
94
  if (freshness === "fresh")
74
95
  return "fresh";
75
96
  const detail = `ledger ${freshness} at ${path}: expected header "LEDGER PR #${pr} @ ${headSha}"`;
@@ -107,9 +128,17 @@ export async function enforceLedgerFreshness(deps, target) {
107
128
  if (store.ledgerNudgeSent(pr, key)) {
108
129
  // Still stale AFTER the re-nudge: the session ignored its one nudge —
109
130
  // this grade WAKES the overseer (the severity map in src/anomalies.ts), first-detection
110
- // "ledger_stale" stays quiet (the nudge itself is the response).
111
- store.logAnomaly("ledger_stale_unresolved", pr, roundNo, detail);
112
- store.logEvent("ledger_stale_repeat", pr, { round_no: roundNo, head_sha: headSha, freshness });
131
+ // "ledger_stale" stays quiet (the nudge itself is the response). Raised
132
+ // once per key: a later check at the same key has no new nudge to give,
133
+ // so it is the quiet repeat event alone.
134
+ if (!store.ledgerRepeatSeen(pr, key))
135
+ store.logAnomaly("ledger_stale_unresolved", pr, roundNo, detail);
136
+ store.logEvent("ledger_stale_repeat", pr, {
137
+ key,
138
+ round_no: roundNo,
139
+ head_sha: headSha,
140
+ freshness,
141
+ });
113
142
  return "already_nudged";
114
143
  }
115
144
  store.logAnomaly("ledger_stale", pr, roundNo, detail);
@@ -1 +1 @@
1
- {"version":3,"file":"ledgercheck.js","sourceRoot":"","sources":["../../src/ledgercheck.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledgercheck.js","sourceRoot":"","sources":["../../src/ledgercheck.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  // scheduler. Delivery remains inject-bridge-owned; round recovery remains the
5
5
  // VerdictWatcher's existing self-requeue path. The supervisor only classifies
6
6
  // finite start/finish obligations from durable command state + JSONL receipts.
7
- import { roundStageDeadlines } from "@quickchatai/pi-quickreview/src/round-stage-deadlines.js";
7
+ import { discoveryRowsOf, roundStageAllowanceMin, roundStageDeadlines, } from "@quickchatai/pi-quickreview/src/round-stage-deadlines.js";
8
8
  import { existsSync } from "node:fs";
9
9
  import { join } from "node:path";
10
10
  import { DEFAULT_MAX_PROMPT_REDELIVERIES, DEFAULT_ROUND_FINALIZE_GRACE_MIN, DEFAULT_ROUND_FIRST_PASS_MAX_MIN, DEFAULT_ROUND_PASSES_MAX_MIN, DEFAULT_ROUND_STAGE_SUPERVISOR_STALE_S, DEFAULT_SESSION_COMMAND_MAX_START_RETRIES, DEFAULT_SESSION_COMMAND_RUNNING_MAX_MIN, DEFAULT_SESSION_COMMAND_UNKNOWN_GRACE_S, DEFAULT_FOLLOW_UP_SWEEP_EXTRA_MIN, resolveRoundStageBounds, } from "./config.js";
@@ -503,9 +503,10 @@ export class SessionCommandSupervisor {
503
503
  const now = this.now().getTime();
504
504
  const minute = 60_000;
505
505
  const sweepOwed = round.sweep_owed === 1;
506
+ const discoveryRows = discoveryRowsOf(round);
506
507
  const passesMaxMin = (this.deps.cfg.daemon.round_passes_max_min ?? DEFAULT_ROUND_PASSES_MAX_MIN) +
507
- (sweepOwed ? this.sweepExtraMin() : 0);
508
- const deadlines = roundStageDeadlines(started, resolveRoundStageBounds(this.deps.cfg.daemon), sweepOwed);
508
+ roundStageAllowanceMin({ sweepOwed, sweepExtraMin: this.sweepExtraMin(), discoveryRows });
509
+ const deadlines = roundStageDeadlines(started, resolveRoundStageBounds(this.deps.cfg.daemon), sweepOwed, discoveryRows);
509
510
  const firstPassAt = deadlines.first_pass_start;
510
511
  const passesAt = deadlines.passes_complete;
511
512
  const hardAt = deadlines.running_hard_bound;
@@ -515,9 +516,10 @@ export class SessionCommandSupervisor {
515
516
  .filter(Boolean);
516
517
  // The extension's generic subagent milestone is descriptive only. The
517
518
  // finite gate opens solely when exact correlated progress names one of the
518
- // authoritative planned DISCOVERY lenses — validator-first, an added lens
519
- // or a foreign tool cannot buy a later failure class.
520
- const fanoutAgents = plannedFanoutAgents(progress, planned);
519
+ // DISCOVERY lenses the daemon dispatched — the planned ones or the round's
520
+ // optional rows. Validator-first, a lens added through the add protocol or
521
+ // a foreign tool cannot buy a later failure class.
522
+ const fanoutAgents = plannedFanoutAgents(progress, [...planned, ...optionalRowLenses(round)]);
521
523
  const plannedFanout = fanoutAgents.length > 0;
522
524
  if (plannedFanout) {
523
525
  const firstStarted = fanoutAgents.map((agent) => agent.started_at).sort()[0];
@@ -677,8 +679,9 @@ export class SessionCommandSupervisor {
677
679
  return this.deps.cfg.daemon.follow_up_sweep_extra_min ?? DEFAULT_FOLLOW_UP_SWEEP_EXTRA_MIN;
678
680
  }
679
681
  /** The command's fixed running cap in minutes: the configured bound, plus
680
- * the sweep allowance when it carries a round whose pre-approval sweep is
681
- * owed. Derived from the round ROW, never from progress. */
682
+ * the round's stage allowance (the pre-approval sweep's when it is owed, or
683
+ * a large plan's, whichever is larger). Derived from the round ROW, never
684
+ * from progress. */
682
685
  runningMaxMin(command, round) {
683
686
  const base = this.deps.cfg.daemon.session_command_running_max_min ??
684
687
  DEFAULT_SESSION_COMMAND_RUNNING_MAX_MIN;
@@ -686,7 +689,14 @@ export class SessionCommandSupervisor {
686
689
  return base;
687
690
  const row = round ??
688
691
  this.deps.store.roundsFor(command.pr).find((item) => item.round_no === command.round_no);
689
- return row?.sweep_owed === 1 ? base + this.sweepExtraMin() : base;
692
+ if (!row)
693
+ return base;
694
+ return (base +
695
+ roundStageAllowanceMin({
696
+ sweepOwed: row.sweep_owed === 1,
697
+ sweepExtraMin: this.sweepExtraMin(),
698
+ discoveryRows: discoveryRowsOf(row),
699
+ }));
690
700
  }
691
701
  /** The fixed running deadline (epoch ms) of a command whose run began at
692
702
  * `origin`: the origin plus `runningMaxMin`. */
@@ -915,6 +925,25 @@ function firstExecutionPerLens(agents) {
915
925
  }
916
926
  return first;
917
927
  }
928
+ /** The lenses of the optional rows the daemon dispatched with the round (the
929
+ * addable record's `optional` entries); a lens offered for the add protocol
930
+ * is not one. */
931
+ function optionalRowLenses(round) {
932
+ if (!round.addable_passes)
933
+ return [];
934
+ try {
935
+ const rows = JSON.parse(round.addable_passes);
936
+ if (!Array.isArray(rows))
937
+ return [];
938
+ return rows
939
+ .filter((row) => row?.optional === true)
940
+ .map((row) => row.lens)
941
+ .filter((lens) => typeof lens === "string");
942
+ }
943
+ catch {
944
+ return [];
945
+ }
946
+ }
918
947
  /** Plan rows per lens name from the round's recorded `pass_plan`; empty when
919
948
  * it is absent or unreadable (every lens then owes one execution). */
920
949
  function plannedRowCounts(round) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-command-supervisor.js","sourceRoot":"","sources":["../../src/session-command-supervisor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-command-supervisor.js","sourceRoot":"","sources":["../../src/session-command-supervisor.ts"],"names":[],"mappings":"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"}
package/dist/src/state.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // Core tables: pr_state, rounds, bot_comments (registry), deliveries
3
3
  // (webhook dedupe), events (append log).
4
4
  import { findingRowFields } from "@quickchatai/pi-quickreview/src/finding-row.js";
5
- import { roundStageDeadlines } from "@quickchatai/pi-quickreview/src/round-stage-deadlines.js";
5
+ import { discoveryRowsOf, roundStageDeadlines, } from "@quickchatai/pi-quickreview/src/round-stage-deadlines.js";
6
6
  import Database from "better-sqlite3";
7
7
  import { chmodSync, mkdirSync, renameSync, writeFileSync } from "node:fs";
8
8
  import { dirname, join } from "node:path";
@@ -598,7 +598,8 @@ CREATE TABLE IF NOT EXISTS drain_state (
598
598
  -- with parked_at set gets no worker until the operator's rerun-round or
599
599
  -- restart-session clears the row. worker_breaker_global.epoch ticks at every
600
600
  -- worker success (and at the lift of the breaker's drain); a failure counts
601
- -- toward the global drain only while it carries the current epoch.
601
+ -- toward the global drain only while it carries the current epoch. trips
602
+ -- counts the breaker's drains since then: each waits twice as long to lapse.
602
603
  CREATE TABLE IF NOT EXISTS worker_breaker (
603
604
  pr INTEGER PRIMARY KEY,
604
605
  failures INTEGER NOT NULL DEFAULT 0,
@@ -612,6 +613,7 @@ CREATE TABLE IF NOT EXISTS worker_breaker (
612
613
  CREATE TABLE IF NOT EXISTS worker_breaker_global (
613
614
  id INTEGER PRIMARY KEY CHECK (id = 1),
614
615
  epoch INTEGER NOT NULL DEFAULT 0,
616
+ trips INTEGER NOT NULL DEFAULT 0,
615
617
  updated_at TEXT NOT NULL
616
618
  );
617
619
  -- The host lease: who holds a PR's session while the operator works
@@ -1109,6 +1111,7 @@ export class StateStore {
1109
1111
  this.db.exec("CREATE INDEX IF NOT EXISTS bot_comments_id ON bot_comments(comment_id)");
1110
1112
  this.migrateRecheckReceipts();
1111
1113
  this.migrateDrainHold();
1114
+ this.migrateBreakerHeal();
1112
1115
  this.migrateSessionCommandCancelledStatus();
1113
1116
  this.runDataMigrations();
1114
1117
  }
@@ -1208,6 +1211,30 @@ export class StateStore {
1208
1211
  this.logEvent("drain_hold_carried", null, {});
1209
1212
  })();
1210
1213
  }
1214
+ /**
1215
+ * The breaker's drain lapses on its own (src/workerbreaker.ts). One an older
1216
+ * daemon set stands with no expiry, and only `drain off` would lift it: the
1217
+ * boot that adds the `trips` column gives it an expiry of now, so the first
1218
+ * sweep lifts it and the queue retries, with the failures that tripped it
1219
+ * spent. Only the breaker's drain is carried
1220
+ * (its reason, no hold); a hand-set drain stands as it was set.
1221
+ */
1222
+ migrateBreakerHeal() {
1223
+ this.db.transaction(() => {
1224
+ if (!this.addColumn("ALTER TABLE worker_breaker_global ADD COLUMN trips INTEGER NOT NULL DEFAULT 0"))
1225
+ return;
1226
+ const info = this.db
1227
+ .prepare(`UPDATE drain_state SET expires_at = ?
1228
+ WHERE id = 1 AND draining = 1 AND reason = ? AND expires_at IS NULL AND hold = 0`)
1229
+ .run(this.ts(), WORKER_FAILURES_DRAIN_REASON);
1230
+ if (info.changes > 0) {
1231
+ // The failures that tripped it are spent, as at a new trip: a retry
1232
+ // failing once more must not re-drain with them.
1233
+ this.resetWorkerFailureWindow();
1234
+ this.logEvent("breaker_drain_heal_carried", null, {});
1235
+ }
1236
+ })();
1237
+ }
1211
1238
  /** Existing databases carry a CHECK constraint that predates operator
1212
1239
  * cancellation. Rebuild this one table in-place; every column and index is
1213
1240
  * copied, and the transaction makes the old or new shape visible atomically. */
@@ -4840,7 +4867,9 @@ export class StateStore {
4840
4867
  * One more consecutive worker failure for `pr`. The PR is parked when the count
4841
4868
  * reaches `parkAfter`; `parked` says whether it stands parked now and
4842
4869
  * `newlyParked` whether THIS failure parked it (the caller raises the anomaly
4843
- * once).
4870
+ * once). With `drain: false` it does not count toward the global drain: its
4871
+ * epoch is one no window ever carries, so `failedWorkerPrsSince` never lists
4872
+ * it. With `park: false` it counts but does not park the PR by itself.
4844
4873
  */
4845
4874
  recordWorkerFailure(pr, o) {
4846
4875
  return this.db
@@ -4848,7 +4877,11 @@ export class StateStore {
4848
4877
  const row = this.workerBreaker(pr);
4849
4878
  const failures = (row?.failures ?? 0) + 1;
4850
4879
  const wasParked = row?.parked_at != null;
4851
- const parkedAt = wasParked ? row.parked_at : failures >= o.parkAfter ? o.at : null;
4880
+ const parkedAt = wasParked
4881
+ ? row.parked_at
4882
+ : o.park !== false && failures >= o.parkAfter
4883
+ ? o.at
4884
+ : null;
4852
4885
  this.db
4853
4886
  .prepare(`INSERT INTO worker_breaker (pr, failures, parked_at, last_error, last_failure_at, last_command_id, failure_epoch, updated_at)
4854
4887
  VALUES (@pr, @failures, @parked, @error, @at, @command, @epoch, @at)
@@ -4861,7 +4894,7 @@ export class StateStore {
4861
4894
  error: o.error,
4862
4895
  at: o.at,
4863
4896
  command: o.commandId,
4864
- epoch: this.workerEpoch(),
4897
+ epoch: o.drain === false ? -1 : this.workerEpoch(),
4865
4898
  });
4866
4899
  return {
4867
4900
  failures,
@@ -4897,11 +4930,25 @@ export class StateStore {
4897
4930
  const row = this.db.prepare("SELECT epoch FROM worker_breaker_global WHERE id = 1").get();
4898
4931
  return row?.epoch ?? 0;
4899
4932
  }
4900
- /** Start the global failure window afresh: earlier failures stop counting. */
4933
+ /** Start the global failure window afresh: earlier failures stop counting,
4934
+ * and the breaker's next drain waits the shortest time again. */
4901
4935
  resetWorkerFailureWindow() {
4902
4936
  this.db
4903
- .prepare(`INSERT INTO worker_breaker_global (id, epoch, updated_at) VALUES (1, 1, @ts)
4904
- ON CONFLICT(id) DO UPDATE SET epoch = epoch + 1, updated_at = @ts`)
4937
+ .prepare(`INSERT INTO worker_breaker_global (id, epoch, trips, updated_at) VALUES (1, 1, 0, @ts)
4938
+ ON CONFLICT(id) DO UPDATE SET epoch = epoch + 1, trips = 0, updated_at = @ts`)
4939
+ .run({ ts: this.ts() });
4940
+ }
4941
+ /** The breaker's drains since the last worker success or operator lift. */
4942
+ workerBreakerTrips() {
4943
+ const row = this.db.prepare("SELECT trips FROM worker_breaker_global WHERE id = 1").get();
4944
+ return row?.trips ?? 0;
4945
+ }
4946
+ /** The breaker drained once more: the failures that tripped it are spent (a
4947
+ * new epoch), and its next drain waits longer. */
4948
+ recordWorkerBreakerTrip() {
4949
+ this.db
4950
+ .prepare(`INSERT INTO worker_breaker_global (id, epoch, trips, updated_at) VALUES (1, 1, 1, @ts)
4951
+ ON CONFLICT(id) DO UPDATE SET epoch = epoch + 1, trips = trips + 1, updated_at = @ts`)
4905
4952
  .run({ ts: this.ts() });
4906
4953
  }
4907
4954
  /** Charge a session grant to `day`'s budget. `pr` is null for a drain. */
@@ -5084,6 +5131,23 @@ export class StateStore {
5084
5131
  .all(pr);
5085
5132
  return someMarkHasKey(rows, key);
5086
5133
  }
5134
+ /** Has a check after this (pr, key)'s spent nudge already been recorded? */
5135
+ ledgerRepeatSeen(pr, key) {
5136
+ const rows = this.db
5137
+ .prepare("SELECT payload FROM events WHERE kind = 'ledger_stale_repeat' AND pr = ?")
5138
+ .all(pr);
5139
+ return someMarkHasKey(rows, key);
5140
+ }
5141
+ /** The heads a recheck upheld on `pr` at or after `since` (every one when null). */
5142
+ recheckUpheldHeads(pr, since) {
5143
+ const rows = this.db
5144
+ .prepare("SELECT payload FROM events WHERE kind = 'recheck_upheld' AND pr = ? AND ts >= ?")
5145
+ .all(pr, since ?? "");
5146
+ // An unreadable mark names no head.
5147
+ return rows
5148
+ .map((r) => readStringField(r.payload, "head_sha"))
5149
+ .filter((head) => head !== undefined && head !== "");
5150
+ }
5087
5151
  /**
5088
5152
  * What the event log says about the migration-collision COMMENT with this
5089
5153
  * fingerprint on this PR (the collision comment's dedupe). Scans every such event for the
@@ -5762,7 +5826,7 @@ export function buildStatusSnapshot(store, dryRun, digestHeadline, now = () => n
5762
5826
  const started = Date.parse(command.started_at);
5763
5827
  if (!Number.isFinite(started))
5764
5828
  return identity;
5765
- const deadlines = roundStageDeadlines(started, roundStageBounds, round.sweep_owed === 1);
5829
+ const deadlines = roundStageDeadlines(started, roundStageBounds, round.sweep_owed === 1, discoveryRowsOf(round));
5766
5830
  return {
5767
5831
  ...identity,
5768
5832
  stage_deadlines: {