feat(FN-3939): audit and patch PR #59 residual defects, add retry parity an

Completes FN-3939 audit work for PR #59 residual defects by refactoring the mission execution loop in the engine (halving its complexity), adding self-healing test coverage, and wiring in task workflow route improvements. Retry and validation behavior updates are documented in the changeset and skil

Fusion-Task-Id: FN-3939
This commit is contained in:
Fusion
2026-05-10 16:19:04 -07:00
committed by gsxdsm
parent 60d16aa267
commit 76c00fbadd
15 changed files with 308 additions and 94 deletions

View File

@@ -852,7 +852,7 @@
height: 100%;
background: var(--color-success);
border-radius: 2px;
transition: width 0.3s ease;
transition: width var(--transition-slow);
}
.mission-health-badge {
@@ -1485,7 +1485,7 @@
}
.mission-plan-state-indicator--not-started {
background: color-mix(in srgb, var(--text-secondary) 30%, transparent);
background: color-mix(in srgb, var(--text-muted) 30%, transparent);
}
.mission-plan-state-indicator--planned {
@@ -1512,15 +1512,15 @@
.mission-triage-preview {
margin-top: var(--space-sm);
padding: var(--space-sm) var(--space-md);
border: 1px solid var(--border-primary);
border: 1px solid var(--border);
border-radius: var(--radius-md);
background: var(--surface-raised);
background: var(--surface);
}
.mission-triage-preview__header {
font-size: 12px;
font-weight: 600;
color: var(--text-secondary);
color: var(--text-muted);
margin-bottom: var(--space-xs);
text-transform: uppercase;
letter-spacing: 0.5px;
@@ -1530,7 +1530,7 @@
white-space: pre-wrap;
font-size: 12px;
font-family: var(--font-mono, monospace);
color: var(--text-secondary);
color: var(--text-muted);
max-height: 200px;
overflow-y: auto;
padding: var(--space-xs);
@@ -1601,7 +1601,7 @@
.mission-assertions__title {
font-size: 13px;
font-weight: 600;
color: var(--text-secondary);
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.5px;
}
@@ -1621,7 +1621,7 @@
/* ── Single Assertion ── */
.mission-assertion {
background: var(--surface-raised);
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius-sm);
padding: var(--space-sm);
@@ -1653,7 +1653,7 @@
.mission-assertion__text {
font-size: 12px;
color: var(--text-secondary);
color: var(--text-muted);
white-space: pre-wrap;
line-height: 1.5;
margin-bottom: var(--space-sm);
@@ -1662,7 +1662,7 @@
.mission-assertion__linked-count {
font-size: 11px;
color: var(--text-dim);
background: var(--surface-raised);
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius-sm);
padding: 1px 6px;
@@ -1700,7 +1700,7 @@
left: 0;
right: 0;
z-index: 100;
background: var(--surface-raised);
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius-sm);
box-shadow: var(--shadow-md);
@@ -1730,7 +1730,7 @@
border: none;
cursor: pointer;
text-align: left;
transition: background-color 0.1s;
transition: background-color var(--transition-instant);
}
.mission-assertion__feature-picker-item:hover:not(:disabled) {
@@ -1762,7 +1762,7 @@
align-items: center;
gap: var(--space-sm);
padding: var(--space-xs) 0;
border-bottom: 1px solid var(--border-subtle);
border-bottom: 1px solid var(--border);
}
.mission-assertion__linked-feature:last-child {
@@ -2064,7 +2064,7 @@
padding: var(--space-md);
border: 1px solid var(--border);
border-radius: var(--radius-md);
background: var(--surface-raised);
background: var(--surface);
display: flex;
flex-direction: column;
gap: var(--space-sm);