The lineup
Compatibility matrix of a real run · the consumer before and after the fix × the upstream contract v1 and v2
Upstream v1Old contract (base)
Upstream v2New contract (head)
Consumer before the fixIts code at the head commit
Clean
The contract this consumer was written for: S1 found no change at the base commit.
Broken
S1 found 9 breaking changes (REST 3, gRPC 3, DB 3); S2 + the Tracer: 3 endpoints break.
Consumer after the fixBranch syncsnitch/w-20261027-155558-7c9a
- ✗ POST /invoices/{order_id} · LOUDOrderDTO validation fails when customer_name and total_price are missing in v2 REST payload; additionally, NOT_PAYABLE status set misses AWAITING_PAYMENT.
- ✗ GET /payments/{order_id}/status · SILENTgRPC OrderSummary removed total_price field; proto3 defaults missing fields to 0.0, resulting in amount_minor silently calculating as 0.
- ✗ GET /reports/revenue · LOUDrevenue.sql selects orders.total_price column which was dropped in migration 0002_money_customer_status.
Clean
5/5 passed
- ✓ test_invoice_paid_order
- ✓ test_unpaid_order_is_not_invoiced
- ✓ test_payment_status_uses_real_amount
- ✓ test_revenue_report
- ✓ test_rest_contract_examples_parse
Clean
5/5 passed
- ✓ test_invoice_paid_order
- ✓ test_unpaid_order_is_not_invoiced
- ✓ test_payment_status_uses_real_amount
- ✓ test_revenue_report
- ✓ test_rest_contract_examples_parse
Every cell comes from run w-20261027-155558-7c9a on kshiti26-11/demo: before × v1 is the contract the consumer was built for; before × v2 is what S1 detect, S2 trace and the Tracer found; after × v1 and after × v2 are the Docker checks V3 and V4 of the fix, test by test.