bgrun 3.10.2 → 3.12.0

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.
@@ -25,10 +25,18 @@ export default function DashboardPage() {
25
25
  <div className="stat-label">Stopped</div>
26
26
  <div className="stat-value" id="stopped-count">–</div>
27
27
  </div>
28
+ <div className="stat-card guarded">
29
+ <div className="stat-label">Guarded</div>
30
+ <div className="stat-value" id="guarded-count">–</div>
31
+ </div>
28
32
  <div className="stat-card memory">
29
33
  <div className="stat-label">Total Memory</div>
30
34
  <div className="stat-value" id="memory-count">–</div>
31
35
  </div>
36
+ <div className="stat-card restarts">
37
+ <div className="stat-label">Guard Restarts</div>
38
+ <div className="stat-value" id="restarts-count">0</div>
39
+ </div>
32
40
  </div>
33
41
 
34
42
  {/* Toolbar */}
@@ -45,6 +53,7 @@ export default function DashboardPage() {
45
53
  <line x1="21" y1="21" x2="16.65" y2="16.65" />
46
54
  </svg>
47
55
  <input type="text" className="search-input" id="search-input" placeholder="Filter processes..." />
56
+ <span className="search-count" id="search-count" style={{ display: 'none' }}></span>
48
57
  <span className="search-shortcut">/</span>
49
58
  </div>
50
59
  </div>
@@ -55,6 +64,19 @@ export default function DashboardPage() {
55
64
  <path d="M20.49 15a9 9 0 1 1-2.12-9.36L23 10" />
56
65
  </svg>
57
66
  </button>
67
+ <button className="btn btn-ghost btn-guard-all" id="guard-all-btn" title="Guard All Processes">
68
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
69
+ <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" />
70
+ </svg>
71
+ <span id="guard-all-label">Guard All</span>
72
+ </button>
73
+ <span className="guard-sentinel-pill" id="guard-sentinel-pill" title="Standalone guard process status">
74
+ <span className="guard-sentinel-dot" id="guard-sentinel-dot" />
75
+ <span id="guard-sentinel-label">Guard: –</span>
76
+ </span>
77
+ <button className="btn btn-ghost btn-icon" id="shortcuts-btn" title="Keyboard Shortcuts (?)">
78
+ <span style={{ fontSize: '0.85rem', fontWeight: '700' }}>?</span>
79
+ </button>
58
80
  <button className="btn btn-primary" id="new-process-btn">
59
81
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
60
82
  <line x1="12" y1="5" x2="12" y2="19" />
@@ -74,7 +96,8 @@ export default function DashboardPage() {
74
96
  <th style={{ width: '90px' }}>Status</th>
75
97
  <th style={{ width: '70px' }}>PID</th>
76
98
  <th style={{ width: '70px' }}>Port</th>
77
- <th style={{ width: '70px' }}>Memory</th>
99
+ <th style={{ width: '80px' }}>CPU</th>
100
+ <th style={{ width: '120px' }}>Memory</th>
78
101
  <th>Command</th>
79
102
  <th style={{ width: '100px' }}>Runtime</th>
80
103
  </tr>
@@ -202,6 +225,34 @@ export default function DashboardPage() {
202
225
  </div>
203
226
  </div>
204
227
  </div>
228
+
229
+ {/* Keyboard Shortcuts Overlay */}
230
+ <div className="shortcuts-overlay" id="shortcuts-overlay">
231
+ <div className="shortcuts-panel">
232
+ <div className="shortcuts-header">
233
+ <h3>⌨️ Keyboard Shortcuts</h3>
234
+ <button className="shortcuts-close" id="shortcuts-close-btn">✕</button>
235
+ </div>
236
+ <div className="shortcuts-grid">
237
+ <div className="shortcut-section">
238
+ <h4>Navigation</h4>
239
+ <div className="shortcut-row"><kbd>↑</kbd><kbd>↓</kbd><span>Navigate processes</span></div>
240
+ <div className="shortcut-row"><kbd>Enter</kbd><span>Open process drawer</span></div>
241
+ <div className="shortcut-row"><kbd>/</kbd><span>Focus search</span></div>
242
+ <div className="shortcut-row"><kbd>Esc</kbd><span>Close panel / blur</span></div>
243
+ </div>
244
+ <div className="shortcut-section">
245
+ <h4>Actions</h4>
246
+ <div className="shortcut-row"><kbd>R</kbd><span>Restart process</span></div>
247
+ <div className="shortcut-row"><kbd>S</kbd><span>Stop process</span></div>
248
+ <div className="shortcut-row"><kbd>G</kbd><span>Toggle guard</span></div>
249
+ <div className="shortcut-row"><kbd>D</kbd><span>Delete process</span></div>
250
+ <div className="shortcut-row"><kbd>N</kbd><span>New process</span></div>
251
+ <div className="shortcut-row"><kbd>?</kbd><span>This help</span></div>
252
+ </div>
253
+ </div>
254
+ </div>
255
+ </div>
205
256
  </div>
206
257
  );
207
258
  }