LibreChat/api/server
Danny Avila 8a0efa95d0 fix: Codex round — deletion/lease window, resume self-capacity, abort-as-aborted, weekly label
Address all 6 findings from Codex review of 912d75bff:

- Exclude the resumed run from capacity checks (P2): reserveScheduledResume discounts
  this occurrence's own started row (isOccurrenceStarted) so a self-active row (from a
  transient pause-bookkeeping failure) doesn't push the global count over the cap and
  block resuming the same occurrence.

- Preserve the lease marker while deleting (P2): markScheduleDeleting no longer unsets
  leaseUntil/leaseBy, so a fire that already reserved a started row can prove
  (holdsLease) it still owns the lease and roll back its own unposted row instead of
  leaving a ghost.

- Treat a live lease as undrained (P2): eraseScheduleIfDrained also refuses to erase
  while a LIVE lease is held (a worker claimed but hasn't reserved yet), so it can't
  erase out from under a worker about to insert a reservation.

- Release own lease after owner-edit supersedes fire (P2): the superseded rollback path
  now releaseLeaseByHolder(leaseBy) since advance() is token-fenced and no-ops after an
  edit — otherwise the edited schedule / Run now reads 'already in progress' until TTL.

- Preserve early-abort jobs as aborted (P2): the createJob->liveness early abort uses
  abortJob (stored 'aborted' -> reconcile 'interrupted') instead of completeJob, whose
  preserved 'complete' the reconciler would map to 'success'.

- Show default weekly schedules as weekly (P3, client): describeCadence renders a
  weekly cadence without daysOfWeek on the server's default weekly day instead of
  falling through to the daily label.
2026-07-22 13:10:39 -04:00
..
controllers fix: Codex round — deletion/lease window, resume self-capacity, abort-as-aborted, weekly label 2026-07-22 13:10:39 -04:00
middleware 🔍 refactor: Surface primary OpenID JWT failure reason in auth failure log (#14346) 2026-07-20 21:05:20 -04:00
routes fix: Codex round — owner-edit rollback, resume self-overlap, retention count, evidence on failure 2026-07-22 12:42:19 -04:00
services fix: Codex round — resume rollback race, engine per-user gate, nav/run-now, retain-first, access TS 2026-07-22 11:23:57 -04:00
utils 🔄 feat: Continue Shared Conversations as Personal Copies (#13714) 2026-06-24 16:27:01 -04:00
cleanup.js 🧹 refactor: Tighten Config Schema Typing and Remove Deprecated Fields (#12452) 2026-03-29 01:10:57 -04:00
experimental.js fix: harden lifecycle review round 1 (P1 resume slot + topology wiring) 2026-07-22 10:05:15 -04:00
index.js fix: Codex round — resume capacity/existence, skip guard, topology signal, loopback re-fence 2026-07-22 10:44:20 -04:00
index.metrics.spec.js ⚖️ feat: Add Operational Prometheus Metrics (#13265) 2026-05-22 20:47:41 -04:00
index.spec.js ⚙️ refactor: lazy-load React Query Devtools (#13639) 2026-06-10 13:06:20 -04:00
socialLogins.js feat: Make OpenID Token Reuse Window Configurable (#13546) 2026-06-06 15:15:58 -04:00
socialLogins.spec.js feat: Make OpenID Token Reuse Window Configurable (#13546) 2026-06-06 15:15:58 -04:00
telemetry.js 📡 feat: Add Backend OpenTelemetry Tracing (#12909) 2026-05-14 09:08:55 -04:00
telemetry.spec.js 📡 feat: Add Backend OpenTelemetry Tracing (#12909) 2026-05-14 09:08:55 -04:00