feat(sre): close provider and telegram automation receipts
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
"schema_version": "sre_k3s_controlled_automation_work_items_v1",
|
||||
"governance_version": "global_product_governance_v2",
|
||||
"program_id": "AIA-SRE-P0-20260715",
|
||||
"generated_at": "2026-07-16T15:18:00+08:00",
|
||||
"status": "phase_3_paid_provider_bounded_canary_in_progress",
|
||||
"generated_at": "2026-07-17T02:00:46+08:00",
|
||||
"status": "phase_3_paid_provider_first_canary_failed_safe_rollback_verified",
|
||||
"scope_complete": false,
|
||||
"current_p0": {
|
||||
"id": "AIA-SRE-013",
|
||||
@@ -77,7 +77,7 @@
|
||||
"paid_execution_mode": "canary",
|
||||
"paid_canary_percent": 5,
|
||||
"paid_canary_authorization_ref": "AIA-SRE-013-user-approved-20260716",
|
||||
"paid_canary_authorization_status": "user_direction_received_durable_gate5_receipt_pending",
|
||||
"paid_canary_authorization_status": "user_direction_and_durable_gate5_consumed_first_canary_terminal_failed",
|
||||
"durable_gate5_authorization": {
|
||||
"required": true,
|
||||
"binding": [
|
||||
@@ -90,25 +90,32 @@
|
||||
],
|
||||
"accepted_source": "durable_operation_log_or_authorization_receipt",
|
||||
"free_form_authorization_ref_is_sufficient": false,
|
||||
"status": "pending"
|
||||
"status": "consumed_terminal_failed",
|
||||
"authorization_ref": "019f6c09-e77c-7800-35af-9179358c8f37",
|
||||
"run_id": "019f6c09-e77c-7800-35af-9179358c8f37",
|
||||
"trace_id": "00-4a83cb2dea7749b398a5e6d6c90737df6ed6c3b8e9534e8b-89789ec6474d4a52-01",
|
||||
"approval_durable": true,
|
||||
"single_use_claim_consumed": true,
|
||||
"terminal_state": "failed",
|
||||
"terminal_error_code": "E-PAID-CANARY-VERIFY"
|
||||
},
|
||||
"paid_canary_scope": "one committed sanitized fixture per provider; no infrastructure remediation",
|
||||
"claude_cost_cap_status": "source_configured_canary_runtime_readback_pending",
|
||||
"gemini_cost_cap_status": "source_configured_canary_runtime_readback_pending",
|
||||
"claude_credential_status": "runtime_secret_reference_verifier_pending_no_secret_value_read",
|
||||
"gemini_credential_status": "runtime_secret_reference_verifier_pending_no_secret_value_read",
|
||||
"claude_cost_cap_status": "generation_finalized_and_aggregate_run_cap_verified",
|
||||
"gemini_cost_cap_status": "failed_generation_estimate_finalized_and_aggregate_run_cap_verified",
|
||||
"claude_credential_status": "runtime_secret_reference_generation_authenticated_no_secret_value_read",
|
||||
"gemini_credential_status": "runtime_secret_reference_present_but_provider_authentication_rejected_no_secret_value_read",
|
||||
"credential_metadata": {
|
||||
"claude": {
|
||||
"user_supplied_credential_noted": true,
|
||||
"raw_value_recorded_in_repository": false,
|
||||
"raw_value_readback_allowed": false,
|
||||
"protected_secret_reference_status": "pending_secure_ingress_and_metadata_verifier"
|
||||
"protected_secret_reference_status": "k8s_secret_ref_present_and_generation_authenticated"
|
||||
},
|
||||
"gemini": {
|
||||
"user_supplied_credential_noted": true,
|
||||
"raw_value_recorded_in_repository": false,
|
||||
"raw_value_readback_allowed": false,
|
||||
"protected_secret_reference_status": "pending_secure_ingress_and_metadata_verifier"
|
||||
"protected_secret_reference_status": "k8s_secret_ref_present_but_generation_authentication_rejected"
|
||||
}
|
||||
},
|
||||
"cloud_transport_contract": {
|
||||
@@ -116,14 +123,14 @@
|
||||
"observed_transport": "public_http",
|
||||
"execution_scope": "sanitized_candidate_only",
|
||||
"tool_loop_terminal": "fail_closed",
|
||||
"pre_generation_receipt": "same_run_api_tags_probe_plus_redis_exact_readback_source_ready_runtime_pending",
|
||||
"pre_generation_receipt": "blocked_no_transport_receipt_tcp_timeout",
|
||||
"exact_prometheus_target_runtime_status": "missing"
|
||||
},
|
||||
"ollama_gcp_b": {
|
||||
"observed_transport": "public_http",
|
||||
"execution_scope": "sanitized_candidate_only",
|
||||
"tool_loop_terminal": "fail_closed",
|
||||
"pre_generation_receipt": "same_run_api_tags_probe_plus_redis_exact_readback_source_ready_runtime_pending",
|
||||
"pre_generation_receipt": "transport_receipt_present_but_not_same_run_and_public_http_degraded",
|
||||
"exact_prometheus_target_runtime_status": "missing"
|
||||
},
|
||||
"production_sensitive_payload_allowed": false,
|
||||
@@ -134,7 +141,29 @@
|
||||
"partial_five_lane_terminal": "rollback_both_paid_providers_and_fail_canary",
|
||||
"daily_monthly_and_per_incident_cost_caps_required": true,
|
||||
"source_status": "same_run_gate5_atomic_single_use_claim_and_aggregate_cap_ready",
|
||||
"runtime_status": "paid_canary_pending"
|
||||
"runtime_status": "first_canary_partial_failed_paired_rollback_verified"
|
||||
},
|
||||
"latest_canary_receipt": {
|
||||
"run_id": "019f6c09-e77c-7800-35af-9179358c8f37",
|
||||
"status": "failed_rollback_verified",
|
||||
"provider_results": {
|
||||
"ollama_gcp_a": "transport_unreachable_no_generation",
|
||||
"ollama_gcp_b": "provider_canary_timeout_after_120_seconds",
|
||||
"ollama_local": "http_connection_reset_no_generation",
|
||||
"claude": "generation_succeeded_contract_verifier_failed",
|
||||
"gemini": "authentication_rejected"
|
||||
},
|
||||
"claude_latency_ms": 4879.9,
|
||||
"claude_tokens": 1886,
|
||||
"claude_cost_usd": 0.011802,
|
||||
"aggregate_accounted_cost_usd": 0.012099,
|
||||
"aggregate_cost_cap_usd": 0.25,
|
||||
"paired_rollback_verified": true,
|
||||
"persistent_paid_routes_enabled": false,
|
||||
"raw_prompt_persisted": false,
|
||||
"raw_response_persisted": false,
|
||||
"secret_value_read_or_returned": false,
|
||||
"learning_writeback_status": "pending_provider_scorecard_km_rag_mcp_playbook_ack"
|
||||
},
|
||||
"production_provider_route_switch_allowed": false,
|
||||
"required_before_paid_provider_enablement": [
|
||||
@@ -603,28 +632,35 @@
|
||||
"apps/api/src/services/paid_provider_canary_authorization.py",
|
||||
"apps/api/src/services/paid_provider_canary_gate5_run.py",
|
||||
"apps/api/src/services/paid_provider_canary_validation.py",
|
||||
"apps/api/src/jobs/paid_provider_canary_worker.py",
|
||||
"apps/api/src/services/ai_rate_limiter.py",
|
||||
"scripts/ops/run-paid-provider-canary.py",
|
||||
"k8s/awoooi-prod/04-configmap.yaml",
|
||||
"k8s/awoooi-prod/06-deployment-api.yaml"
|
||||
],
|
||||
"executor": "ordered model router",
|
||||
"executor": "singleton signal-worker paid canary executor plus ordered model router",
|
||||
"verifier": "provider-attributed replay accuracy, latency and cost readback",
|
||||
"rollback": "Claude/Gemini are disabled together on any partial five-lane result; remain on the ordered Ollama chain",
|
||||
"exit_condition": "provider order is enforced; GCP public-HTTP hops remain sanitized candidate-only with cloud tool loops fail-closed until secure transport promotion; paid providers remain 5 percent canary only; the durable Gate5 UUID is the same execution run/trace and is atomically single-use; protected-secret metadata, paired rollback, aggregate cost cap, finalized receipts, latency/token/cost and production readback are verified without secret-value exposure",
|
||||
"confirmed_truth": [
|
||||
"The user supplied Claude and Gemini credential material, but raw values are not repository data and must not be copied or read back",
|
||||
"GCP-A/GCP-B are currently public HTTP boundaries and cannot receive unsanitized or tool-loop payloads",
|
||||
"Claude and Gemini enablement, canary outcome and rollback form one atomic pair"
|
||||
"Claude and Gemini enablement, canary outcome and rollback form one atomic pair",
|
||||
"Gate5 run 019f6c09-e77c-7800-35af-9179358c8f37 was durably approved and consumed exactly once; Claude generation authenticated, Gemini authentication was rejected, and both paid gates returned to disabled",
|
||||
"The first canary accounted USD 0.012099 under the USD 0.25 run cap and persisted neither raw prompt nor raw response",
|
||||
"The first Gate5 approval emitted approval_hmac_key_not_set_using_dev_fallback; this is a production approval-signing contract drift, not evidence that paid providers are hard locked"
|
||||
],
|
||||
"runtime_gaps": [
|
||||
"durable Gate5 authorization receipt bound to the canary run is missing",
|
||||
"Claude/Gemini protected-secret reference metadata verification is pending",
|
||||
"daily/monthly/per-incident cost-cap and production cost readback are pending",
|
||||
"GCP-A/GCP-B exact Prometheus targets are absent from production",
|
||||
"sanitized five-lane paid canary has not run and no paired rollback receipt exists"
|
||||
"GCP-A transport is unreachable and has no same-run transport receipt",
|
||||
"GCP-B is reachable and has qwen3:14b, but the first canary used an obsolete 120 second outer timeout instead of the 300 second diagnose budget",
|
||||
"host111 accepts TCP but resets the Ollama HTTP request and requires Agent99 bounded host service diagnosis",
|
||||
"Claude authenticated but its first response did not satisfy the deterministic OpenClawDecision contract; strict tool schema source fix awaits CD and replay",
|
||||
"Gemini production secret reference is present but provider authentication is rejected; the user-supplied replacement is not yet present in the protected runtime secret path",
|
||||
"APPROVAL_HMAC_KEY is not bound to a dedicated protected production secret; the development fallback must be retired after a secret-metadata-only preflight and before production provider promotion",
|
||||
"singleton approved-run executor handoff and container import-path fixes await Gitea CD",
|
||||
"provider scorecard KM/RAG/MCP/PlayBook acknowledgement is pending"
|
||||
],
|
||||
"next_action": "first close the ordered alert-chain, Host110 tombstone/Host111 verifier and critical fail-closed safety queue; then create the durable Gate5 receipt, verify protected-secret metadata without reading values, deploy cost caps, execute one sanitized five-lane fixture, and roll back both paid providers unless all five lanes are comparable"
|
||||
"next_action": "deploy the executor, strict Claude schema and Ollama timeout fixes; bind APPROVAL_HMAC_KEY through a dedicated protected secret reference without reading its value; repair GCP-A transport and host111 through their typed owner lanes; rotate Gemini through protected secret ingress without repository or log exposure; then create a new single-use Gate5 run and rerun the sanitized five-lane verifier"
|
||||
},
|
||||
{
|
||||
"id": "AIA-SRE-014",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schema_version": "telegram_canonical_routing_registry_v1",
|
||||
"generated_at": "2026-07-14T15:50:04+08:00",
|
||||
"generated_at": "2026-07-17T01:43:42+08:00",
|
||||
"status": "source_policy_ready_runtime_not_applied",
|
||||
"mode": "source_only_no_secret_no_telegram_send_no_route_change",
|
||||
"supersedes": {
|
||||
@@ -30,7 +30,7 @@
|
||||
],
|
||||
"legacy_shared_sre_blocked_types": ["TYPE-1", "TYPE-6B", "UNKNOWN"],
|
||||
"raw_chat_id_allowed": false,
|
||||
"shared_sre_rule": "Only shared infrastructure, security incident, disaster recovery, and P0/P1 incident lifecycle signals may use the AwoooI SRE war room alias.",
|
||||
"shared_sre_rule": "Only explicit P0/P1 operational allowlist routes may use the AwoooI SRE war room alias; StockPlatform is limited to incident_lifecycle ingress and business reports remain product-routed or blocked.",
|
||||
"shared_sre_forbidden": [
|
||||
"raw product P2/P3 monitoring",
|
||||
"marketing",
|
||||
@@ -191,8 +191,8 @@
|
||||
"product_id": "stockplatform-v2",
|
||||
"display_name": "StockPlatform v2",
|
||||
"owner": "stockplatform_product_ops",
|
||||
"source_audit_status": "wooowooowooobot_private_route_shared_with_tsenyang_site_ownership_drift",
|
||||
"egress_status": "blocked"
|
||||
"source_audit_status": "p0_p1_operational_incident_lifecycle_allowed_via_tsenyang_shared_sre_business_and_raw_product_routes_blocked",
|
||||
"egress_status": "allowed"
|
||||
},
|
||||
{
|
||||
"product_id": "tsenyang-website",
|
||||
@@ -339,6 +339,70 @@
|
||||
"owner": "sre_shared_runtime",
|
||||
"egress_status": "allowed"
|
||||
},
|
||||
{
|
||||
"route_id": "awoooi-backup-restore",
|
||||
"product_id": "awoooi",
|
||||
"signal_family": "backup_restore",
|
||||
"severity": [
|
||||
"P0",
|
||||
"P1"
|
||||
],
|
||||
"scope": "shared",
|
||||
"bot_alias": "tsenyang_bot",
|
||||
"chat_alias": "awoooi_sre_war_room",
|
||||
"allowed_destination": "telegram_chat_alias:awoooi_sre_war_room",
|
||||
"receipt_backend": "awoooi.alert_operation_log+telegram_outbound_receipts",
|
||||
"owner": "dr_runtime",
|
||||
"egress_status": "allowed"
|
||||
},
|
||||
{
|
||||
"route_id": "awoooi-infrastructure",
|
||||
"product_id": "awoooi",
|
||||
"signal_family": "infrastructure",
|
||||
"severity": [
|
||||
"P0",
|
||||
"P1"
|
||||
],
|
||||
"scope": "shared",
|
||||
"bot_alias": "tsenyang_bot",
|
||||
"chat_alias": "awoooi_sre_war_room",
|
||||
"allowed_destination": "telegram_chat_alias:awoooi_sre_war_room",
|
||||
"receipt_backend": "awoooi.alert_operation_log+telegram_outbound_receipts",
|
||||
"owner": "sre_shared_runtime",
|
||||
"egress_status": "allowed"
|
||||
},
|
||||
{
|
||||
"route_id": "awoooi-observability",
|
||||
"product_id": "awoooi",
|
||||
"signal_family": "observability",
|
||||
"severity": [
|
||||
"P0",
|
||||
"P1"
|
||||
],
|
||||
"scope": "shared",
|
||||
"bot_alias": "tsenyang_bot",
|
||||
"chat_alias": "awoooi_sre_war_room",
|
||||
"allowed_destination": "telegram_chat_alias:awoooi_sre_war_room",
|
||||
"receipt_backend": "awoooi.alert_operation_log+telegram_outbound_receipts",
|
||||
"owner": "observability_runtime",
|
||||
"egress_status": "allowed"
|
||||
},
|
||||
{
|
||||
"route_id": "awoooi-ai-agent",
|
||||
"product_id": "awoooi",
|
||||
"signal_family": "ai_agent",
|
||||
"severity": [
|
||||
"P0",
|
||||
"P1"
|
||||
],
|
||||
"scope": "shared",
|
||||
"bot_alias": "tsenyang_bot",
|
||||
"chat_alias": "awoooi_sre_war_room",
|
||||
"allowed_destination": "telegram_chat_alias:awoooi_sre_war_room",
|
||||
"receipt_backend": "awoooi.alert_operation_log+telegram_outbound_receipts",
|
||||
"owner": "ai_agent_runtime",
|
||||
"egress_status": "allowed"
|
||||
},
|
||||
{
|
||||
"route_id": "awoooi-raw-product-monitoring",
|
||||
"product_id": "awoooi",
|
||||
@@ -442,6 +506,22 @@
|
||||
"egress_status": "blocked",
|
||||
"blocked_reason": "configured_destination_returns_chat_not_found_and_has_no_durable_receipt"
|
||||
},
|
||||
{
|
||||
"route_id": "stockplatform-operational-incident-lifecycle",
|
||||
"product_id": "stockplatform-v2",
|
||||
"signal_family": "incident_lifecycle",
|
||||
"severity": [
|
||||
"P0",
|
||||
"P1"
|
||||
],
|
||||
"scope": "shared",
|
||||
"bot_alias": "tsenyang_bot",
|
||||
"chat_alias": "awoooi_sre_war_room",
|
||||
"allowed_destination": "telegram_chat_alias:awoooi_sre_war_room",
|
||||
"receipt_backend": "awoooi.alert_operation_log+telegram_outbound_receipts",
|
||||
"owner": "stockplatform_product_ops",
|
||||
"egress_status": "allowed"
|
||||
},
|
||||
{
|
||||
"route_id": "stockplatform-market-data",
|
||||
"product_id": "stockplatform-v2",
|
||||
@@ -456,6 +536,25 @@
|
||||
"egress_status": "blocked",
|
||||
"blocked_reason": "private_route_is_shared_with_tsenyang_site_and_product_ownership_is_not_reconciled"
|
||||
},
|
||||
{
|
||||
"route_id": "stockplatform-business-report",
|
||||
"product_id": "stockplatform-v2",
|
||||
"signal_family": "business_report",
|
||||
"severity": [
|
||||
"P0",
|
||||
"P1",
|
||||
"P2",
|
||||
"P3"
|
||||
],
|
||||
"scope": "product",
|
||||
"bot_alias": "wooowooowooobot",
|
||||
"chat_alias": "wooowooowooobot_private",
|
||||
"allowed_destination": "blocked",
|
||||
"receipt_backend": "none",
|
||||
"owner": "stockplatform_product_ops",
|
||||
"egress_status": "blocked",
|
||||
"blocked_reason": "business_reports_must_remain_on_a_stockplatform_owned_product_route"
|
||||
},
|
||||
{
|
||||
"route_id": "tsenyang-site-health",
|
||||
"product_id": "tsenyang-website",
|
||||
@@ -501,12 +600,12 @@
|
||||
],
|
||||
"rollups": {
|
||||
"product_count": 11,
|
||||
"route_count": 20,
|
||||
"allowed_route_count": 4,
|
||||
"blocked_route_count": 13,
|
||||
"route_count": 26,
|
||||
"allowed_route_count": 9,
|
||||
"blocked_route_count": 14,
|
||||
"disabled_route_count": 2,
|
||||
"not_implemented_route_count": 1,
|
||||
"shared_sre_allowed_route_count": 4,
|
||||
"shared_sre_allowed_route_count": 9,
|
||||
"raw_numeric_destination_count": 0,
|
||||
"runtime_route_change_count": 0,
|
||||
"telegram_send_count": 0
|
||||
|
||||
Reference in New Issue
Block a user