viberadar 0.3.62 → 0.3.64

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.
@@ -855,31 +855,6 @@
855
855
  line-height: 1.4;
856
856
  }
857
857
  .agent-queue-action:hover { border-color: var(--blue); color: var(--text); }
858
- .agent-summary-matrix {
859
- display: none;
860
- border-bottom: 1px solid var(--border);
861
- background: #090f17;
862
- padding: 8px 12px;
863
- max-height: 150px;
864
- overflow: auto;
865
- font-size: 11px;
866
- }
867
- .agent-summary-title {
868
- color: var(--muted);
869
- font-weight: 600;
870
- margin-bottom: 6px;
871
- }
872
- .agent-summary-row {
873
- display: grid;
874
- grid-template-columns: 60px 1fr auto;
875
- gap: 8px;
876
- margin-bottom: 4px;
877
- align-items: center;
878
- }
879
- .agent-summary-status-covered { color: var(--green); }
880
- .agent-summary-status-not-covered { color: var(--red); }
881
- .agent-summary-status-blocked { color: var(--yellow); }
882
- .agent-summary-status-infra { color: var(--dim); }
883
858
  /* ── Console Tabs ───────────────────────────────────────────────────────── */
884
859
  .agent-tabs-bar {
885
860
  display: flex; align-items: stretch; overflow-x: auto;
@@ -1139,7 +1114,6 @@
1139
1114
  <span class="agent-toolbar-meta" id="agentSearchMeta">0 matches</span>
1140
1115
  </div>
1141
1116
  <div class="agent-queue-panel" id="agentQueuePanel"></div>
1142
- <div class="agent-summary-matrix" id="agentSummaryMatrix"></div>
1143
1117
  <div class="agent-tabs-bar" id="agentTabsBar"></div>
1144
1118
  <div class="agent-terminal" id="agentTerminal"></div>
1145
1119
  </div>
@@ -1357,7 +1331,6 @@ let agentQueueState = [];
1357
1331
  let agentRunsState = [];
1358
1332
  let agentActiveRun = null;
1359
1333
  let currentRunId = null;
1360
- let lastRunSummary = null;
1361
1334
 
1362
1335
  // ─── Console Sessions ─────────────────────────────────────────────────────────
1363
1336
  const consoleSessions = []; // { id, title, lines, status, startTime }
@@ -1452,7 +1425,6 @@ function switchSession(id) {
1452
1425
  }
1453
1426
  renderTabs();
1454
1427
  renderActiveSession();
1455
- syncSummaryForActiveSession();
1456
1428
  }
1457
1429
 
1458
1430
  function closeSession(id) {
@@ -1468,10 +1440,9 @@ function closeSession(id) {
1468
1440
  activeSessionId = consoleSessions.length > 0
1469
1441
  ? consoleSessions[Math.min(idx, consoleSessions.length - 1)].id
1470
1442
  : null;
1471
- }
1443
+ }
1472
1444
  renderTabs();
1473
1445
  renderActiveSession();
1474
- syncSummaryForActiveSession();
1475
1446
  saveSessions();
1476
1447
  }
1477
1448
 
@@ -1829,42 +1800,6 @@ function renderQueuePanel() {
1829
1800
  `;
1830
1801
  }
1831
1802
 
1832
- function renderRunSummaryMatrix(summary = lastRunSummary) {
1833
- const box = document.getElementById('agentSummaryMatrix');
1834
- if (!box) return;
1835
- const outcomes = summary?.fileOutcomes || [];
1836
- if (!Array.isArray(outcomes) || outcomes.length === 0) {
1837
- box.style.display = 'none';
1838
- box.innerHTML = '';
1839
- return;
1840
- }
1841
- const stats = summary?.validationStats || {};
1842
- box.style.display = 'block';
1843
- box.innerHTML = `
1844
- <div class="agent-summary-title">
1845
- Матрица итогов (run: ${escapeHtml(summary?.runId || '—')}) • covered: ${stats.covered ?? 0} • not-covered: ${stats.notCovered ?? 0} • blocked: ${stats.blocked ?? 0} • infra: ${stats.infra ?? 0}
1846
- </div>
1847
- ${outcomes.map((entry) => `
1848
- <div class="agent-summary-row">
1849
- <span class="agent-summary-status-${entry.status}">${escapeHtml(entry.status)}</span>
1850
- <span title="${escapeHtml(entry.sourcePath || '')}">${escapeHtml(entry.sourcePath || '')}</span>
1851
- <span style="color:var(--dim)">${escapeHtml(entry.testFile || entry.reason || '')}</span>
1852
- </div>
1853
- `).join('')}
1854
- `;
1855
- }
1856
-
1857
- function findSummaryForRun(runId) {
1858
- if (!runId) return null;
1859
- return (agentRunsState || []).find((r) => r.runId === runId && Array.isArray(r.fileOutcomes) && r.fileOutcomes.length > 0) || null;
1860
- }
1861
-
1862
- function syncSummaryForActiveSession() {
1863
- const runId = sessionRunMap.get(activeSessionId) || currentRunId;
1864
- const summary = findSummaryForRun(runId) || null;
1865
- renderRunSummaryMatrix(summary);
1866
- }
1867
-
1868
1803
  async function cancelQueueItem(runId) {
1869
1804
  await fetch(`/api/queue/${encodeURIComponent(runId)}/cancel`, { method: 'POST' });
1870
1805
  await loadAgentState();
@@ -1912,11 +1847,6 @@ function applyAgentStateSnapshot(state) {
1912
1847
  } else {
1913
1848
  setAgentRunning(false);
1914
1849
  }
1915
- const latestSummary = [...agentRunsState].reverse().find((r) => Array.isArray(r.fileOutcomes) && r.fileOutcomes.length > 0);
1916
- if (latestSummary) {
1917
- lastRunSummary = latestSummary;
1918
- }
1919
- syncSummaryForActiveSession();
1920
1850
  }
1921
1851
 
1922
1852
  async function loadAgentState() {
@@ -1969,7 +1899,6 @@ function updateSessionFromRun(run) {
1969
1899
  if (currentRunId === run.runId) currentRunId = null;
1970
1900
  setAgentRunning(false);
1971
1901
  }
1972
- syncSummaryForActiveSession();
1973
1902
  }
1974
1903
 
1975
1904
  function refreshPathActivityFromState() {
@@ -3709,10 +3638,6 @@ function connectSSE() {
3709
3638
  const { run } = JSON.parse(e.data || '{}');
3710
3639
  if (!run) return;
3711
3640
  updateSessionFromRun(run);
3712
- if (Array.isArray(run.fileOutcomes) && run.fileOutcomes.length > 0) {
3713
- lastRunSummary = run;
3714
- }
3715
- syncSummaryForActiveSession();
3716
3641
  refreshPathActivityFromState();
3717
3642
  renderContent();
3718
3643
  });
@@ -3787,7 +3712,6 @@ function connectSSE() {
3787
3712
  es.addEventListener('agent-summary', (e) => {
3788
3713
  const {
3789
3714
  runId,
3790
- fileOutcomes = [],
3791
3715
  validationStats = null,
3792
3716
  passed = 0, failed = 0, files = [],
3793
3717
  testedFileCount = files.length,
@@ -3820,10 +3744,6 @@ function connectSSE() {
3820
3744
  ${autoFixQueued ? `<div style="font-size:11px;color:var(--yellow);margin-top:4px">🛠️ Автоисправление поставлено в очередь</div>` : ''}
3821
3745
  ${files.map(f => `<div style="font-size:11px;color:var(--dim);margin-top:3px">📄 ${f}</div>`).join('')}
3822
3746
  `;
3823
- if (fileOutcomes.length > 0) {
3824
- lastRunSummary = { runId, fileOutcomes, validationStats };
3825
- }
3826
- syncSummaryForActiveSession();
3827
3747
  const targetId = runId ? (runSessionMap.get(runId) || runningSessionId || activeSessionId) : (runningSessionId || activeSessionId);
3828
3748
  if (targetId) {
3829
3749
  appendToSession(targetId, box);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "viberadar",
3
- "version": "0.3.62",
3
+ "version": "0.3.64",
4
4
  "description": "Live module map with test coverage for vibecoding projects",
5
5
  "main": "./dist/cli.js",
6
6
  "bin": {