job_2
Fix backlog B-472. Setting a Project's rollout_strategy to :drain_when_idle makes the reconciler emit the decision atom :swap_wait_idle, but the ReconcilerDecision.decision attribute's one_of constraint (in lib/ops_center/domain/reconciler_decision.ex) does not include :swap_wait_idle, so ReconcilerDecision.record raises Ash.Error.Changes.InvalidAttribute on every reconcile tick and wedges the entire project reconcile (this caused a markmesh.com outage). Make two changes: (1) add :swap_wait_idle to the decision attribute's one_of constraint list; (2) make ReconcilerDecision.record fail-soft so a decision-logging failure is caught, logged as a warning, and returns normally instead of raising or aborting -- the decision table is observability only and must never gate reconcile actuation. Keep the change minimal and focused.
Model calls
| Model | In | Out | ms | Cost | Stop |
|---|---|---|---|---|---|
| kimi_coding/kimi-for-coding | 1,601 | 108 | 4391 | $0.0012 | tool_use |
| kimi_coding/kimi-for-coding | 7,832 | 265 | 8615 | $0.0054 | tool_use |
| kimi_coding/kimi-for-coding | 61 | 41 | 3929 | $0.0001 | tool_use |
| kimi_coding/kimi-for-coding | 81 | 42 | 12783 | $0.0002 | tool_use |
| kimi_coding/kimi-for-coding | 55 | 29 | 5455 | $0.0001 | tool_use |
| kimi_coding/kimi-for-coding | 61 | 25 | 6858 | $0.0001 | tool_use |
| kimi_coding/kimi-for-coding | 718 | 330 | 11059 | $0.0013 | tool_use |
| kimi_coding/kimi-for-coding | 327 | 22 | 3782 | $0.0003 | tool_use |
| kimi_coding/kimi-for-coding | 4,825 | 31 | 3685 | $0.0030 | tool_use |
| kimi_coding/kimi-for-coding | 16,094 | 13 | 4517 | $0.0097 | tool_use |
| kimi_coding/kimi-for-coding | 29 | 356 | 23429 | $0.0009 | tool_use |
| kimi_coding/kimi-for-coding | 72 | 25 | 8954 | $0.0001 | tool_use |
| kimi_coding/kimi-for-coding | 137 | 28 | 4450 | $0.0002 | tool_use |
| kimi_coding/kimi-for-coding | 1,034 | 2,797 | 84880 | $0.0076 | tool_use |
| kimi_coding/kimi-for-coding | 6,383 | 1,085 | 29819 | $0.0065 | tool_use |
| kimi_coding/kimi-for-coding | 2,149 | 335 | 12710 | $0.0021 | tool_use |
| kimi_coding/kimi-for-coding | 2,146 | 2,160 | 60834 | $0.0067 | tool_use |
| kimi_coding/kimi-for-coding | 3,232 | 201 | 8264 | $0.0024 | tool_use |
| kimi_coding/kimi-for-coding | 1,102 | 61 | 4370 | $0.0008 | tool_use |
| kimi_coding/kimi-for-coding | 62 | 2,161 | 74127 | $0.0054 | tool_use |
| kimi_coding/kimi-for-coding | 264 | 1,444 | 45702 | $0.0038 | tool_use |
| kimi_coding/kimi-for-coding | 1 | 41 | 257932 | $0.0001 | tool_use |
| kimi_coding/kimi-for-coding | 1 | 32 | 129523 | $0.0001 | tool_use |
| kimi_coding/kimi-for-coding | 1 | 2,436 | 193598 | $0.0061 | tool_use |
| kimi_coding/kimi-for-coding | 1 | 214 | 134164 | $0.0005 | tool_use |
| kimi_coding/kimi-for-coding | 2,511 | 4,460 | 105491 | $0.0127 | tool_use |
| kimi_coding/kimi-for-coding | 6,659 | 2,649 | 56817 | $0.0106 | tool_use |
| kimi_coding/kimi-for-coding | 2,699 | 83 | 4981 | $0.0018 | tool_use |
| kimi_coding/kimi-for-coding | 120 | 31 | 4528 | $0.0001 | tool_use |
| / | 0 | 0 | 640774 | $0.00 | %Agentic.LLM.Error{message: "HTTP error: timeout", status: nil, retry_after_ms: nil, rate_limit: nil, classification: :timeout, raw: %Req.TransportError{reason: :timeout}} |
| kimi_coding/kimi-for-coding | 1 | 1,049 | 160180 | $0.0026 | tool_use |
| / | 0 | 0 | 640747 | $0.00 | %Agentic.LLM.Error{message: "HTTP error: timeout", status: nil, retry_after_ms: nil, rate_limit: nil, classification: :timeout, raw: %Req.TransportError{reason: :timeout}} |
Activity
— [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — [] — []