instar 1.3.205 → 1.3.207

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 (34) hide show
  1. package/dist/commands/init.d.ts +12 -0
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +20 -2
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/commands/server.d.ts.map +1 -1
  6. package/dist/commands/server.js +10 -2
  7. package/dist/commands/server.js.map +1 -1
  8. package/dist/core/AutoUpdater.d.ts.map +1 -1
  9. package/dist/core/AutoUpdater.js +22 -5
  10. package/dist/core/AutoUpdater.js.map +1 -1
  11. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  12. package/dist/core/PostUpdateMigrator.js +15 -0
  13. package/dist/core/PostUpdateMigrator.js.map +1 -1
  14. package/dist/core/UpgradeGuideProcessor.d.ts.map +1 -1
  15. package/dist/core/UpgradeGuideProcessor.js +13 -3
  16. package/dist/core/UpgradeGuideProcessor.js.map +1 -1
  17. package/dist/core/UpgradeNotifyManager.d.ts.map +1 -1
  18. package/dist/core/UpgradeNotifyManager.js +49 -24
  19. package/dist/core/UpgradeNotifyManager.js.map +1 -1
  20. package/dist/core/upgradeAnnouncement.d.ts +66 -0
  21. package/dist/core/upgradeAnnouncement.d.ts.map +1 -0
  22. package/dist/core/upgradeAnnouncement.js +143 -0
  23. package/dist/core/upgradeAnnouncement.js.map +1 -0
  24. package/dist/scaffold/templates.d.ts.map +1 -1
  25. package/dist/scaffold/templates.js +1 -0
  26. package/dist/scaffold/templates.js.map +1 -1
  27. package/package.json +1 -1
  28. package/scripts/analyze-release.js +59 -1
  29. package/src/data/builtin-manifest.json +20 -20
  30. package/src/scaffold/templates.ts +1 -0
  31. package/upgrades/1.3.206.md +46 -0
  32. package/upgrades/1.3.207.md +47 -0
  33. package/upgrades/side-effects/gemini-scaffold-leak-fix.md +114 -0
  34. package/upgrades/side-effects/mature-update-announcements.md +149 -0
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradeGuideProcessor.d.ts","sourceRoot":"","sources":["../../src/core/UpgradeGuideProcessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AASH,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB;qFACiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,EAAE,kBAAkB;IAQtC;;;;;;OAMG;IACH,OAAO,IAAI,kBAAkB;IA+F7B;;;OAGG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAUhC;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAuBrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,aAAa;CAStB"}
1
+ {"version":3,"file":"UpgradeGuideProcessor.d.ts","sourceRoot":"","sources":["../../src/core/UpgradeGuideProcessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAeH,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB;qFACiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,EAAE,kBAAkB;IAQtC;;;;;;OAMG;IACH,OAAO,IAAI,kBAAkB;IAwG7B;;;OAGG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAUhC;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAuBrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,aAAa;CAStB"}
@@ -33,6 +33,7 @@ import fs from 'node:fs';
33
33
  import path from 'node:path';
34
34
  import { fileURLToPath } from 'node:url';
35
35
  import { SafeFsExecutor } from './SafeFsExecutor.js';
36
+ import { parseUserAnnouncement, stripAnnouncementFrontmatter, serializeUserAnnouncement, } from './upgradeAnnouncement.js';
36
37
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
37
38
  export class UpgradeGuideProcessor {
38
39
  stateDir;
@@ -101,12 +102,20 @@ export class UpgradeGuideProcessor {
101
102
  // Only `clearPendingGuide()` (via `instar upgrade-ack`) should remove it.
102
103
  return result;
103
104
  }
104
- // Concatenate pending guides in version order
105
+ // Concatenate pending guides in version order. Each guide may carry a
106
+ // `user_announcement` front-matter block (mature-update-announcements spec).
107
+ // We HOIST + MERGE those blocks to the very top of the combined guide (the
108
+ // only place parseUserAnnouncement reads them) and keep each guide's prose
109
+ // as the agent-facing body. When no guide carries a block, the merged
110
+ // front-matter is empty and the assembled guide is byte-identical to the
111
+ // pre-feature output.
105
112
  const sections = [];
113
+ const mergedEntries = [];
106
114
  for (const guide of pending) {
107
115
  try {
108
116
  const content = fs.readFileSync(guide.filePath, 'utf-8');
109
- sections.push(content);
117
+ mergedEntries.push(...parseUserAnnouncement(content));
118
+ sections.push(stripAnnouncementFrontmatter(content).replace(/^\n+/, ''));
110
119
  }
111
120
  catch {
112
121
  // Skip unreadable files
@@ -123,7 +132,8 @@ export class UpgradeGuideProcessor {
123
132
  `> Never relay commands to the user for them to run manually. You have full shell access.\n` +
124
133
  `> After processing, these guides won't appear again.\n\n` +
125
134
  `---\n\n`;
126
- result.guideContent = header + sections.join('\n\n---\n\n');
135
+ const announcementFrontmatter = serializeUserAnnouncement(mergedEntries);
136
+ result.guideContent = announcementFrontmatter + header + sections.join('\n\n---\n\n');
127
137
  // Write to pending file
128
138
  try {
129
139
  const dir = path.dirname(this.pendingGuidePath);
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradeGuideProcessor.js","sourceRoot":"","sources":["../../src/core/UpgradeGuideProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpgradeGuideProcessor.js","sourceRoot":"","sources":["../../src/core/UpgradeGuideProcessor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradeNotifyManager.d.ts","sourceRoot":"","sources":["../../src/core/UpgradeNotifyManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB,+EAA+E;IAC/E,KAAK,EAAE,gBAAgB,CAAC;IACxB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;sEAEsE;AACtE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvB,mDAAmD;AACnD,MAAM,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;AAEtE,sCAAsC;AACtC,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,KAAK,IAAI,CAAC;AAaX,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,MAAM,CAAgC;gBAG5C,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,cAAc,EAC5B,iBAAiB,EAAE,wBAAwB,EAC3C,WAAW,EAAE,cAAc,EAC3B,MAAM,CAAC,EAAE,mBAAmB;IAa9B;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAuE5C;;OAEG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAgEzC;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;YACW,iBAAiB;CAYhC"}
1
+ {"version":3,"file":"UpgradeNotifyManager.d.ts","sourceRoot":"","sources":["../../src/core/UpgradeNotifyManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB,+EAA+E;IAC/E,KAAK,EAAE,gBAAgB,CAAC;IACxB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;sEAEsE;AACtE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvB,mDAAmD;AACnD,MAAM,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;AAEtE,sCAAsC;AACtC,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,KAAK,IAAI,CAAC;AAaX,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,MAAM,CAAgC;gBAG5C,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,cAAc,EAC5B,iBAAiB,EAAE,wBAAwB,EAC3C,WAAW,EAAE,cAAc,EAC3B,MAAM,CAAC,EAAE,mBAAmB;IAa9B;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAuE5C;;OAEG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IA0FzC;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;YACW,iBAAiB;CAYhC"}
@@ -15,6 +15,7 @@
15
15
  * fail ~30% of the time on multi-step tasks. Verification closes the loop.
16
16
  */
17
17
  import fs from 'node:fs';
18
+ import { parseUserAnnouncement, renderAnnouncementBrief } from './upgradeAnnouncement.js';
18
19
  /** Model escalation chain — try faster models first, escalate on failure.
19
20
  * Uses generic tier names so the same chain works for Claude, Codex, and
20
21
  * any future framework. Each framework's headless launch builder maps
@@ -114,35 +115,59 @@ export class UpgradeNotifyManager {
114
115
  ? `${this.config.tunnelUrl}/dashboard`
115
116
  : `http://localhost:${this.config.port}/dashboard`;
116
117
  const hasReplyScript = !!replyScript;
118
+ // Silent-by-default polarity: the user only hears about changes the release
119
+ // author explicitly promoted to `audience: user` in the guide's
120
+ // `user_announcement` front-matter. No such entries ⇒ Step 1 is a no-op
121
+ // (Steps 2 & 3 still run, so the agent still LEARNS the capability — the
122
+ // user just isn't told). When there ARE entries, the message is composed
123
+ // ONLY from them, each carrying its maturity framing + badge so an
124
+ // experimental/preview feature can't be narrated as finished.
125
+ const announcementBrief = renderAnnouncementBrief(parseUserAnnouncement(guideContent));
126
+ const step1Lines = announcementBrief
127
+ ? [
128
+ '## Step 1: Notify your user',
129
+ '',
130
+ 'Compose a brief, personalized message for your user using ONLY the announcement(s) below.',
131
+ 'Each announcement carries a maturity and framing — HONOR IT EXACTLY. Do not invent features',
132
+ 'not listed here, and do not upgrade an experimental/preview feature into sounding finished.',
133
+ ' RULES:',
134
+ ' - Write like you\'re texting a friend — warm, conversational, no jargon',
135
+ ' - This should NOT look like a changelog or release notes',
136
+ ' - Apply each announcement\'s maturity framing and badge verbatim in spirit (experimental ⇒ say it is early and not ready for general use)',
137
+ ' - Include CONCRETE details — actual URLs, PINs, things they can click/use right now (only for STABLE features they can actually use)',
138
+ ' - NEVER mention "bearer tokens", "auth tokens", version numbers in headers, or internal implementation details',
139
+ ' - NO bullet lists, NO markdown headers, NO technical formatting — just natural sentences',
140
+ '',
141
+ ' ANNOUNCEMENTS (compose only from these):',
142
+ announcementBrief,
143
+ '',
144
+ ' CONCRETE DETAILS YOU MAY USE:',
145
+ ` - Dashboard URL: ${dashboardUrl}`,
146
+ dashboardPin ? ` - Dashboard PIN: ${dashboardPin}` : ' - No dashboard PIN set',
147
+ ` - Current version: ${currentVersion}`,
148
+ '',
149
+ 'Send the message via Telegram:',
150
+ hasReplyScript && notifyTopicId
151
+ ? ` Run: cat <<'MSGEOF' | bash ${replyScript} ${notifyTopicId}\nYOUR_MESSAGE_HERE\nMSGEOF`
152
+ : ' Use the telegram-reply script in .instar/scripts/ to send to the updates topic.',
153
+ '',
154
+ ]
155
+ : [
156
+ '## Step 1: Notify your user — SKIP',
157
+ '',
158
+ 'This update has NO user-facing announcement (it is internal/infra, or not yet ready for general use).',
159
+ 'Do NOT send the user any message about this update. Sending a message here is a mistake —',
160
+ 'silence is correct. Proceed straight to Step 2.',
161
+ '',
162
+ ];
117
163
  return [
118
164
  'IMPORTANT: You are a SHORT-LIVED session with a SPECIFIC task. Do NOT search for files or explore the codebase. Everything you need is in this prompt.',
119
165
  '',
120
- 'You have been updated to a new Instar version. Read the upgrade guide below, then do ALL THREE steps.',
166
+ 'You have been updated to a new Instar version. Read the upgrade guide below, then do the steps below.',
121
167
  'IMPORTANT: The guide below contains ONLY what is new in THIS update. Do not mention features from previous updates.',
122
168
  '',
123
169
  '',
124
- '## Step 1: Notify your user',
125
- '',
126
- 'Compose a brief, personalized message (3-8 sentences) for your user about the new features.',
127
- ' RULES:',
128
- ' - Write like you\'re texting a friend — warm, conversational, no jargon',
129
- ' - This should NOT look like a changelog or release notes',
130
- ' - Lead with the biggest USER-VISIBLE feature',
131
- ' - Include CONCRETE details — actual URLs, PINs, things they can click/use right now',
132
- ' - NEVER mention "bearer tokens", "auth tokens", version numbers in headers, or internal implementation details',
133
- ' - Focus on what matters to THEM, not internal plumbing',
134
- ' - NO bullet lists, NO markdown headers, NO technical formatting — just natural sentences',
135
- '',
136
- ' CONCRETE DETAILS TO INCLUDE:',
137
- ` - Dashboard URL: ${dashboardUrl}`,
138
- dashboardPin ? ` - Dashboard PIN: ${dashboardPin}` : ' - No dashboard PIN set',
139
- ` - Current version: ${currentVersion}`,
140
- '',
141
- 'Send the message via Telegram:',
142
- hasReplyScript && notifyTopicId
143
- ? ` Run: cat <<'MSGEOF' | bash ${replyScript} ${notifyTopicId}\nYOUR_MESSAGE_HERE\nMSGEOF`
144
- : ' Use the telegram-reply script in .instar/scripts/ to send to the updates topic.',
145
- '',
170
+ ...step1Lines,
146
171
  '## Step 2: Update your memory with new capabilities',
147
172
  '',
148
173
  'Read the upgrade guide\'s "Summary of New Capabilities" section and add the relevant information to your MEMORY.md file (.instar/MEMORY.md).',
@@ -163,7 +188,7 @@ export class UpgradeNotifyManager {
163
188
  '',
164
189
  'Run: instar upgrade-ack',
165
190
  '',
166
- 'Do all three steps, then exit. Do not search for files or read config files beyond MEMORY.md.',
191
+ 'Do the steps above in order, then exit. Do not search for files or read config files beyond MEMORY.md.',
167
192
  '',
168
193
  '--- UPGRADE GUIDE ---',
169
194
  guideContent,
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradeNotifyManager.js","sourceRoot":"","sources":["../../src/core/UpgradeNotifyManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpgradeNotifyManager.js","sourceRoot":"","sources":["../../src/core/UpgradeNotifyManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * upgradeAnnouncement — pure parsing + maturity-framing for the user-facing
3
+ * announcement block of a release upgrade guide
4
+ * (MATURE-UPDATE-ANNOUNCEMENTS spec). No I/O, no spawn, no config — just the
5
+ * deterministic mapping from a guide's `user_announcement` front-matter to the
6
+ * announcement decision, so every rule is unit-testable in isolation.
7
+ *
8
+ * THE polarity invariant: a guide with no parseable `audience: user` entry
9
+ * yields NO user message. Silence is the fail-safe — a parse error, a missing
10
+ * block, or an entry with an unknown audience/maturity all collapse to "do not
11
+ * announce" rather than to a malformed or misleading message. The detailed prose
12
+ * BELOW the front-matter is the agent-facing guide and is never touched here.
13
+ */
14
+ export type AnnouncementAudience = 'user' | 'agent-only';
15
+ export type AnnouncementMaturity = 'experimental' | 'preview' | 'stable';
16
+ /** One authored announcement decision for a notable change in a release. */
17
+ export interface AnnouncementEntry {
18
+ /** `user` ⇒ eligible to compose into a user message; `agent-only` ⇒ never. */
19
+ audience: AnnouncementAudience;
20
+ /** Drives the framing + badge applied when composing the user message. */
21
+ maturity: AnnouncementMaturity;
22
+ /** Short user-facing title for the change. */
23
+ headline: string;
24
+ /** User-facing body sentence(s) for the change. */
25
+ body: string;
26
+ }
27
+ /** Prompt-injection guidance derived from an entry's maturity. */
28
+ export interface MaturityFraming {
29
+ /** Badge prefix for the headline (empty for `stable`). */
30
+ badge: string;
31
+ /** One-line instruction to the composer about tone + required caveat. */
32
+ framing: string;
33
+ }
34
+ /**
35
+ * Parse the `user_announcement` block from an upgrade guide. Returns the valid
36
+ * entries (any shape may be present; invalid entries are dropped). Returns `[]`
37
+ * for: no front-matter, a YAML error, a missing/`non-array` `user_announcement`,
38
+ * or entries failing schema. Never throws.
39
+ */
40
+ export declare function parseUserAnnouncement(guide: string): AnnouncementEntry[];
41
+ /** The subset of entries that are eligible to reach the user. */
42
+ export declare function userFacingEntries(entries: AnnouncementEntry[]): AnnouncementEntry[];
43
+ /**
44
+ * Return the guide body with its leading `user_announcement` front-matter
45
+ * removed. If there is no front-matter, the guide is returned unchanged. Used by
46
+ * UpgradeGuideProcessor to keep the agent-facing prose while it hoists the
47
+ * announcement block to the top of the concatenated pending guide.
48
+ */
49
+ export declare function stripAnnouncementFrontmatter(guide: string): string;
50
+ /**
51
+ * Serialize entries into a `---`-delimited `user_announcement` front-matter
52
+ * block (ending in a trailing newline). Returns the empty string for an empty
53
+ * list — so a guide-set with NO announcements produces NO front-matter, leaving
54
+ * the assembled guide byte-identical to the pre-feature behavior.
55
+ */
56
+ export declare function serializeUserAnnouncement(entries: AnnouncementEntry[]): string;
57
+ /** Badge + framing instruction for a maturity rung. */
58
+ export declare function frameByMaturity(maturity: AnnouncementMaturity): MaturityFraming;
59
+ /**
60
+ * Render the announcement brief injected into the compose prompt. Returns the
61
+ * empty string when there is nothing user-facing — the caller treats `''` as
62
+ * "skip the user message entirely". Each entry becomes a labeled block carrying
63
+ * its badge + maturity framing so the composer cannot overstate readiness.
64
+ */
65
+ export declare function renderAnnouncementBrief(entries: AnnouncementEntry[]): string;
66
+ //# sourceMappingURL=upgradeAnnouncement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgradeAnnouncement.d.ts","sourceRoot":"","sources":["../../src/core/upgradeAnnouncement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,YAAY,CAAC;AACzD,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEzE,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;CACjB;AASD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAwCxE;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAEnF;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKlE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAO9E;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,oBAAoB,GAAG,eAAe,CAqB/E;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAgB5E"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * upgradeAnnouncement — pure parsing + maturity-framing for the user-facing
3
+ * announcement block of a release upgrade guide
4
+ * (MATURE-UPDATE-ANNOUNCEMENTS spec). No I/O, no spawn, no config — just the
5
+ * deterministic mapping from a guide's `user_announcement` front-matter to the
6
+ * announcement decision, so every rule is unit-testable in isolation.
7
+ *
8
+ * THE polarity invariant: a guide with no parseable `audience: user` entry
9
+ * yields NO user message. Silence is the fail-safe — a parse error, a missing
10
+ * block, or an entry with an unknown audience/maturity all collapse to "do not
11
+ * announce" rather than to a malformed or misleading message. The detailed prose
12
+ * BELOW the front-matter is the agent-facing guide and is never touched here.
13
+ */
14
+ import yaml from 'js-yaml';
15
+ const AUDIENCES = new Set(['user', 'agent-only']);
16
+ const MATURITIES = new Set(['experimental', 'preview', 'stable']);
17
+ /** Front-matter splitter matching the house pattern (retroHarvestValidator):
18
+ * optional BOM, `---` line, captured YAML, closing `---`, then the body. */
19
+ const FRONTMATTER_RE = /^?---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/;
20
+ /**
21
+ * Parse the `user_announcement` block from an upgrade guide. Returns the valid
22
+ * entries (any shape may be present; invalid entries are dropped). Returns `[]`
23
+ * for: no front-matter, a YAML error, a missing/`non-array` `user_announcement`,
24
+ * or entries failing schema. Never throws.
25
+ */
26
+ export function parseUserAnnouncement(guide) {
27
+ if (!guide)
28
+ return [];
29
+ const m = FRONTMATTER_RE.exec(guide);
30
+ if (!m)
31
+ return [];
32
+ let fm;
33
+ try {
34
+ fm = yaml.load(m[1]);
35
+ }
36
+ catch {
37
+ // @silent-fallback-ok — malformed front-matter ⇒ silent (no user message)
38
+ return [];
39
+ }
40
+ if (!fm || typeof fm !== 'object')
41
+ return [];
42
+ const raw = fm.user_announcement;
43
+ if (!Array.isArray(raw))
44
+ return [];
45
+ const entries = [];
46
+ for (const item of raw) {
47
+ if (!item || typeof item !== 'object')
48
+ continue;
49
+ const o = item;
50
+ const audience = typeof o.audience === 'string' ? o.audience.trim().toLowerCase() : '';
51
+ const maturity = typeof o.maturity === 'string' ? o.maturity.trim().toLowerCase() : '';
52
+ const headline = typeof o.headline === 'string' ? o.headline.trim() : '';
53
+ const body = typeof o.body === 'string' ? o.body.trim() : '';
54
+ // Fail-safe: an unknown audience or maturity drops the entry rather than
55
+ // guessing — we never invent a user-facing announcement from a malformed one.
56
+ if (!AUDIENCES.has(audience))
57
+ continue;
58
+ if (!MATURITIES.has(maturity))
59
+ continue;
60
+ if (!headline && !body)
61
+ continue; // nothing to actually say
62
+ entries.push({
63
+ audience: audience,
64
+ maturity: maturity,
65
+ headline,
66
+ body,
67
+ });
68
+ }
69
+ return entries;
70
+ }
71
+ /** The subset of entries that are eligible to reach the user. */
72
+ export function userFacingEntries(entries) {
73
+ return entries.filter((e) => e.audience === 'user');
74
+ }
75
+ /**
76
+ * Return the guide body with its leading `user_announcement` front-matter
77
+ * removed. If there is no front-matter, the guide is returned unchanged. Used by
78
+ * UpgradeGuideProcessor to keep the agent-facing prose while it hoists the
79
+ * announcement block to the top of the concatenated pending guide.
80
+ */
81
+ export function stripAnnouncementFrontmatter(guide) {
82
+ if (!guide)
83
+ return guide;
84
+ const m = FRONTMATTER_RE.exec(guide);
85
+ if (!m)
86
+ return guide;
87
+ return m[2];
88
+ }
89
+ /**
90
+ * Serialize entries into a `---`-delimited `user_announcement` front-matter
91
+ * block (ending in a trailing newline). Returns the empty string for an empty
92
+ * list — so a guide-set with NO announcements produces NO front-matter, leaving
93
+ * the assembled guide byte-identical to the pre-feature behavior.
94
+ */
95
+ export function serializeUserAnnouncement(entries) {
96
+ if (!entries.length)
97
+ return '';
98
+ const yamlBody = yaml.dump({ user_announcement: entries }, { lineWidth: -1, noRefs: true });
99
+ return `---\n${yamlBody}---\n`;
100
+ }
101
+ /** Badge + framing instruction for a maturity rung. */
102
+ export function frameByMaturity(maturity) {
103
+ switch (maturity) {
104
+ case 'stable':
105
+ return {
106
+ badge: '',
107
+ framing: 'Stable — speak confidently: this is a finished feature the user can use right now. No maturity caveat needed.',
108
+ };
109
+ case 'preview':
110
+ return {
111
+ badge: '🧪 Preview',
112
+ framing: 'Preview — say it is available to try but still rough around the edges; invite feedback. Prefix the headline with the "🧪 Preview" badge.',
113
+ };
114
+ case 'experimental':
115
+ return {
116
+ badge: '⚗️ Experimental',
117
+ framing: 'Experimental — be explicit that this is EARLY and NOT ready for general use yet, and that you will tell them when it is. NEVER imply it is finished or "more reliable". Prefix the headline with the "⚗️ Experimental" badge.',
118
+ };
119
+ }
120
+ }
121
+ /**
122
+ * Render the announcement brief injected into the compose prompt. Returns the
123
+ * empty string when there is nothing user-facing — the caller treats `''` as
124
+ * "skip the user message entirely". Each entry becomes a labeled block carrying
125
+ * its badge + maturity framing so the composer cannot overstate readiness.
126
+ */
127
+ export function renderAnnouncementBrief(entries) {
128
+ const userEntries = userFacingEntries(entries);
129
+ if (userEntries.length === 0)
130
+ return '';
131
+ const blocks = userEntries.map((e, i) => {
132
+ const { badge, framing } = frameByMaturity(e.maturity);
133
+ const title = badge ? `${badge} — ${e.headline}` : e.headline;
134
+ return [
135
+ `Announcement ${i + 1} (maturity: ${e.maturity}):`,
136
+ ` Headline: ${title}`,
137
+ ` What it is: ${e.body}`,
138
+ ` Framing: ${framing}`,
139
+ ].join('\n');
140
+ });
141
+ return blocks.join('\n\n');
142
+ }
143
+ //# sourceMappingURL=upgradeAnnouncement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgradeAnnouncement.js","sourceRoot":"","sources":["../../src/core/upgradeAnnouncement.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAgG/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2E/F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiBvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA2B1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,WAAW,GAAE,OAAe,EAC5B,WAAW,GAAE,OAAe,GAC3B,MAAM,CAguCR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,WAAW,GAAE,OAAe,GAC3B,MAAM,CAuSR"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAgG/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2E/F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiBvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA2B1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,WAAW,GAAE,OAAe,EAC5B,WAAW,GAAE,OAAe,GAC3B,MAAM,CAiuCR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,WAAW,GAAE,OAAe,GAC3B,MAAM,CAuSR"}
@@ -446,6 +446,7 @@ This routes feedback to the Instar maintainers automatically. Valid types: \`bug
446
446
  - The endpoint resolves the Updates topic from state server-side; you cannot specify a topic and you should not try to.
447
447
  - If Updates is not configured, the endpoint returns 400 — do NOT fall back to sending in the active topic. Update-class messages belong in Updates or they don't go out at all.
448
448
  - **When to use** (PROACTIVE — this is the trigger): the moment I am about to author a conversational message whose subject is *me* shipping, updating, or restarting — including post-restart "I'm back" confirmations — I use this endpoint. Authoring such a message via the standard Telegram reply path puts release chatter into whatever conversation the user was last in, which is the bug this routing closes.
449
+ - **Maturity honesty (silent-by-default user announcements)**: user-facing update announcements are *opt-in and maturity-tagged*, authored in the release's upgrade guide (\`user_announcement\` front-matter: each change is \`audience: user|agent-only\` + \`maturity: experimental|preview|stable\`). The post-update notifier stays SILENT unless a change was explicitly promoted to \`audience: user\`, and experimental/preview features are announced as such (⚗️ Experimental / 🧪 Preview) — never implied to be finished. When I narrate my own ship here, I mirror that honesty: I do NOT announce a feature that ships dark/disabled as if it works, and I don't dress up an infra change as a finished capability. Patch-level "restarting…" notices are suppressed (only deferral warnings — "your work is holding a restart" — still surface).
449
450
 
450
451
  **Secret Drop** — Securely collect secrets (API keys, passwords, tokens) from users without exposing them in chat history.
451
452
  - Request a secret: \`curl -X POST -H "Authorization: Bearer $AUTH" http://localhost:${port}/secrets/request -H 'Content-Type: application/json' -d '{"label":"OpenAI API Key","description":"Needed for GPT integration","topicId":TOPIC_ID}'\`
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.205",
3
+ "version": "1.3.207",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -706,9 +706,48 @@ HUMAN-REQUIRED: reproduction + observed before/after, or "Not reproducible in de
706
706
  return out;
707
707
  }
708
708
 
709
+ /**
710
+ * Build the silent-by-default `user_announcement` front-matter block
711
+ * (MATURE-UPDATE-ANNOUNCEMENTS spec D3). One entry per feature/enhancement,
712
+ * every entry defaulting to `audience: agent-only` + `maturity: experimental`
713
+ * — so NOTHING reaches the user until a human deliberately flips an entry to
714
+ * `audience: user`. An un-reviewed block is therefore SAFE (it announces
715
+ * nothing). Parsed at notify-time by src/core/upgradeAnnouncement.ts; the
716
+ * coherence check over edited entries is the canonical TS helper
717
+ * `announcementCoherenceWarnings`.
718
+ */
719
+ function buildAnnouncementFrontmatter(changeDescriptions) {
720
+ const candidates = changeDescriptions.filter(
721
+ (d) => d.type === 'feature' || d.type === 'enhancement'
722
+ );
723
+ const yamlStr = (s) => `"${String(s ?? '').replace(/"/g, '\\"')}"`;
724
+ const entries = candidates.length
725
+ ? candidates
726
+ .map(
727
+ (d) =>
728
+ ` - audience: agent-only # flip to "user" to announce to the user
729
+ maturity: experimental # experimental | preview | stable
730
+ headline: ${yamlStr(sanitizeDraftText(d.summary))}
731
+ body: ${yamlStr('HUMAN-REQUIRED: one or two plain sentences for the user, matching the maturity above')}`
732
+ )
733
+ .join('\n')
734
+ : ' # (no feature/enhancement changes detected — add an entry only if a change is user-facing)';
735
+
736
+ return `---
737
+ # user_announcement — SILENT BY DEFAULT (mature-update-announcements spec).
738
+ # Every entry below defaults to agent-only, so the user hears NOTHING about this
739
+ # release until you deliberately set an entry's audience to "user". Then set its
740
+ # maturity honestly: experimental (early, not for general use), preview (try it,
741
+ # still rough), or stable (finished, use it now).
742
+ user_announcement:
743
+ ${entries}
744
+ ---
745
+ `;
746
+ }
747
+
709
748
  /** Full NEXT.md draft (used when the guide is absent or a pristine template). */
710
749
  function buildFullDraft(changeDescriptions, recommended, hasFix) {
711
- return `# Upgrade Guide — vNEXT
750
+ return `${buildAnnouncementFrontmatter(changeDescriptions)}# Upgrade Guide — vNEXT
712
751
 
713
752
  <!-- bump: ${recommended} -->
714
753
  ${UNREVIEWED_BLOCK_MARKER}
@@ -941,6 +980,25 @@ if (guideContent) {
941
980
  if (guideCoverage.gaps.length === 0) {
942
981
  log(`\n ✓ Upgrade guide adequately covers all detected changes.`);
943
982
  }
983
+
984
+ // Silent-by-default author guard (mature-update-announcements spec, D3):
985
+ // when a release ships user-relevant changes but the guide carries NO
986
+ // `user_announcement` block at all, every change is silent to the user. That
987
+ // is correct for an all-internal release, but it is also exactly what a
988
+ // forgotten block looks like. Emit a NON-BLOCKING advisory so the author
989
+ // consciously decides — `instar` analyze --draft-guide scaffolds the block
990
+ // (defaulting agent-only), so its total absence means the scaffold was
991
+ // bypassed. Structure informs; the author decides (never blocks).
992
+ const userRelevantChanges = changeDescriptions.filter(
993
+ (d) => d.type === 'feature' || d.type === 'enhancement',
994
+ ).length;
995
+ if (userRelevantChanges > 0 && !/^\s*user_announcement\s*:/m.test(guideContent)) {
996
+ log(
997
+ `\n ⚠ This release has ${userRelevantChanges} user-relevant change(s) but the guide has no ` +
998
+ `\`user_announcement\` block — nothing will be announced to the user. If any change is ` +
999
+ `user-ready, add a block (\`audience: user\` + a maturity); otherwise this silence is correct.`,
1000
+ );
1001
+ }
944
1002
  } else {
945
1003
  log(`\n ⚠ No upgrade guide found — cannot validate coverage.`);
946
1004
  }