feat(governance): 新增 post-release verifier rollback gate
Some checks failed
Code Review / ai-code-review (push) Successful in 14s
CD Pipeline / tests (push) Successful in 1m30s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled

This commit is contained in:
Your Name
2026-06-14 05:33:48 +08:00
parent 33dc2f416c
commit 040c320c5e
13 changed files with 1676 additions and 6 deletions

View File

@@ -555,6 +555,11 @@ export const apiClient = {
return handleResponse<AiAgentResultCaptureOwnerReleaseApprovalGateSnapshot>(res)
},
async getAiAgentResultCapturePostReleaseVerifierRollbackGate() {
const res = await fetch(`${API_BASE_URL}/agents/agent-result-capture-post-release-verifier-rollback-gate`)
return handleResponse<AiAgentResultCapturePostReleaseVerifierRollbackGateSnapshot>(res)
},
async getAiAgentOwnerApprovedFixtureDryRun() {
const res = await fetch(`${API_BASE_URL}/agents/agent-owner-approved-fixture-dry-run`)
return handleResponse<AiAgentOwnerApprovedFixtureDryRunSnapshot>(res)
@@ -7746,6 +7751,212 @@ export interface AiAgentResultCaptureOwnerReleaseApprovalGateSnapshot {
}
}
export interface AiAgentResultCapturePostReleaseVerifierRollbackGateSnapshot {
schema_version: 'ai_agent_result_capture_post_release_verifier_rollback_gate_v1'
generated_at: string
program_status: {
overall_completion_percent: number
current_priority: 'P0' | 'P1' | 'P2' | 'P3'
current_task_id: 'P2-132'
next_task_id: 'P2-133'
read_only_mode: true
runtime_authority: 'result_capture_post_release_verifier_rollback_gate_only_no_live_write'
status_note: string
}
source_refs: string[]
prior_owner_release_approval_gate: {
schema_version: string
owner_release_approval_packet_count: number
maintenance_window_approval_gate_count: number
live_apply_release_approval_gate_count: number
rollback_owner_approval_check_count: number
blocked_approval_transition_count: number
operator_action_count: number
approval_required_total: number
blocked_total: number
owner_release_approved_count: number
maintenance_window_approved_count: number
rollback_owner_confirmed_count: number
post_release_verifier_ready_count: number
release_approval_pass_count: number
live_apply_release_pass_count: number
writer_apply_count: number
execution_apply_count: number
receipt_write_count: number
result_capture_write_count: number
learning_write_count: number
playbook_trust_write_count: number
reviewer_queue_write_count: number
gateway_queue_write_count: number
telegram_send_count: number
bot_api_call_count: number
report_receipt_write_count: number
readiness_note: string
}
post_release_verifier_truth: {
p2_131_approval_gate_loaded: boolean
post_release_verifier_gate_ready: boolean
rollback_release_gate_ready: boolean
release_verification_hold_active: boolean
live_apply_post_release_hold_active: boolean
owner_release_review_still_required: boolean
maintenance_window_review_still_required: boolean
rollback_owner_review_required: boolean
redaction_review_required: boolean
post_release_verifier_gate_only: boolean
owner_release_approved: boolean
maintenance_window_approved: boolean
rollback_owner_confirmed: boolean
post_release_verifier_ready: boolean
release_verification_passed: boolean
rollback_release_passed: boolean
live_apply_release_passed: boolean
writer_apply_enabled: boolean
execution_apply_enabled: boolean
receipt_write_enabled: boolean
reviewer_queue_write_enabled: boolean
gateway_queue_write_enabled: boolean
telegram_send_enabled: boolean
bot_api_call_enabled: boolean
report_receipt_write_enabled: boolean
result_capture_write_enabled: boolean
learning_write_enabled: boolean
playbook_trust_write_enabled: boolean
production_write_enabled: boolean
secret_read_enabled: boolean
destructive_operation_enabled: boolean
owner_release_approved_count: number
maintenance_window_approved_count: number
rollback_owner_confirmed_count: number
post_release_verifier_ready_count: number
release_verification_pass_count: number
rollback_release_pass_count: number
live_apply_release_pass_count: number
writer_apply_count: number
execution_apply_count: number
receipt_write_count: number
reviewer_queue_write_count: number
gateway_queue_write_count: number
telegram_send_count: number
bot_api_call_count: number
report_receipt_write_count: number
result_capture_write_count: number
learning_write_count: number
playbook_trust_write_count: number
production_write_count: number
secret_read_count: number
destructive_operation_count: number
truth_note: string
}
post_release_verifier_gates: Array<{
gate_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
source_approval_gate: string
status: 'ready_for_owner_review' | 'approval_required' | 'blocked_by_policy'
gate_mode: 'post_release_verifier_gate'
post_release_verifier_ready: false
release_verification_passed: false
verifier_summary: string
evidence_hash: string
}>
rollback_release_gates: Array<{
gate_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
status: 'ready_for_owner_review' | 'approval_required' | 'blocked_by_policy'
gate_mode: 'rollback_release_gate'
rollback_owner_required: true
rollback_owner_confirmed: false
rollback_release_enabled: false
rollback_scope: string
}>
release_verification_holds: Array<{
hold_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
status: 'ready_for_owner_review' | 'approval_required' | 'blocked_by_policy'
hold_mode: 'release_verification_hold'
owner_release_approved: false
maintenance_window_approved: false
release_verification_passed: false
hold_reason: string
}>
live_apply_post_release_gates: Array<{
gate_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
status: 'ready_for_owner_review' | 'approval_required' | 'blocked_by_policy'
gate_mode: 'live_apply_post_release_gate'
post_release_verifier_ready: false
live_apply_release_enabled: false
release_condition: string
}>
blocked_post_release_transitions: Array<{
blocker_id: string
display_name: string
severity: 'high' | 'critical'
status: 'approval_required' | 'blocked_by_policy'
blocked_action: string
blocked_until: string
evidence_hash: string
}>
operator_actions: Array<{
action_id: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
status: 'ready_for_operator_review' | 'approval_required'
operator_instruction: string
runtime_write_allowed: false
}>
display_redaction_contract: {
redaction_required: true
raw_prompt_display_allowed: false
private_reasoning_display_allowed: false
secret_value_display_allowed: false
raw_runtime_payload_display_allowed: false
internal_collaboration_content_display_allowed: false
frontend_display_policy: string
}
rollups: {
post_release_verifier_gate_count: number
rollback_release_gate_count: number
release_verification_hold_count: number
live_apply_post_release_gate_count: number
blocked_post_release_transition_count: number
operator_action_count: number
approval_required_verifier_count: number
blocked_verifier_count: number
approval_required_rollback_count: number
blocked_rollback_count: number
approval_required_verification_hold_count: number
blocked_verification_hold_count: number
approval_required_live_apply_count: number
blocked_live_apply_count: number
critical_blocker_count: number
owner_release_approved_count: number
maintenance_window_approved_count: number
rollback_owner_confirmed_count: number
post_release_verifier_ready_count: number
release_verification_pass_count: number
rollback_release_pass_count: number
live_apply_release_pass_count: number
writer_apply_count: number
execution_apply_count: number
receipt_write_count: number
reviewer_queue_write_count: number
gateway_queue_write_count: number
telegram_send_count: number
bot_api_call_count: number
report_receipt_write_count: number
result_capture_write_count: number
learning_write_count: number
playbook_trust_write_count: number
production_write_count: number
secret_read_count: number
destructive_operation_count: number
}
}
export interface AiAgentOwnerApprovedFixtureDryRunSnapshot {
schema_version: 'ai_agent_owner_approved_fixture_dry_run_v1'
generated_at: string