Skip to content

RTerm v3.2.16

Choose a tag to compare

@DrOlu DrOlu released this 25 Aug 13:29
· 78 commits to main since this release

Scheduled-task (cron) overhaul + Model-settings Base URL prefill

12 scheduler improvements

  1. Timezone-aware evaluation — per-task timezone (IANA, e.g. Africa/Lagos) via the Intl API, no new dependency. DST handled by the tz database (LA 2am fires exactly once on the November fallback day — verified).
  2. Overlap guard — in-flight tracking per task; a new firing while the previous runs is SKIPPED and logged (default maxConcurrent: 1). Two concurrent rm -rf cleanups can no longer race.
  3. Pause windows — pausedUntil (ISO) maintenance blackouts.
  4. Catch-up policy — missed minutes stay missed by default (classic cron); catchUp: true opts in, still bounded by the 24h window and at-most-once-per-tick.
  5. Cron validation — validateCron() rejects wrong field counts, garbage, out-of-range values, and never-matching expressions (Feb 31) with a human-readable reason; create refuses invalid expressions.
  6. Run-now — manage_scheduled_task action="runNow" fires immediately for testing, respecting the overlap guard.
  7. Run history — last 20 runs per task (ring): outcome, duration, targets, error. action="history" reports run count, success rate, avg duration, consecutive failures, last result.
  8. Failure-streak alerting — alertAfterFailures: N warns on N consecutive failures.
  9. Task → playbook binding — playbookId runs a playbook (validation + rollback inherited); MOP-gated playbooks refused with a clear message.
  10. Chaining — onSuccess / onFailure point at the next task id.
  11. Drift detection — action="drift" flags tasks that have not fired in >3× their expected interval. expectedIntervalMinutes() fixed for cron's dom/dow OR semantics (a bug found by the tests).
  12. Retry wiring — retryAttempts / retryDelaySeconds now actually execute (the fields existed on the type but were never applied).

Model settings UI

The "ADD MODEL" Base URL field is prefilled with https://api.superagent.ng (still fully editable).

Verification

  • New v3216Scheduler.extreme.spec.ts (41/41): validation, timezone (UTC/Lagos/LA/DST/invalid), overlap, pause, catch-up, history, drift, runNow + 6 regression tests proving the original semantics unchanged
  • Existing scheduler (15/15) + scheduledTaskRunner (12/12) still green
  • typecheck:all clean; backend-unit, layout-ui, automation suites green

npm

neuralos@3.2.16 · rterm-backend@3.2.16 · rterm-cli@3.2.16