feat(FN-2681): add Vitest kill controls in system stats

- Add dashboard API endpoint and server route to terminate Vitest worker processes safely
- Extend legacy API client with killVitestProcess support for frontend invocation
- Add SystemStatsModal UI controls and styling for triggering Vitest kill actions, including mobile width stability fixes
- Expand route and modal tests to cover new controls and behavior
- Add changeset and architecture docs updates for the new Vitest kill capability
This commit is contained in:
Fusion
2026-04-27 05:50:40 -07:00
committed by gsxdsm
parent 1918810a19
commit 93274b8e18
8 changed files with 506 additions and 9 deletions

View File

@@ -114,6 +114,70 @@
font-size: 0.85rem;
}
.system-stats-modal__section-title--with-icon {
display: inline-flex;
align-items: center;
gap: var(--space-sm);
}
.system-stats-modal__vitest-controls {
display: grid;
gap: var(--space-sm);
}
.system-stats-modal__kill-row {
display: flex;
justify-content: flex-start;
align-items: center;
}
.system-stats-modal__toggle-row,
.system-stats-modal__threshold-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-sm);
color: var(--text);
}
.system-stats-modal__threshold-controls {
display: inline-flex;
align-items: center;
gap: var(--space-sm);
}
.system-stats-modal__threshold-controls input[type="range"] {
accent-color: var(--todo);
}
.system-stats-modal__toggle-row input[type="checkbox"] {
accent-color: var(--todo);
}
.system-stats-modal__threshold-row .input {
width: 6ch;
min-width: 6ch;
}
.system-stats-modal__last-kill {
margin: 0;
color: var(--text-dim);
font-size: 0.85rem;
}
.system-stats-modal__kill-result {
margin: 0;
font-size: 0.85rem;
}
.system-stats-modal__kill-result--success {
color: var(--color-success);
}
.system-stats-modal__kill-result--error {
color: var(--color-error);
}
@media (max-width: 768px) {
.system-stats-modal {
max-height: min(84vh, 60rem);
@@ -129,4 +193,24 @@
margin-left: var(--space-lg);
margin-right: var(--space-lg);
}
.system-stats-modal__toggle-row,
.system-stats-modal__threshold-row {
align-items: flex-start;
flex-direction: column;
}
.system-stats-modal__threshold-controls {
width: 100%;
}
.system-stats-modal__threshold-controls input[type="range"] {
flex: 1;
}
.system-stats-modal__threshold-row .input {
width: 7ch;
min-width: 7ch;
flex: 0 0 auto;
}
}