Skip to content

fix(e2e): restore streaming under output DLP and align auth tests with admin contract - #622

Merged
Destynova2 merged 2 commits into
mainfrom
fix/e2e-stream-guard-and-auth-contract
Sep 27, 2026
Merged

Destynova2 merged 2 commits into
mainfrom
fix/e2e-stream-guard-and-auth-contract

Conversation

@Destynova2

Copy link
Copy Markdown
Contributor

E2E has failed on main since v0.36.112 without anyone noticing, because
the CI concurrency group cancelled most main runs (#619 fixed that) and
the Container job failure masked the rest.

Streaming (regression since #617):

  • Output DLP rejected text_delta events with no content_block_start and
    message_stop with an open block. Anthropic-compatible backends such as
    the E2E mock do exactly that, so every streaming response was cut after
    the first chunk. Missing block boundaries are now synthesised; the text
    is still checked as one complete block before release, and EOF with an
    open block still fails closed (a truncated block could split a secret).
  • /v1/chat/completions and /v1/responses swallowed mid-stream errors
    without a log line; they now log like /v1/messages does.

Auth tests (contract change in #600, tests never updated):

  • POST /api/config/reload requires an admin credential; a tenant JWT is
    403. Tests and advanced/fanout scripts use the server api_key.
  • The server api_key is accepted alongside JWT as an operator credential
    instead of being rejected with 401.

E2E runner image downloads hurl/k6/age for TARGETARCH instead of
hardcoded amd64, so the suite runs on arm64 hosts.

Validation

  • Local E2E pod (podman, arm64): make test-hurl 9/9 suites (was 5/9 on main since v0.36.112), make test-advanced 10/10, fanout F0 pass.
  • nextest 1882/1882 (new test missing_block_boundaries_are_synthesised_and_text_still_checked), clippy -D warnings, shellcheck on touched scripts.
  • The E2E job on the push to main after merge is the definitive check (it does not run on PRs).

…h admin contract

E2E has failed on main since v0.36.112 without anyone noticing, because
the CI concurrency group cancelled most main runs (#619 fixed that) and
the Container job failure masked the rest.

Streaming (regression since #617):
- Output DLP rejected text_delta events with no content_block_start and
  message_stop with an open block. Anthropic-compatible backends such as
  the E2E mock do exactly that, so every streaming response was cut after
  the first chunk. Missing block boundaries are now synthesised; the text
  is still checked as one complete block before release, and EOF with an
  open block still fails closed (a truncated block could split a secret).
- /v1/chat/completions and /v1/responses swallowed mid-stream errors
  without a log line; they now log like /v1/messages does.

Auth tests (contract change in #600, tests never updated):
- POST /api/config/reload requires an admin credential; a tenant JWT is
  403. Tests and advanced/fanout scripts use the server api_key.
- The server api_key is accepted alongside JWT as an operator credential
  instead of being rejected with 401.

E2E runner image downloads hurl/k6/age for TARGETARCH instead of
hardcoded amd64, so the suite runs on arm64 hosts.
@Destynova2
Destynova2 enabled auto-merge (squash) September 27, 2026 14:00
@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Mutation testing (PR diff sample)

Informational — never blocks merge. Full matrix runs on main.

Metric Value
Status timed-out
Duration 1501 s
Total 24
Caught 10
Missed 4
Timeout 0
Unviable 10

Legend: clean (no survivors), missed (inspect artifact), timed-out (25 min cap reached).

Artifact: mutants-pr-results-9e9e03d3b03ff6067ba81a242b3e4dd63ac64501.

@Destynova2
Destynova2 merged commit 2ed3ef9 into main Sep 27, 2026
42 checks passed
@Destynova2
Destynova2 deleted the fix/e2e-stream-guard-and-auth-contract branch September 27, 2026 15:13
Destynova2 added a commit that referenced this pull request Sep 27, 2026
## 🤖 New release

* `grob`: 0.36.118 -> 0.36.119

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

##
[0.36.119](v0.36.118...v0.36.119)
- 2026-09-27

### Fixed

- *(e2e)* restore streaming under output DLP and align auth tests with
admin contract ([#622](#622))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant