Representative-client fixture + current-state boundary pins (#133) #142

Merged
adrian.tkacz merged 1 commit from compat/representative-client-fixture into develop 2026-09-27 15:45:18 +00:00
Member

Closes #133 (child A of program #132). Branch compat/representative-client-fixture from develop @ 893d2cb.

What

The regression/acceptance asset for the representative-client program: a sanitized fixture of the real 2026-09-26 ZCode request shape (bare logical model id, system+user messages, two synthetic coding-agent-shaped function tools, tool_choice: "auto", stream: true + include_usage, the four observed reasoning-dialect fields simultaneously, max_completion_tokens: 128000) plus HTTP-boundary tests that pin today's behavior for each observed acceptance failure. No real prompt content or client tool catalog is reproduced; no production code changes.

Pins (each names the child that flips it)

Test Pins Flipped by
test_reasoning_dialect_fields_are_currently_unknown_parameters 400 unknown_parameter, param=enable_thinking (sorted-first) #135
test_bare_logical_model_is_currently_not_resolvable 404 model_not_found for gpt-5.6-luna #134
test_models_listing_currently_exposes_aliases_only /v1/models = aliases only #134
test_representative_output_ceiling_is_currently_rejected 400 output_limit_exceeded for 128000 at the 16384 default #136
test_pinned_request_with_client_tools_is_currently_incompatible 400 compatibility_unsupported with a tool_calls: UNSUPPORTED Codex-path matrix #137 (only to the evidenced level)

Controls: the representative body without the not-yet-supported fields streams today (SSE framing + usage chunk verified); reasoning_effort: "max" alone works through the canonical field; the exact sr-pin: path admits and streams — the strict escape hatch that must survive the whole program unchanged.

One documented ordering fact from the real test, now encoded: the limits gate masks the tools gate (failure 3 observed before failure 5), so the tools pin drops the output ceiling to isolate compatibility_unsupported.

Gates

  • uv sync --only-dev ✓
  • make check — 2066 tests OK (455 s) ✓
  • uv run basedpyright — 0 errors / 0 warnings / 0 notes ✓
  • git diff --check ✓
  • origin/develop..HEAD = exactly the one commit above; no merge commits; only the two new test files touched.

UX impact

none — test-only change; no user-facing surface is altered.

Review

Scope frozen by #133 (test-only, no production modules); budget 60 min — met. Independent review requested per the bounded review lifecycle; PR left open for human merge gate. Not security-critical (no production behavior change).

Closes #133 (child A of program #132). Branch `compat/representative-client-fixture` from `develop` @ `893d2cb`. ## What The regression/acceptance asset for the representative-client program: a **sanitized** fixture of the real 2026-09-26 ZCode request shape (bare logical model id, system+user messages, two synthetic coding-agent-shaped function tools, `tool_choice: "auto"`, `stream: true` + `include_usage`, the four observed reasoning-dialect fields simultaneously, `max_completion_tokens: 128000`) plus HTTP-boundary tests that pin today's behavior for each observed acceptance failure. No real prompt content or client tool catalog is reproduced; no production code changes. ## Pins (each names the child that flips it) | Test | Pins | Flipped by | | --- | --- | --- | | `test_reasoning_dialect_fields_are_currently_unknown_parameters` | 400 `unknown_parameter`, `param=enable_thinking` (sorted-first) | #135 | | `test_bare_logical_model_is_currently_not_resolvable` | 404 `model_not_found` for `gpt-5.6-luna` | #134 | | `test_models_listing_currently_exposes_aliases_only` | `/v1/models` = aliases only | #134 | | `test_representative_output_ceiling_is_currently_rejected` | 400 `output_limit_exceeded` for 128000 at the 16384 default | #136 | | `test_pinned_request_with_client_tools_is_currently_incompatible` | 400 `compatibility_unsupported` with a `tool_calls: UNSUPPORTED` Codex-path matrix | #137 (only to the evidenced level) | Controls: the representative body without the not-yet-supported fields streams today (SSE framing + usage chunk verified); `reasoning_effort: "max"` alone works through the canonical field; the exact `sr-pin:` path admits and streams — the strict escape hatch that must survive the whole program unchanged. One documented ordering fact from the real test, now encoded: the limits gate masks the tools gate (failure 3 observed before failure 5), so the tools pin drops the output ceiling to isolate `compatibility_unsupported`. ## Gates - `uv sync --only-dev` ✓ - `make check` — 2066 tests OK (455 s) ✓ - `uv run basedpyright` — 0 errors / 0 warnings / 0 notes ✓ - `git diff --check` ✓ - `origin/develop..HEAD` = exactly the one commit above; no merge commits; only the two new test files touched. ## UX impact none — test-only change; no user-facing surface is altered. ## Review Scope frozen by #133 (test-only, no production modules); budget 60 min — met. Independent review requested per the bounded review lifecycle; PR left open for human merge gate. Not security-critical (no production behavior change).
test: representative-client fixture + current-state boundary pins (#133)
All checks were successful
ci / check (pull_request) Successful in 7m35s
85863205b4
Sanitized fixture of the real 2026-09-26 ZCode acceptance request shape
(bare logical model id, client-owned function tools, tool_choice auto,
stream + include_usage, the four observed reasoning dialect fields,
max_completion_tokens 128000) and HTTP-boundary tests pinning today's
behavior for each observed acceptance failure:

- unknown_parameter on thinking/enable_thinking/reasoning (flip: #135)
- model_not_found for the bare logical model + aliases-only /v1/models
  (flip: #134)
- output_limit_exceeded at the 16384 default for 128000 (flip: #136)
- compatibility_unsupported for client tools on a Codex-path target
  (flip: #137)

Controls prove the harness executes the representative shape without
the not-yet-supported fields and that the exact sr-pin: path keeps
working. No production code changes.
Author
Member

Independent review (GLM-5.3-Flash, fresh reviewer context) of reviewed_head 85863205b4430543df30d3ef2539a4da1d0c1dfe — VERDICT: APPROVE.

Findings (all DEFER, no blockers):

  1. DEFER — first test-to-test import in the repo (test_representative_client.py → ServerHarness from test_gateway_server); sanctioned by the frozen scope ("shared fixtures reuse"); promote to gateway_fixtures if a third module needs the harness.
  2. DEFER — intentional pin duplication with test_gateway_server.SurfaceTests (this copy is the #134-flippable pin); child #134 must update both assertions in coordination.
  3. DEFER — pin-5 docstring wording ("Codex-path target" describes the codex capacity scope, not the channel); mechanics verified correct (admit_pinned_target → compatibility stage → 400 compatibility_unsupported).
  4. DEFER (environment) — concurrent child-#134 WIP dirtied the shared tree during review; verified NOT attributable to this PR via a pristine detached worktree at the reviewed head (repo-wide basedpyright 0/0/0, 2066 tests OK).

Reviewer gates: diff = exactly the two new test files, 1 commit, no merge commits, git diff --check clean; every pin verified against the committed implementation (sorted-first unknown_parameter param, output_limit_exceeded at the real 16384 default, limits-gate-before-admission ordering, alias-only models list, bare-model 404); PR state cross-checked on Forgejo (head = reviewed_head, mergeable, not merged). UX impact: none (test-only).

Coordination note: DEFER 2 and 3 are addressed in the stacked PR #144 (branch compat/logical-model-resolution), per the flip plan.

Independent review (GLM-5.3-Flash, fresh reviewer context) of reviewed_head `85863205b4430543df30d3ef2539a4da1d0c1dfe` — **VERDICT: APPROVE**. Findings (all DEFER, no blockers): 1. DEFER — first test-to-test import in the repo (`test_representative_client.py` → `ServerHarness` from `test_gateway_server`); sanctioned by the frozen scope ("shared fixtures reuse"); promote to `gateway_fixtures` if a third module needs the harness. 2. DEFER — intentional pin duplication with `test_gateway_server.SurfaceTests` (this copy is the #134-flippable pin); child #134 must update both assertions in coordination. 3. DEFER — pin-5 docstring wording ("Codex-path target" describes the codex capacity scope, not the channel); mechanics verified correct (`admit_pinned_target` → compatibility stage → 400 `compatibility_unsupported`). 4. DEFER (environment) — concurrent child-#134 WIP dirtied the shared tree during review; verified NOT attributable to this PR via a pristine detached worktree at the reviewed head (repo-wide basedpyright 0/0/0, 2066 tests OK). Reviewer gates: diff = exactly the two new test files, 1 commit, no merge commits, `git diff --check` clean; every pin verified against the committed implementation (sorted-first `unknown_parameter` param, `output_limit_exceeded` at the real 16384 default, limits-gate-before-admission ordering, alias-only models list, bare-model 404); PR state cross-checked on Forgejo (head = reviewed_head, mergeable, not merged). **UX impact: none** (test-only). Coordination note: DEFER 2 and 3 are addressed in the stacked PR #144 (branch `compat/logical-model-resolution`), per the flip plan.
adrian.tkacz deleted branch compat/representative-client-fixture 2026-09-27 15:45:19 +00:00
Sign in to join this conversation.
No description provided.