LibreChat/api/server/controllers
Danny Avila fbce9f37e6 fix: Codex round 14 — durable conversationId, manual lease, limiter/refill/expiry
1. fire.ts: capacity skip releases the lease only for manual run-now (automatic
   keeps it as a backoff), so Run-now doesn't get a misleading 409 for the lease TTL.
2. agents/index.js: capture the scheduled-fire decision on the parent chatRouter
   (before configMiddleware + the interactive limiters); the limiter exemption and
   controller read that flag instead of re-verifying an expiring token. Removes the
   later chat.js re-capture that could overwrite it with a stale false.
3. InMemoryJobStore: an expired HITL approval on a scheduled fire retains the
   aborted job (no completedAt) so reconcile settles the run in ~2 min instead of
   waiting the 25-h abandonment window.
4. fire.ts/request.js: pre-generate a durable conversationId, record it on the run
   BEFORE the POST, and pass it as a fire-gated newConversationId so reconciliation
   can always locate the occurrence's job (even a preserved one) — supersedes the
   round-13 postAttempted heuristic, which is removed along with its engine
   special-casing and marker-write path.
5. Schedules/index.js: mirror checkBalanceRecord's interval fallbacks (0/'days')
   so a partially-synced auto-refill record isn't pre-skipped where chat would refill.
2026-07-22 01:39:16 -04:00
..
__tests__
agents fix: Codex round 14 — durable conversationId, manual lease, limiter/refill/expiry 2026-07-22 01:39:16 -04:00
assistants
auth
AuthController.js
AuthController.spec.js
Balance.js
Balance.spec.js
EndpointController.js
FavoritesController.js
FavoritesController.spec.js
mcp.js
ModelController.js
PermissionsController.js
PluginController.js
PluginController.spec.js
SkillStatesController.js
TokenConfigController.js
tools.js
TwoFactorController.js
UserController.js
UserController.spec.js