@planu/cli 5.3.49 → 5.3.50

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/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [5.3.50] - 2026-08-24
2
+
3
+ ### Bug Fixes
4
+ - fix(response): render one icon and one emphasis span in reconcile and accuracy titles
5
+
6
+
1
7
  ## [5.3.49] - 2026-08-24
2
8
 
3
9
  ### Features
@@ -518,7 +518,7 @@ export async function handleReconcileSpec(params, server) {
518
518
  }
519
519
  const body = summaryLines.join('\n');
520
520
  const nextSteps = [t('tools.reconcileSpec.nextValidate'), t('tools.reconcileSpec.nextDrift')];
521
- const humanText = addNextSteps(formatSuccess(t('tools.response.reconcileTitle'), body), nextSteps);
521
+ const humanText = addNextSteps(formatSuccess(t('tools.response.reconcileTitle'), body, undefined, '🔄'), nextSteps);
522
522
  return {
523
523
  content: [{ type: 'text', text: humanText }],
524
524
  structuredContent: result,
@@ -2,9 +2,9 @@ import type { InteractiveQuestion, HostHint } from '../types/clarification.js';
2
2
  import type { EscalateRole } from '../types/escalator.js';
3
3
  /**
4
4
  * Format a success response with optional next steps.
5
- * Output: **{title}**\n\n{body}\n\n🚀 **Next Steps**\n1. ...\n2. ...
5
+ * Output: {icon} **{title}**\n\n{body}\n\n🚀 **Next Steps**\n1. ...\n2. ...
6
6
  */
7
- export declare function formatSuccess(title: string, body: string, nextSteps?: string[]): string;
7
+ export declare function formatSuccess(title: string, body: string, nextSteps?: string[], icon?: string): string;
8
8
  /**
9
9
  * Format a warning with blockquote and optional suggestions.
10
10
  * Output: ⚠️ **{title}**\n> {body}\n\n💡 **Suggestions**\n- ...
@@ -23,10 +23,10 @@ function stripSuccessDecoration(title) {
23
23
  }
24
24
  /**
25
25
  * Format a success response with optional next steps.
26
- * Output: **{title}**\n\n{body}\n\n🚀 **Next Steps**\n1. ...\n2. ...
26
+ * Output: {icon} **{title}**\n\n{body}\n\n🚀 **Next Steps**\n1. ...\n2. ...
27
27
  */
28
- export function formatSuccess(title, body, nextSteps) {
29
- const header = `✅ **${stripSuccessDecoration(title)}**`;
28
+ export function formatSuccess(title, body, nextSteps, icon = '✅') {
29
+ const header = `${icon} **${stripSuccessDecoration(title)}**`;
30
30
  const parts = [header, '', body];
31
31
  if (nextSteps && nextSteps.length > 0) {
32
32
  parts.push('', t('tools.response.nextSteps'));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planu/cli",
3
- "version": "5.3.49",
3
+ "version": "5.3.50",
4
4
  "description": "Planu — MCP Server for Spec Driven Development. Cross-platform (Linux/macOS/Windows, x64/arm64).",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/planu-plugin.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "dev.planu.cli",
3
3
  "displayName": "Planu — Spec Driven Development",
4
4
  "description": "Manage software specs, estimations, and autonomous SDD workflows. Language-agnostic MCP server for Claude Code.",
5
- "version": "5.3.49",
5
+ "version": "5.3.50",
6
6
  "icon": "assets/plugin/icon.svg",
7
7
  "command": ["npx", "@planu/cli@latest"],
8
8
  "packageName": "@planu/cli",
@@ -449,8 +449,8 @@
449
449
  "sessionsFound": "📋 Found {count} session(s)",
450
450
  "noSessions": "📋 No sessions found",
451
451
  "statsTitle": "📊 **Usage Statistics**",
452
- "accuracyTitle": "🎯 **Spec Accuracy Report**",
453
- "reconcileTitle": "🔄 **Spec Reconciled**",
452
+ "accuracyTitle": "Spec Accuracy Report",
453
+ "reconcileTitle": "Spec Reconciled",
454
454
  "statusTitle": "✅ **Status Updated**",
455
455
  "workerTitle": "⚙️ **Worker Status**",
456
456
  "swarmTitle": "🐝 **Agent Swarm Status**",
@@ -449,8 +449,8 @@
449
449
  "sessionsFound": "📋 Se encontraron {count} sesión(es)",
450
450
  "noSessions": "📋 No se encontraron sesiones",
451
451
  "statsTitle": "📊 **Estadísticas de Uso**",
452
- "accuracyTitle": "🎯 **Reporte de Precisión de Spec**",
453
- "reconcileTitle": "🔄 **Spec Reconciliada**",
452
+ "accuracyTitle": "Reporte de Precisión de Spec",
453
+ "reconcileTitle": "Spec Reconciliada",
454
454
  "statusTitle": "✅ **Estado Actualizado**",
455
455
  "workerTitle": "⚙️ **Estado de Workers**",
456
456
  "swarmTitle": "🐝 **Estado del Enjambre de Agentes**",
@@ -449,8 +449,8 @@
449
449
  "sessionsFound": "📋 Encontrada(s) {count} sessão(ões)",
450
450
  "noSessions": "📋 Nenhuma sessão encontrada",
451
451
  "statsTitle": "📊 **Estatísticas de Uso**",
452
- "accuracyTitle": "🎯 **Relatório de Precisão da Spec**",
453
- "reconcileTitle": "🔄 **Spec Reconciliada**",
452
+ "accuracyTitle": "Relatório de Precisão da Spec",
453
+ "reconcileTitle": "Spec Reconciliada",
454
454
  "statusTitle": "✅ **Status Atualizado**",
455
455
  "workerTitle": "⚙️ **Status dos Workers**",
456
456
  "swarmTitle": "🐝 **Status do Enxame de Agentes**",