@yemi33/minions 0.1.749 → 0.1.751

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,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.751 (2026-04-09)
4
+
5
+ ### Fixes
6
+ - tab title no longer covers close button
7
+ - replace stale _ccQueue/_ccAbortController references with per-tab state
8
+
3
9
  ## 0.1.749 (2026-04-09)
4
10
 
5
11
  ### Features
@@ -210,7 +210,7 @@ function ccRenderTabBar() {
210
210
  var t = _ccTabs[i];
211
211
  var isActive = t.id === _ccActiveTabId;
212
212
  html += '<div class="cc-tab' + (isActive ? ' active' : '') + '" onclick="ccSwitchTab(\'' + t.id + '\')" title="' + escHtml(t.title) + '">';
213
- html += escHtml(t.title);
213
+ html += '<span class="cc-tab-text">' + escHtml(t.title) + '</span>';
214
214
  html += '<span class="cc-tab-close" onclick="event.stopPropagation();ccCloseTab(\'' + t.id + '\')">&times;</span>';
215
215
  html += '</div>';
216
216
  }
@@ -352,10 +352,11 @@ async function ccSend() {
352
352
  function _renderQueueIndicator() {
353
353
  // Remove all existing queue indicators
354
354
  document.querySelectorAll('.cc-queue-item').forEach(function(el) { el.remove(); });
355
- if (_ccQueue.length === 0) return;
355
+ var tab = _ccActiveTab();
356
+ var queue = (tab && tab._queue) || [];
357
+ if (queue.length === 0) return;
356
358
  var msgs = document.getElementById('cc-messages');
357
- // Add each queued message as its own bubble at the bottom
358
- _ccQueue.forEach(function(m) {
359
+ queue.forEach(function(m) {
359
360
  var el = document.createElement('div');
360
361
  el.className = 'cc-queue-item';
361
362
  el.style.cssText = 'padding:8px 12px;border-radius:8px;font-size:12px;line-height:1.6;max-width:95%;align-self:flex-end;background:var(--blue);color:#fff;opacity:0.5;order:9999';
@@ -452,7 +453,7 @@ async function _ccDoSend(message, skipUserMsg) {
452
453
  html += '<div style="margin-top:' + (streamedText ? '6px' : '0') + '">' + _getThinkingHtml() + '</div>';
453
454
  streamDiv.innerHTML = html;
454
455
  // Re-append queue indicators so they stay below the streaming content
455
- if (_ccQueue.length > 0) _renderQueueIndicator();
456
+ if (activeTab._queue && activeTab._queue.length > 0) _renderQueueIndicator();
456
457
  if (msgs.scrollHeight - msgs.scrollTop - msgs.clientHeight < 150) msgs.scrollTop = msgs.scrollHeight;
457
458
  }
458
459
  // Start phase timer immediately so thinking text updates while waiting for SSE
@@ -604,8 +605,9 @@ function ccRetryLast() {
604
605
  tab.messages = tab.messages.slice(0, -1); // remove error from history
605
606
  // Resend, then drain queue
606
607
  _ccDoSend(text.trim()).then(async function() {
607
- while (_ccQueue.length > 0) {
608
- var next = _ccQueue.shift();
608
+ var retryTab = _ccActiveTab();
609
+ while (retryTab && retryTab._queue && retryTab._queue.length > 0) {
610
+ var next = retryTab._queue.shift();
609
611
  _renderQueueIndicator();
610
612
  await _ccDoSend(next);
611
613
  }
@@ -621,9 +621,10 @@
621
621
  @keyframes notifPulse { 0%,100% { opacity: 1; } 50% { opacity: 0.5; } }
622
622
 
623
623
  /* Command Center tab bar */
624
- .cc-tab { padding: 4px 10px; font-size: 10px; border: 1px solid var(--border); border-bottom: none; border-radius: 6px 6px 0 0; background: var(--surface2); color: var(--muted); cursor: pointer; white-space: nowrap; max-width: 140px; overflow: hidden; text-overflow: ellipsis; display: inline-flex; align-items: center; gap: 2px; flex-shrink: 0; margin-bottom: -1px; position: relative; }
624
+ .cc-tab { padding: 4px 10px; font-size: 10px; border: 1px solid var(--border); border-bottom: none; border-radius: 6px 6px 0 0; background: var(--surface2); color: var(--muted); cursor: pointer; white-space: nowrap; max-width: 140px; display: inline-flex; align-items: center; gap: 2px; flex-shrink: 0; margin-bottom: -1px; position: relative; }
625
+ .cc-tab-text { overflow: hidden; text-overflow: ellipsis; flex: 1; min-width: 0; }
625
626
  .cc-tab.active { color: var(--text); background: var(--bg); border-color: var(--border); z-index: 1; font-weight: 600; }
626
- .cc-tab-close { margin-left: 4px; opacity: 0; cursor: pointer; font-size: 12px; line-height: 1; }
627
+ .cc-tab-close { flex-shrink: 0; margin-left: 4px; opacity: 0; cursor: pointer; font-size: 12px; line-height: 1; }
627
628
  .cc-tab:hover .cc-tab-close { opacity: 0.5; }
628
629
  .cc-tab-close:hover { opacity: 1; color: var(--red); }
629
630
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.749",
3
+ "version": "0.1.751",
4
4
  "description": "Multi-agent AI dev team that runs from ~/.minions/ — five autonomous agents share a single engine, dashboard, and knowledge base",
5
5
  "bin": {
6
6
  "minions": "bin/minions.js"