Task · GCI-0028

Accept live Loki empty-label and YAML limits responses

Description

The v0.3.0-rc.60 dev rollout exposed two HTTP-200 response contracts that the synthetic source tests did not cover. Loki omits data for a successful empty label-value result, and /config/tenant/v1/limits returns text/plain YAML. Both were classified unavailable, so T2 correctly refused publication.

Acceptance Criteria

Definition of Done

Implementation Plan

  1. Pin each live response shape with a focused failing source-contract test.
  2. Parse only the required Loki YAML subset without adding a runtime dependency, and scope omitted-data handling to the Loki label call.
  3. Run the exact gate, review, publish a replacement release, then resume the paused dev rollout.

Implementation Notes

2026-09-22 rollout evidence: dev T2 tasks 860aaa8f812746b3b3e28115931c89d7 and 5b613101f9484a818313a78841346837 exited 1 before publication. Direct probes confirmed HTTP 200 text/plain YAML from /config/tenant/v1/limits on the robk stack and successful Loki label envelopes without data on portinapushtests and rkaidev.

Verification: focused source tests first failed on all three live-contract cases, then passed 20/20. Full just check passed 1,486 tests plus 7,276 subtests, Terraform validation, formatting, identifier history and hygiene. CodeRabbit pass one found malformed ignored YAML could be accepted; structural validation was added. Pass two returned zero findings.

Final Summary

Accepted Loki’s live HTTP 200 response contracts without weakening fail-closed behavior: omitted data is empty only for the Loki label route, and the text/plain limits YAML is parsed through a bounded retention-stream reader with whole-response structural checks. Verified by focused regression tests, the exact repository gate and a clean second CodeRabbit review.

View the source file on GitHub