fix(agent-market): move discovery review to controlled queue
Some checks failed
CD Pipeline / tests (push) Successful in 1m43s
Code Review / ai-code-review (push) Successful in 12s
Ansible / Reboot Recovery Contract / validate (push) Failing after 12m47s
CD Pipeline / build-and-deploy (push) Successful in 5m52s
CD Pipeline / post-deploy-checks (push) Successful in 3m7s
Some checks failed
CD Pipeline / tests (push) Successful in 1m43s
Code Review / ai-code-review (push) Successful in 12s
Ansible / Reboot Recovery Contract / validate (push) Failing after 12m47s
CD Pipeline / build-and-deploy (push) Successful in 5m52s
CD Pipeline / post-deploy-checks (push) Successful in 3m7s
This commit is contained in:
@@ -1237,6 +1237,8 @@ export function AgentMarketTab() {
|
||||
.length
|
||||
const watchHealth = snapshot.market_watch_health
|
||||
const watchHealthHealthy = watchHealth.status === 'healthy'
|
||||
const watchHealthReasons = watchHealth.controlled_queue_reasons ?? watchHealth.operator_blockers ?? []
|
||||
const controlledReviewGate = snapshot.evaluation_cadence.controlled_review_gate ?? snapshot.evaluation_cadence.operator_review_gate
|
||||
|
||||
return (
|
||||
<div style={{ padding: 20, display: 'flex', flexDirection: 'column', gap: 16 }}>
|
||||
@@ -1867,15 +1869,15 @@ export function AgentMarketTab() {
|
||||
{formatDateTime(watchHealth.stale_after)}
|
||||
</DetailRow>
|
||||
<DetailRow label={t('health.priorityGate')}>
|
||||
{watchHealth.source_failures_block_priority_upgrade ? t('health.blocked') : t('health.clear')}
|
||||
{watchHealth.source_failures_require_controlled_reverify ? t('health.controlledReverify') : t('health.clear')}
|
||||
</DetailRow>
|
||||
<DetailRow label={t('health.blockedIntegrations')}>
|
||||
{watchHealth.blocked_from_integration}
|
||||
</DetailRow>
|
||||
<DetailRow label={t('health.blockers')}>
|
||||
<div style={{ display: 'flex', flexWrap: 'wrap', gap: 6, minWidth: 0 }}>
|
||||
{watchHealth.operator_blockers.length > 0 ? (
|
||||
watchHealth.operator_blockers.map(blocker => (
|
||||
{watchHealthReasons.length > 0 ? (
|
||||
watchHealthReasons.map(blocker => (
|
||||
<CandidatePill key={blocker} value={blocker} muted />
|
||||
))
|
||||
) : (
|
||||
@@ -1913,7 +1915,7 @@ export function AgentMarketTab() {
|
||||
<CandidatePill value={snapshot.evaluation_cadence.primary_source_policy} />
|
||||
</DetailRow>
|
||||
<DetailRow label={t('cadence.reviewGate')}>
|
||||
<CandidatePill value={snapshot.evaluation_cadence.operator_review_gate} muted />
|
||||
<CandidatePill value={controlledReviewGate} muted />
|
||||
</DetailRow>
|
||||
<DetailRow label={t('cadence.triggerModes')}>
|
||||
<div style={{ display: 'flex', flexWrap: 'wrap', gap: 6, minWidth: 0 }}>
|
||||
|
||||
@@ -1538,18 +1538,21 @@ export interface AgentMarketGovernanceSnapshot {
|
||||
schedule: string
|
||||
timezone: 'Asia/Taipei'
|
||||
next_scheduled_run_at: string
|
||||
trigger_modes: string[]
|
||||
primary_source_policy: string
|
||||
operator_review_gate: string
|
||||
}
|
||||
market_watch_health: {
|
||||
status: 'healthy' | 'blocked'
|
||||
freshness_sla_hours: 168
|
||||
stale_grace_hours: 6
|
||||
stale_after: string
|
||||
source_failures_block_priority_upgrade: boolean
|
||||
blocked_from_integration: number
|
||||
operator_blockers: string[]
|
||||
trigger_modes: string[]
|
||||
primary_source_policy: string
|
||||
controlled_review_gate: string
|
||||
operator_review_gate?: string
|
||||
}
|
||||
market_watch_health: {
|
||||
status: 'healthy' | 'controlled_queue' | 'blocked'
|
||||
freshness_sla_hours: 168
|
||||
stale_grace_hours: 6
|
||||
stale_after: string
|
||||
source_failures_require_controlled_reverify: boolean
|
||||
source_failures_block_priority_upgrade?: boolean
|
||||
blocked_from_integration: number
|
||||
controlled_queue_reasons: string[]
|
||||
operator_blockers?: string[]
|
||||
}
|
||||
summary: {
|
||||
candidate_count: number
|
||||
@@ -1613,10 +1616,12 @@ export interface AgentMarketGovernanceSnapshot {
|
||||
display_name: string
|
||||
priority: number
|
||||
queue_status:
|
||||
| 'baseline_protected'
|
||||
| 'blocked_needs_evidence'
|
||||
| 'operator_review_required'
|
||||
| 'operator_priority_review'
|
||||
| 'baseline_protected'
|
||||
| 'blocked_needs_evidence'
|
||||
| 'controlled_review_required'
|
||||
| 'controlled_priority_review'
|
||||
| 'operator_review_required'
|
||||
| 'operator_priority_review'
|
||||
| 'watch_only_blocked'
|
||||
| 'watch_only_monitoring'
|
||||
| 'registered_no_review'
|
||||
|
||||
Reference in New Issue
Block a user