@link-assistant/hive-mind 1.23.3 → 1.23.4
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 +25 -0
- package/package.json +1 -1
- package/src/telegram-merge-queue.lib.mjs +18 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @link-assistant/hive-mind
|
|
2
2
|
|
|
3
|
+
## 1.23.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 22a1940: fix: display skip/fail reasons in merge queue Telegram messages (#1294)
|
|
8
|
+
|
|
9
|
+
Previously, when PRs were skipped or failed during merge queue processing, the Telegram message only showed the PR number without explaining why it was skipped. This left users unable to understand what action was required to resolve the issue.
|
|
10
|
+
|
|
11
|
+
Now the merge queue displays the reason for each skipped or failed PR in both:
|
|
12
|
+
- Progress messages (during processing)
|
|
13
|
+
- Final report messages (after completion)
|
|
14
|
+
|
|
15
|
+
Example output:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
Results:
|
|
19
|
+
⏭️ #1241 (Issue #1240): PR has merge conflicts
|
|
20
|
+
⏭️ #1257 (Issue #1256): PR has merge conflicts
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
This change follows UX best practices for error messages by:
|
|
24
|
+
- Showing the specific reason for each failure
|
|
25
|
+
- Using clear, human-readable language
|
|
26
|
+
- Helping users understand what action is needed
|
|
27
|
+
|
|
3
28
|
## 1.23.3
|
|
4
29
|
|
|
5
30
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -462,15 +462,17 @@ export class MergeQueueProcessor {
|
|
|
462
462
|
message += `${statusEmoji} ${update.current}\n\n`;
|
|
463
463
|
}
|
|
464
464
|
|
|
465
|
-
// Show errors/failures inline so user gets immediate feedback (Issue #1269)
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
465
|
+
// Show errors/failures/skips inline so user gets immediate feedback (Issue #1269, #1294)
|
|
466
|
+
// Include both FAILED and SKIPPED items with their reasons
|
|
467
|
+
const problemItems = update.items.filter(item => (item.status === MergeItemStatus.FAILED || item.status === MergeItemStatus.SKIPPED) && item.error);
|
|
468
|
+
if (problemItems.length > 0) {
|
|
469
|
+
message += `⚠️ *Issues:*\n`;
|
|
470
|
+
for (const item of problemItems.slice(0, 5)) {
|
|
471
|
+
const statusEmoji = item.status === MergeItemStatus.FAILED ? '❌' : '⏭️';
|
|
472
|
+
message += ` ${statusEmoji} \\#${item.prNumber}: ${this.escapeMarkdown(item.error.substring(0, 50))}${item.error.length > 50 ? '...' : ''}\n`;
|
|
471
473
|
}
|
|
472
|
-
if (
|
|
473
|
-
message += ` _...and ${
|
|
474
|
+
if (problemItems.length > 5) {
|
|
475
|
+
message += ` _...and ${problemItems.length - 5} more issues_\n`;
|
|
474
476
|
}
|
|
475
477
|
message += '\n';
|
|
476
478
|
}
|
|
@@ -538,7 +540,14 @@ export class MergeQueueProcessor {
|
|
|
538
540
|
message += `*Results:*\n`;
|
|
539
541
|
for (const item of report.items) {
|
|
540
542
|
const issueRef = item.issueNumber ? ` \\(Issue \\#${item.issueNumber}\\)` : '';
|
|
541
|
-
|
|
543
|
+
// Issue #1294: Show skip/fail reason so users understand what action is required
|
|
544
|
+
let reasonText = '';
|
|
545
|
+
if (item.error && (item.status === MergeItemStatus.SKIPPED || item.status === MergeItemStatus.FAILED)) {
|
|
546
|
+
// Truncate long reasons and escape for MarkdownV2
|
|
547
|
+
const truncatedReason = item.error.length > 50 ? item.error.substring(0, 47) + '...' : item.error;
|
|
548
|
+
reasonText = `: ${this.escapeMarkdown(truncatedReason)}`;
|
|
549
|
+
}
|
|
550
|
+
message += `${item.emoji} \\#${item.prNumber}${issueRef}${reasonText}\n`;
|
|
542
551
|
}
|
|
543
552
|
}
|
|
544
553
|
|