Skip to content

fix(features): the last two struct-drift selections — depth_slice and stream_options - #3265

Merged
noahgift merged 4 commits into
mainfrom
PMAT-1098-struct-drift
Sep 16, 2026
Merged

noahgift merged 4 commits into
mainfrom
PMAT-1098-struct-drift

Conversation

@noahgift

Copy link
Copy Markdown
Contributor

What

The last two mechanical items from the 430-pair (crate, feature) sweep (#3262). Both are struct drift: a field was added upstream and the one initializer in the tree was never updated, because no gate ever builds these selections.

crate field why None is the right value
aprender-present-lib gpu wgpu::RenderPassColorAttachment::depth_slice It selects one slice of a 3D texture. The view here is a 2D surface texture, for which None is the only valid value. This is the only RenderPassColorAttachment in the workspace, so there was no sibling to copy.
aprender-test-cli llm jugar_probar::llm::ChatRequest::stream_options Its own doc settles it: the field "must be absent when stream is not true" because OpenAI rejects it outright on a non-streaming request — and this call site sets stream: Some(false). So None, not a copy of what wire_request sends on the streaming path.

With #3263 and this PR, every red pair in the matrix is fixed except the nine owned elsewhere: seven aprender-distribute selections (#3257 — its tokio gate is right, but executor/cpu.rs also uses num_cpus, which only the cpu feature pulls; verified against that PR's head) and two cuda selections (#3179 — a driver-API decision).

Complexity debt paid down

aprender-test-cli's one-line fix was blocked by the pre-commit complexity gate on six PRE-EXISTING violations in the same file, none in code this PR wrote. Paid down here, as the gate requires — all behaviour-preserving:

execute_llm_load        cyc 36 / cog 61  ->  under
execute_llm_score       cyc 40 / cog 91  ->  under
execute_llm_sweep       cog 40           ->  under
execute_llm_experiment  cog 36           ->  under

The largest single win is render_card: every --by-* section of execute_llm_score repeated the same three-arm match args.format verbatim and only the two formatter functions differed, so they are passed in — nine sites collapsed. The rest are block extractions: print_load_summary (~140 lines that decide nothing — they read result and print), print_tail_analysis, print_quality_validation, health_gate (GH-37's four outcomes, each still naming the endpoint and the bypass flag), detect_saturation (no baseline ⇒ never saturated; the reason string is byte-identical), level_status (saturation still wins over zero-quality), pareto_frontier, and experiment_status.

Verified

  • both selections cargo check clean, and both crates' defaults clean
  • aprender-test-cli --lib 753/753, aprender-present-lib --lib 60/60 — and all 10 of llm.rs's #[test] are still present, checked explicitly rather than inferred from the total
  • clippy finds nothing in llm.rs; the five unwrap() warnings in this crate are pre-existing and in files this PR never touches (comply, load_testing, statistics, stress)
  • no unwrap() added: git diff | grep '^+.*\.unwrap()' is 0

no-close: #3262 is the umbrella measurement and stays open until the last nine pairs are green; #3257 and #3179 are owned elsewhere.

🤖 Generated with Claude Code

noahgift and others added 2 commits September 14, 2026 13:45
`wgpu::RenderPassColorAttachment` gained `depth_slice`, for rendering into one
slice of a 3D texture. The `view` here is a 2D surface texture, for which `None`
is the only valid value. This is the ONLY `RenderPassColorAttachment` in the
workspace, so there was no sibling initializer to copy from — and nothing builds
this crate with `gpu`, so no gate ever saw the field go missing.

Found by the 430-pair (crate, feature) sweep (#3262).
`aprender-present-lib --no-default-features --features gpu` checks clean.

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… complexity violations

`jugar_probar::llm::ChatRequest` grew `stream_options` and this initializer was
never updated, because nothing builds `aprender-test-cli --features llm`. Its
own doc settles the value: it "must be absent when `stream` is not `true`"
because OpenAI rejects it outright on a non-streaming request, and this call
site sets `stream: Some(false)`. So `None`, not a copy of what `wire_request`
sends on the streaming path.

Found by the 430-pair (crate, feature) sweep (#3262).

The one-line fix was blocked by the pre-commit complexity gate on SIX
PRE-EXISTING violations in the same file, none of them in code this change
wrote. Paid down here, as the gate requires — all behaviour-preserving:

  execute_llm_load        cyc 36 / cog 61  ->  under
  execute_llm_score       cyc 40 / cog 91  ->  under
  execute_llm_sweep       cog 40           ->  under
  execute_llm_experiment  cog 36           ->  under

  render_card              every `--by-*` section of execute_llm_score repeated
                           the same three-arm `match args.format` verbatim; only
                           the two formatter fns differ, so they are passed in.
                           NINE sites collapsed.
  print_load_summary       ~140 lines of conditional reporting that decide
                           nothing — they read `result` and print
  print_tail_analysis      Feature 3 section
  print_quality_validation Feature 5 section
  health_gate              GH-37's four outcomes, a nested match inside an else;
                           each still names the endpoint and the bypass flag
  detect_saturation        no baseline (the first level) is never saturated;
                           the reason string is byte-identical
  level_status             saturation still wins over zero-quality
  pareto_frontier          a level that decodes nothing is not a faster
                           configuration, it is a broken one — unchanged
  experiment_status        the `status` match arm, whole

`--features llm` and default both check clean, clippy finds nothing in this
file, and aprender-test-cli --lib is 753/753 with all 10 of llm.rs's tests
still present.

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@noahgift
noahgift enabled auto-merge September 14, 2026 12:08
@noahgift noahgift added this to the 0.68.0 milestone Sep 14, 2026
@github-actions

github-actions Bot commented Sep 14, 2026

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=3265 head=cf32b8da85bee403ee7d0e2d78bb1c3141cd9e41 verdict=REFUSE class=Q1 arm_rc=1

Shadow mode: this records a verdict and merges nothing. A refusal
to arm is not a block (§13 adds zero rows to §7) — the pull request is
exactly as green as it was.

@noahgift
noahgift disabled auto-merge September 14, 2026 17:42
@noahgift
noahgift enabled auto-merge September 14, 2026 18:38
@noahgift
noahgift added this pull request to the merge queue Sep 14, 2026
@noahgift
noahgift removed this pull request from the merge queue due to a manual request Sep 14, 2026
@noahgift noahgift modified the milestones: 0.68.0, 0.70.0 Sep 16, 2026
@noahgift
noahgift added this pull request to the merge queue Sep 16, 2026
Merged via the queue into main with commit 13243a6 Sep 16, 2026
18 of 19 checks passed
@noahgift
noahgift deleted the PMAT-1098-struct-drift branch September 16, 2026 15:07
@noahgift noahgift mentioned this pull request Sep 16, 2026
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.

The (crate, feature) matrix has never been built: 100 of 430 selections do not compile, all of them unreachable from any default set

1 participant