@in-the-loop-labs/pair-review 2.3.2 → 2.3.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@in-the-loop-labs/pair-review",
3
- "version": "2.3.2",
3
+ "version": "2.3.3",
4
4
  "description": "Your AI-powered code review partner - Close the feedback loop with AI coding agents",
5
5
  "main": "src/server.js",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pair-review",
3
- "version": "2.3.2",
3
+ "version": "2.3.3",
4
4
  "description": "pair-review app integration — Open PRs and local changes in the pair-review web UI, run server-side AI analysis, and address review feedback. Requires the pair-review MCP server.",
5
5
  "author": {
6
6
  "name": "in-the-loop-labs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-critic",
3
- "version": "2.3.2",
3
+ "version": "2.3.3",
4
4
  "description": "AI-powered code review analysis — Run three-level AI analysis and implement-review-fix loops directly in your coding agent. Works standalone, no server required.",
5
5
  "author": {
6
6
  "name": "in-the-loop-labs",
package/public/css/pr.css CHANGED
@@ -2106,6 +2106,7 @@ tr.newly-expanded .d2h-code-line-ctn {
2106
2106
  position: relative;
2107
2107
  display: flex;
2108
2108
  align-items: center;
2109
+ flex-shrink: 0;
2109
2110
  }
2110
2111
 
2111
2112
  .btn-reasoning-toggle {
@@ -2439,7 +2440,7 @@ tr.newly-expanded .d2h-code-line-ctn {
2439
2440
  text-overflow: ellipsis;
2440
2441
  white-space: nowrap;
2441
2442
  color: var(--color-text-secondary);
2442
- max-width: 400px;
2443
+ min-width: 0;
2443
2444
  font-size: 13px;
2444
2445
  }
2445
2446
 
@@ -4006,12 +4007,15 @@ tr.line-range-start .d2h-code-line-ctn {
4006
4007
  margin-bottom: 4px;
4007
4008
  padding-bottom: 4px;
4008
4009
  border-bottom: 1px solid rgba(139, 92, 246, 0.1);
4010
+ min-width: 0;
4009
4011
  }
4010
4012
 
4011
4013
  .user-comment-header-left {
4012
4014
  display: flex;
4013
4015
  align-items: center;
4014
4016
  gap: 8px;
4017
+ min-width: 0;
4018
+ overflow: hidden;
4015
4019
  }
4016
4020
 
4017
4021
  .user-comment-line-info {
@@ -4088,6 +4092,9 @@ tr.line-range-start .d2h-code-line-ctn {
4088
4092
  font-size: 12px;
4089
4093
  font-style: italic;
4090
4094
  margin-left: 6px;
4095
+ overflow: hidden;
4096
+ text-overflow: ellipsis;
4097
+ white-space: nowrap;
4091
4098
  }
4092
4099
 
4093
4100
  /* Eye icon toggle button */
@@ -4156,6 +4163,7 @@ tr.line-range-start .d2h-code-line-ctn {
4156
4163
  align-items: center;
4157
4164
  gap: 4px;
4158
4165
  margin-left: auto;
4166
+ flex-shrink: 0;
4159
4167
  }
4160
4168
 
4161
4169
  /* Hide edit/delete buttons when in editing mode */
@@ -594,12 +594,14 @@ class CommentManager {
594
594
  const commentHTML = `
595
595
  <div class="${commentClasses}">
596
596
  <div class="user-comment-header">
597
- <span class="comment-origin-icon">
598
- ${commentIcon}
599
- </span>
600
- <span class="user-comment-line-info">${lineInfo}</span>
601
- ${expandedContextIndicator}
602
- ${metadataHTML}
597
+ <div class="user-comment-header-left">
598
+ <span class="comment-origin-icon">
599
+ ${commentIcon}
600
+ </span>
601
+ <span class="user-comment-line-info">${lineInfo}</span>
602
+ ${expandedContextIndicator}
603
+ ${metadataHTML}
604
+ </div>
603
605
  <div class="user-comment-actions">
604
606
  <button class="btn-chat-comment" title="Chat about comment" data-chat-comment-id="${comment.id}" data-chat-file="${escapeHtml(comment.file || '')}" data-chat-line-start="${comment.line_start ?? ''}" data-chat-line-end="${comment.line_end || comment.line_start || ''}" data-chat-parent-id="${comment.parent_id || ''}">
605
607
  <svg viewBox="0 0 16 16" fill="currentColor"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"/></svg>
@@ -666,12 +668,14 @@ class CommentManager {
666
668
  const commentHTML = `
667
669
  <div class="user-comment editing-mode ${comment.parent_id ? 'adopted-comment comment-ai-origin' : 'comment-user-origin'}">
668
670
  <div class="user-comment-header">
669
- <span class="comment-origin-icon">
670
- ${commentIcon}
671
- </span>
672
- <span class="user-comment-line-info">${lineInfo}</span>
673
- ${comment.type === 'praise' ? `<span class="adopted-praise-badge" title="Nice Work"><svg viewBox="0 0 16 16" width="12" height="12"><path d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25z"/></svg>Nice Work</span>` : ''}
674
- ${comment.title ? `<span class="adopted-title">${escapeHtml(comment.title)}</span>` : ''}
671
+ <div class="user-comment-header-left">
672
+ <span class="comment-origin-icon">
673
+ ${commentIcon}
674
+ </span>
675
+ <span class="user-comment-line-info">${lineInfo}</span>
676
+ ${comment.type === 'praise' ? `<span class="adopted-praise-badge" title="Nice Work"><svg viewBox="0 0 16 16" width="12" height="12"><path d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25z"/></svg>Nice Work</span>` : ''}
677
+ ${comment.title ? `<span class="adopted-title">${escapeHtml(comment.title)}</span>` : ''}
678
+ </div>
675
679
  </div>
676
680
  <!-- Hidden body div for saving - pre-populate with markdown rendered content and store original -->
677
681
  <div class="user-comment-body" style="display: none;" data-original-markdown="${window.escapeHtmlAttribute(comment.body)}">${window.renderMarkdown ? window.renderMarkdown(comment.body) : escapeHtml(comment.body)}</div>
@@ -377,12 +377,14 @@ class FileCommentManager {
377
377
  // Use same structure as line-level user comments
378
378
  card.innerHTML = `
379
379
  <div class="user-comment-header">
380
- <span class="comment-origin-icon">
381
- ${commentIcon}
382
- </span>
383
- <span class="file-comment-badge" title="Comment applies to the entire file">File comment</span>
384
- ${praiseBadge}
385
- ${titleHtml}
380
+ <div class="user-comment-header-left">
381
+ <span class="comment-origin-icon">
382
+ ${commentIcon}
383
+ </span>
384
+ <span class="file-comment-badge" title="Comment applies to the entire file">File comment</span>
385
+ ${praiseBadge}
386
+ ${titleHtml}
387
+ </div>
386
388
  <div class="user-comment-actions">
387
389
  <button class="btn-chat-comment" title="Chat about comment" data-chat-comment-id="${comment.id}" data-chat-file="${this.escapeHtml(comment.file || '')}" data-chat-parent-id="${comment.parent_id || ''}">
388
390
  <svg viewBox="0 0 16 16" fill="currentColor"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"/></svg>