@camstack/addon-smtp-nodemailer 1.2.62 → 1.2.63

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.
@@ -12658,6 +12658,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
12658
12658
  kind: "mutation",
12659
12659
  auth: "admin"
12660
12660
  });
12661
+ /**
12662
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12663
+ * live registry access, and all management operations into a single tRPC surface.
12664
+ *
12665
+ * Replaces:
12666
+ * - `device-persistence` capability (persistence methods absorbed here)
12667
+ * - `device-management.router.ts` (deleted in Phase 2)
12668
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12669
+ *
12670
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12671
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12672
+ * - No nodeId routing needed — this is a pure hub singleton.
12673
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12674
+ * - No shadow registry or cross-node aggregation required.
12675
+ *
12676
+ * Forked workers register devices back to the hub via `ctx.devices`
12677
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12678
+ */
12661
12679
  /** One child-placement directive on a container's `childLayout`. Structurally
12662
12680
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12663
12681
  * shape for the same field. The child is identified by its re-sync-stable
@@ -18306,6 +18324,9 @@ var RetrainStatusSchema = _enum([
18306
18324
  *
18307
18325
  * `debug` does NOT pin; it is attention, not durability.
18308
18326
  *
18327
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18328
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18329
+ *
18309
18330
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18310
18331
  * A favourited track is skipped by retention the same way `staging` is, but
18311
18332
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18316,6 +18337,21 @@ var TrackFlagFields = {
18316
18337
  markForTrain: boolean().optional(),
18317
18338
  /** Operator marked this track for diagnostic attention. */
18318
18339
  debug: boolean().optional(),
18340
+ /**
18341
+ * What the operator wants CHECKED on this track, in their own words.
18342
+ *
18343
+ * The flag alone says "look at this" and nothing about what for; a debug set
18344
+ * reviewed hours later is a list of tracks with no question attached. Bound
18345
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18346
+ * and refuses it on a track whose debug is off — so a note can never outlive
18347
+ * the attention it belongs to.
18348
+ *
18349
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18350
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18351
+ * on without a note (a cancelled prompt) and what lets it edit the note
18352
+ * without touching the flag.
18353
+ */
18354
+ debugNote: string().max(500).optional(),
18319
18355
  /** Operator favourited this track. Pins it against pruning. */
18320
18356
  favourited: boolean().optional()
18321
18357
  };
@@ -18342,6 +18378,12 @@ var TrackFlagsSchema = object({
18342
18378
  trackId: string(),
18343
18379
  markForTrain: boolean(),
18344
18380
  debug: boolean(),
18381
+ /** The note as it STANDS after the write — never absent here (a track with no
18382
+ * note reports `''`), for the same reason the booleans are required: a
18383
+ * surface that has just written must be able to render the note it now owns
18384
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18385
+ * screen that has no previous value to keep. */
18386
+ debugNote: string(),
18345
18387
  favourited: boolean(),
18346
18388
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18347
18389
  * a track row) because this shape is only ever produced by the write body,
@@ -12656,6 +12656,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
12656
12656
  kind: "mutation",
12657
12657
  auth: "admin"
12658
12658
  });
12659
+ /**
12660
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12661
+ * live registry access, and all management operations into a single tRPC surface.
12662
+ *
12663
+ * Replaces:
12664
+ * - `device-persistence` capability (persistence methods absorbed here)
12665
+ * - `device-management.router.ts` (deleted in Phase 2)
12666
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12667
+ *
12668
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12669
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12670
+ * - No nodeId routing needed — this is a pure hub singleton.
12671
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12672
+ * - No shadow registry or cross-node aggregation required.
12673
+ *
12674
+ * Forked workers register devices back to the hub via `ctx.devices`
12675
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12676
+ */
12659
12677
  /** One child-placement directive on a container's `childLayout`. Structurally
12660
12678
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12661
12679
  * shape for the same field. The child is identified by its re-sync-stable
@@ -18304,6 +18322,9 @@ var RetrainStatusSchema = _enum([
18304
18322
  *
18305
18323
  * `debug` does NOT pin; it is attention, not durability.
18306
18324
  *
18325
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18326
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18327
+ *
18307
18328
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18308
18329
  * A favourited track is skipped by retention the same way `staging` is, but
18309
18330
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18314,6 +18335,21 @@ var TrackFlagFields = {
18314
18335
  markForTrain: boolean().optional(),
18315
18336
  /** Operator marked this track for diagnostic attention. */
18316
18337
  debug: boolean().optional(),
18338
+ /**
18339
+ * What the operator wants CHECKED on this track, in their own words.
18340
+ *
18341
+ * The flag alone says "look at this" and nothing about what for; a debug set
18342
+ * reviewed hours later is a list of tracks with no question attached. Bound
18343
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18344
+ * and refuses it on a track whose debug is off — so a note can never outlive
18345
+ * the attention it belongs to.
18346
+ *
18347
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18348
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18349
+ * on without a note (a cancelled prompt) and what lets it edit the note
18350
+ * without touching the flag.
18351
+ */
18352
+ debugNote: string().max(500).optional(),
18317
18353
  /** Operator favourited this track. Pins it against pruning. */
18318
18354
  favourited: boolean().optional()
18319
18355
  };
@@ -18340,6 +18376,12 @@ var TrackFlagsSchema = object({
18340
18376
  trackId: string(),
18341
18377
  markForTrain: boolean(),
18342
18378
  debug: boolean(),
18379
+ /** The note as it STANDS after the write — never absent here (a track with no
18380
+ * note reports `''`), for the same reason the booleans are required: a
18381
+ * surface that has just written must be able to render the note it now owns
18382
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18383
+ * screen that has no previous value to keep. */
18384
+ debugNote: string(),
18343
18385
  favourited: boolean(),
18344
18386
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18345
18387
  * a track row) because this shape is only ever produced by the write body,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-smtp-nodemailer",
3
- "version": "1.2.62",
3
+ "version": "1.2.63",
4
4
  "description": "SMTP email provider addon for CamStack — wraps `nodemailer` and registers a `smtp-provider` cap collection entry. Used by magic-link login + notifier addons.",
5
5
  "keywords": [
6
6
  "camstack",