@camstack/addon-agent-ui 1.2.82 → 1.2.83

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 (2) hide show
  1. package/dist/addon.js +34 -15
  2. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -10552,12 +10552,30 @@ var BackupDestinationInfoSchema = object({
10552
10552
  lastSuccessAt: number().optional(),
10553
10553
  /** Newest-archive size from `manifests.json`, or undefined. */
10554
10554
  lastSuccessSizeBytes: number().optional(),
10555
- /** Per-destination cron expression. Empty = manual-only (no schedule). */
10555
+ /**
10556
+ * Cron cadence(s) of the ENABLED schedules that fan out to this
10557
+ * destination, comma-joined. Absent when no enabled schedule targets it
10558
+ * — a destination nothing is scheduled to write to must not advertise a
10559
+ * cadence (D384). This is never the `backup_destination_policies.cron`
10560
+ * column: that per-location cron has scheduled nothing since 2026-07-28
10561
+ * and reading it made a destination with a DISABLED schedule claim a
10562
+ * nightly run.
10563
+ */
10556
10564
  cron: string().optional(),
10557
- /** ms-epoch of next computed firing for this destination's cron, if any. */
10565
+ /** ms-epoch of the next firing across those schedules (earliest), if any. */
10558
10566
  nextRunAt: number().optional(),
10559
- /** ms-epoch of last successful scheduled run (mirrors policy.lastRunAt). */
10560
- lastRunAt: number().optional()
10567
+ /**
10568
+ * ms-epoch of the last time a run ATTEMPTED to write here — success or
10569
+ * failure. Never a success stamp: pair it with `lastSuccessAt` (the
10570
+ * newest archive that actually landed) and `lastError`.
10571
+ */
10572
+ lastAttemptAt: number().optional(),
10573
+ /**
10574
+ * Why the last attempt failed, verbatim. Absent when the last attempt
10575
+ * landed the archive. A destination that has never been written to has
10576
+ * neither this nor `lastAttemptAt`.
10577
+ */
10578
+ lastError: string().optional()
10561
10579
  });
10562
10580
  /**
10563
10581
  * Per-archive entry returned by `backup.listArchives({ destinationId })`.
@@ -10720,8 +10738,16 @@ var BackupScheduleSchema = object({
10720
10738
  retentionCount: number().int().min(1).max(1e3),
10721
10739
  /** Optional subset of source locations to include; omitted = all. */
10722
10740
  dataSources: array(string()).readonly().optional(),
10723
- /** ms-epoch of last successful run. */
10724
- lastRunAt: number().optional(),
10741
+ /**
10742
+ * ms-epoch of the last tick that FIRED this schedule. Stamped before the
10743
+ * archive runs (it is the dedupe anchor), so it says "attempted", never
10744
+ * "succeeded" — a run refused by every destination stamps it too.
10745
+ */
10746
+ lastAttemptAt: number().optional(),
10747
+ /** ms-epoch of the last run of this schedule that landed at ≥1 destination. */
10748
+ lastSuccessAt: number().optional(),
10749
+ /** Why the last fired run failed, verbatim. Absent when it succeeded. */
10750
+ lastError: string().optional(),
10725
10751
  /** ms-epoch of next computed firing (read-only, filled on list). */
10726
10752
  nextRunAt: number().optional()
10727
10753
  });
@@ -10770,14 +10796,7 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
10770
10796
  locationId: string(),
10771
10797
  enabled: boolean(),
10772
10798
  retentionCount: number().int().min(1).max(1e3),
10773
- label: string().optional(),
10774
- /**
10775
- * Per-destination cron expression. Empty string clears the
10776
- * schedule (manual-only). Validated server-side via croner;
10777
- * malformed expressions reject the upsert with an actionable
10778
- * message.
10779
- */
10780
- cron: string().optional()
10799
+ label: string().optional()
10781
10800
  }), _void(), {
10782
10801
  kind: "mutation",
10783
10802
  auth: "admin"
@@ -37947,7 +37966,7 @@ var AgentUIAddon = class extends BaseAddon {
37947
37966
  capability: adminUiCapability,
37948
37967
  provider: {
37949
37968
  getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
37950
- getVersion: async () => ({ version: "1.2.82" })
37969
+ getVersion: async () => ({ version: "1.2.83" })
37951
37970
  }
37952
37971
  }];
37953
37972
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-agent-ui",
3
- "version": "1.2.82",
3
+ "version": "1.2.83",
4
4
  "description": "Agent UI — lightweight status dashboard served by every agent node",
5
5
  "keywords": [
6
6
  "camstack",