@astrale-os/cli 1.0.0-beta.16 → 1.0.0-beta.17

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.
package/dist/astrale.js CHANGED
@@ -2578,7 +2578,7 @@ var package_default;
2578
2578
  var init_package = __esm(() => {
2579
2579
  package_default = {
2580
2580
  name: "@astrale-os/cli",
2581
- version: "1.0.0-beta.16",
2581
+ version: "1.0.0-beta.17",
2582
2582
  description: "Astrale CLI — connect to existing Astrale kernels",
2583
2583
  keywords: [
2584
2584
  "astrale",
@@ -84408,7 +84408,7 @@ var init_add = __esm(() => {
84408
84408
  ],
84409
84409
  afterHelpText: `
84410
84410
  Installed source belongs to the application. Ordinary add never overwrites local edits.
84411
- Use diff first, then --overwrite --yes when replacement is intentional.
84411
+ Run astrale ui doctor before intentionally replacing local source with --overwrite --yes.
84412
84412
  `,
84413
84413
  action: async (items, options) => runUiCommand(options, async () => {
84414
84414
  let selected2 = items;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astrale-os/cli",
3
- "version": "1.0.0-beta.16",
3
+ "version": "1.0.0-beta.17",
4
4
  "description": "Astrale CLI — connect to existing Astrale kernels",
5
5
  "keywords": [
6
6
  "astrale",
@@ -25,7 +25,7 @@ export default {
25
25
  UI_JSON_OPTION,
26
26
  ],
27
27
  afterHelpText:
28
- '\nInstalled source belongs to the application. Ordinary add never overwrites local edits.\nUse diff first, then --overwrite --yes when replacement is intentional.\n',
28
+ '\nInstalled source belongs to the application. Ordinary add never overwrites local edits.\nRun astrale ui doctor before intentionally replacing local source with --overwrite --yes.\n',
29
29
  action: async (items: string[], options: Options) =>
30
30
  runUiCommand(options, async () => {
31
31
  let selected = items
@@ -312,6 +312,24 @@ describe('help contract — connect-only command surface', () => {
312
312
  })
313
313
 
314
314
  describe('help contract — UI is project tooling', () => {
315
+ test('add recovery guidance uses only registered UI commands', async () => {
316
+ const program = await buildProgram()
317
+ const uiAdd = program.commands
318
+ .find((command) => command.name() === 'ui')
319
+ ?.commands.find((command) => command.name() === 'add')
320
+ let help = ''
321
+ uiAdd?.configureOutput({
322
+ writeOut: (chunk) => {
323
+ help += chunk ?? ''
324
+ },
325
+ })
326
+ uiAdd?.outputHelp()
327
+
328
+ expect(help).toContain('astrale ui doctor')
329
+ expect(help).toContain('--overwrite --yes')
330
+ expect(help).not.toMatch(/\b(?:astrale ui )?diff\b/u)
331
+ })
332
+
315
333
  test('keeps the documented root version alias operational', async () => {
316
334
  const program = await buildProgram()
317
335
  let stdout = ''