@theholocron/cli 5.0.0-alpha.201 → 5.0.0-alpha.203

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.
@@ -948,6 +948,12 @@ interface NotificationsLinksLayout {
948
948
  }
949
949
  /** A declared server layout, applied idempotently by `holocron notifications setup`. */
950
950
  interface NotificationsLayout {
951
+ /**
952
+ * The channel set aside for test posts, by name. It must declare a webhook. `holocron doctor notifications`
953
+ * leaves one labelled test message there through its webhook (read back to prove delivery works) for a
954
+ * person to look at; the real channels are never given one unless `--deliver` posts and removes it.
955
+ */
956
+ testChannel?: string;
951
957
  /** Where `sync-roles` finds which server member is which GitHub account. Only used by roles with a `team`. */
952
958
  links?: NotificationsLinksLayout;
953
959
  /** The bot's own application settings, applied with the server's. */
@@ -1087,6 +1093,8 @@ interface NotificationsDelivery {
1087
1093
  posted: boolean;
1088
1094
  readBack: boolean;
1089
1095
  removed: boolean;
1096
+ /** Set when the message was deliberately left in the channel (`keep`), so `removed` is false on purpose. */
1097
+ kept?: boolean;
1090
1098
  problems: string[];
1091
1099
  }
1092
1100
  interface NotificationsMember {
@@ -1130,14 +1138,18 @@ interface Notifications extends ProviderIdentity {
1130
1138
  }): Promise<EnsureWebhookResult>;
1131
1139
  /**
1132
1140
  * Proves a channel's webhook delivers: posts `text` through it, reads the post back from the channel and
1133
- * removes it again. Never throws for a failed step; the result says which one failed. Posts a visible
1134
- * message for a moment, so callers ask before using it.
1141
+ * removes it again, unless `keep` is true, in which case the post is left in the channel (and the result
1142
+ * has `kept` instead of `removed`). Never throws for a failed step; the result says which one failed.
1143
+ * Posts a visible message, so callers choose the channel with care.
1135
1144
  */
1136
1145
  checkDelivery?(input: {
1137
1146
  channel: string;
1138
1147
  name: string;
1139
1148
  category?: string;
1149
+ /** The message. The provider may format it (Discord renders markdown) and replaces `{channel}` with its link to the channel. */
1140
1150
  text: string;
1151
+ /** Leave the message in the channel instead of removing it, so a person can see it. */
1152
+ keep?: boolean;
1141
1153
  }): Promise<NotificationsDelivery>;
1142
1154
  /**
1143
1155
  * Who holds a role, by the provider's member id. Needs whatever permission the provider asks for to list
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theholocron/cli",
3
- "version": "5.0.0-alpha.201",
3
+ "version": "5.0.0-alpha.203",
4
4
  "description": "The Holocron CLI - a pluggable, capability-based orchestrator for spinning up and operating software projects.",
5
5
  "keywords": [
6
6
  "cli",
@@ -63,8 +63,8 @@
63
63
  "pino-pretty": "^13.1.3",
64
64
  "posthog-node": "^5.51.6",
65
65
  "yargs": "^18.1.0",
66
- "@theholocron/datapad": "5.0.0-alpha.201",
67
- "@theholocron/astromech": "5.0.0-alpha.201"
66
+ "@theholocron/datapad": "5.0.0-alpha.203",
67
+ "@theholocron/astromech": "5.0.0-alpha.203"
68
68
  },
69
69
  "devDependencies": {
70
70
  "@theholocron/eslint-config": "^8.8.2",