fix(awooop): route alert handoff through controlled review
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 18s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 18s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
This commit is contained in:
@@ -245,25 +245,27 @@ function FocusIncidentEvidencePanel({
|
||||
const latestOutboundLabel = latestOutbound?.sent_at
|
||||
? formatTimestamp(latestOutbound.sent_at, locale, emptyLabel)
|
||||
: emptyLabel
|
||||
const needsHumanLabel = chain?.needs_human ? t('operatorFlow.needsHumanYes') : t('operatorFlow.needsHumanNo')
|
||||
const handoffTone = !chain ? 'gray' : chain.needs_human ? 'red' : 'green'
|
||||
const controlledReviewLabel = chain?.needs_human
|
||||
? t('operatorFlow.controlledReviewYes')
|
||||
: t('operatorFlow.controlledReviewNo')
|
||||
const handoffTone = !chain ? 'gray' : chain.needs_human ? 'amber' : 'green'
|
||||
const handoffTitle = chain?.needs_human
|
||||
? t('operatorFlow.handoff.titleManual')
|
||||
? t('operatorFlow.handoff.titleControlledReview')
|
||||
: chain
|
||||
? t('operatorFlow.handoff.titleAutomated')
|
||||
: t('operatorFlow.handoff.titleUnknown')
|
||||
const handoffAction = !chain
|
||||
? t('operatorFlow.handoff.actionUnknown')
|
||||
: chain.needs_human
|
||||
? t('operatorFlow.handoff.actionManualVerifyOrRepair')
|
||||
? t('operatorFlow.handoff.actionControlledVerifyOrRepair')
|
||||
: t('operatorFlow.handoff.actionNoManual')
|
||||
const handoffOwner = chain?.needs_human
|
||||
? t('operatorFlow.handoff.ownerSre')
|
||||
? t('operatorFlow.handoff.ownerControlledReview')
|
||||
: chain
|
||||
? t('operatorFlow.handoff.ownerAutomation')
|
||||
: emptyLabel
|
||||
const handoffEntry = chain?.needs_human
|
||||
? t('operatorFlow.handoff.entryManual')
|
||||
? t('operatorFlow.handoff.entryControlledReview')
|
||||
: chain
|
||||
? t('operatorFlow.handoff.entryReadOnly')
|
||||
: emptyLabel
|
||||
@@ -328,9 +330,9 @@ function FocusIncidentEvidencePanel({
|
||||
detail: t('operatorFlow.aiDetail', {
|
||||
state: outcomeStateLabel,
|
||||
nextStep: nextActionLabel,
|
||||
needsHuman: needsHumanLabel,
|
||||
controlledReview: controlledReviewLabel,
|
||||
}),
|
||||
tone: chain?.needs_human ? 'red' : chain ? 'green' : 'gray',
|
||||
tone: chain?.needs_human ? 'amber' : chain ? 'green' : 'gray',
|
||||
testId: 'alerts-ai-state',
|
||||
},
|
||||
{
|
||||
@@ -467,7 +469,7 @@ function FocusIncidentEvidencePanel({
|
||||
className={cn(
|
||||
'mb-3 border px-3 py-3',
|
||||
handoffTone === 'green' && 'border-[#9bc7a4] bg-[#f0faf2]',
|
||||
handoffTone === 'red' && 'border-[#e2a29b] bg-[#fff0ef]',
|
||||
handoffTone === 'amber' && 'border-[#d9b36f] bg-[#fff7e8]',
|
||||
handoffTone === 'gray' && 'border-[#d8d3c7] bg-[#faf9f3]',
|
||||
)}
|
||||
>
|
||||
|
||||
@@ -247,7 +247,7 @@ function IncidentObservabilityFocus({
|
||||
const ansibleTone: EvidenceTone = ansible?.applied || (ansible?.apply_total ?? 0) > 0
|
||||
? 'success'
|
||||
: (ansible?.considered || (ansible?.record_total ?? 0) > 0 ? 'warning' : 'neutral')
|
||||
const handoffTone: EvidenceTone = chain?.needs_human ? 'blocked' : (chain ? 'success' : 'neutral')
|
||||
const handoffTone: EvidenceTone = chain?.needs_human ? 'warning' : (chain ? 'success' : 'neutral')
|
||||
|
||||
const navItems = [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user