---
id: w3/m8/t005
title: Acceptance — request lines, level isolation, discovery, all live
worker: worker3
status: todo
estimate: 25m
depends_on: [w3/m8/t004]
---

## Objective

Prove the split live (extend `scripts/logs-verify.sh`): curl a test app → `type=request` returns the matching access line (status/method truthful, path searchable); a JSON-logging test app plants one error line → `level=error` returns exactly it; `list_log_label_values` lists the real levels/statuses for that service and nothing from another service; `type=application` excludes access lines (the split is clean both ways).

## Steps

1. Extend the verify script with the request-log and level phases (deploy the JSON-logging fixture app if none exists).
2. Cross-service isolation check: a second app's labels never appear in the first's discovery.
3. Run against the Loki-synced cluster (prod path per m5/t005's precedent, or a bootstrapped mock).

## Files

- `scripts/logs-verify.sh` · `examples/` (JSON-logging fixture if needed)

## Acceptance criteria

- [ ] Scripted pass (exit 0) covering the four assertions live.

## Out of scope

- Load testing access-log volume (t001's retention note covers sizing).
