claude-code-templates 1.28.6 → 1.28.7

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": "claude-code-templates",
3
- "version": "1.28.6",
3
+ "version": "1.28.7",
4
4
  "description": "CLI tool to setup Claude Code configurations with framework-specific commands, automation hooks and MCP Servers for your projects",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -418,6 +418,7 @@
418
418
  let toolNodes = new Map(); // Map of tool name -> tool node
419
419
  let uniqueTools = new Map(); // Track unique tools with their colors
420
420
  let modelNodes = new Map(); // Map of model name -> model node
421
+ let toolQueue = []; // Queue for gradual tool processing
421
422
 
422
423
  // Mouse tracking
423
424
  let mouseX = 0;
@@ -1776,6 +1777,21 @@
1776
1777
  recalculateModelPercentages();
1777
1778
  }
1778
1779
 
1780
+ // Process tool queue gradually (max 3 tools per frame to avoid lag)
1781
+ const toolsToProcessPerFrame = 3;
1782
+ for (let i = 0; i < toolsToProcessPerFrame && toolQueue.length > 0; i++) {
1783
+ const { tool, count, color } = toolQueue.shift();
1784
+ const node = getOrCreateToolNode(tool, color);
1785
+
1786
+ // Add all uses at once
1787
+ for (let j = 0; j < count; j++) {
1788
+ node.addUse();
1789
+ }
1790
+
1791
+ // Create only ONE visual beam per tool
1792
+ setTimeout(() => addToolBeam(tool), Math.random() * 300);
1793
+ }
1794
+
1779
1795
  // Apply zoom and pan transformations
1780
1796
  ctx.save();
1781
1797
  ctx.translate(panX, panY);
@@ -1918,10 +1934,9 @@
1918
1934
  stats.conversations += event.count;
1919
1935
  stats.tools += actualToolCount;
1920
1936
 
1921
- // Add tool counts directly (optimized - no individual beams)
1937
+ // Add tool counts to queue for gradual processing
1922
1938
  if (event.toolCounts) {
1923
1939
  Object.entries(event.toolCounts).forEach(([tool, count]) => {
1924
- // Get or create tool node and update count directly
1925
1940
  const toolColors = {
1926
1941
  'Read': '#60a5fa', 'Write': '#34d399', 'Edit': '#fbbf24',
1927
1942
  'Bash': '#f87171', 'TodoWrite': '#a78bfa', 'Task': '#fb923c',
@@ -1929,17 +1944,9 @@
1929
1944
  'WebSearch': '#818cf8', 'KillShell': '#ef4444', 'TaskOutput': '#06b6d4'
1930
1945
  };
1931
1946
  const color = toolColors[tool] || '#3b82f6';
1932
- const node = getOrCreateToolNode(tool, color);
1933
-
1934
- // Add all uses at once (much faster than creating beams)
1935
- for (let i = 0; i < count; i++) {
1936
- node.addUse();
1937
- }
1938
-
1939
- // Create only ONE visual beam per tool (not per use)
1940
- setTimeout(() => addToolBeam(tool), Math.random() * 300);
1941
1947
 
1942
- console.log(` 🔧 Tool ${tool}: +${count} uses (total: ${node.count})`);
1948
+ // Add to queue for gradual processing
1949
+ toolQueue.push({ tool, count, color });
1943
1950
  });
1944
1951
  } else {
1945
1952
  // Fallback to old method if toolCounts not available
@@ -2153,6 +2160,7 @@
2153
2160
  currentDayIndex = 0;
2154
2161
  beams = [];
2155
2162
  permanentConnections.clear(); // Clear permanent connection beams
2163
+ toolQueue = []; // Clear tool processing queue
2156
2164
  toolNodes.clear(); // Clear tool nodes
2157
2165
  uniqueTools.clear(); // Clear unique tools
2158
2166
  modelNodes.clear(); // Clear model nodes