Skip to content

chore: sync main — eval-seam contract for vpc 3.3.0; floors vpc>=3.3.0, views-evaluation>=2.0.0 - #298

Merged
Polichinel merged 2 commits into
mainfrom
development
Sep 19, 2026
Merged

Polichinel merged 2 commits into
mainfrom
development

Conversation

@Polichinel

Copy link
Copy Markdown
Contributor

Brings #297 to main. Diff is exactly the reviewed commit. 🤖 Generated with Claude Code

https://claude.ai/code/session_01N7YBtiS2kSVj27spMKDYfh

Polichinel and others added 2 commits September 19, 2026 04:13
…ource; floors vpc>=3.3.0, views-evaluation>=2.0.0 (#287)

views-pipeline-core 3.3.0 (PyPI 2026-09-19) fixes C-215's root: its reporting
stage now constructs PerModelMetricFrameSource — one of OUR
MetricFrameFileSources per model, each rooted at THAT model's own
data/generated (vpc #485, PR #522, their C-328) — instead of a single source
rooted at the subject, which is why every baseline/constituent row vanished
from every ensemble report. Our locked on-disk layout is untouched; only the
root per model changed.

Our half, in the same window as the register's sequencing note required: the
seam test that had faithfully locked the DEFECTIVE subject-rooted call
(test_stage_constructs_source_with_our_init_contract) is replaced by two real
guards:
- the stage constructs PerModelMetricFrameSource with EXACTLY
  {primary_model, primary_root=<subject>.data_generated, run_type, target} —
  no root_of= override, so the C-215 shape cannot be re-expressed through
  the new class (verified against five mutant stages, all fail);
- a real on-disk per-model round-trip: frames saved under TWO roots resolve
  through the public metric_frame() with values read back exactly, and the
  subject-rooted shape provably returns None for the other model — never a
  shared root, the fixture blind spot that hid C-215 for months.

Pins: views-pipeline-core>=3.3.0 (a <3.3.0 stage would silently blank rows
again); views-evaluation>=2.0.0 — the floor held on 09-18 lands now because
vpc 3.3.0 itself requires >=2.0.0, so the shared env co-resolves. Lock
129→126 packages (stepshift, xarray, views-transformation-library left; vpc
3.3.0 dropped the last). Suite green on the RELEASED 3.3.0 + 2.0.0: 443.

Register: C-215 → Resolved (with what it does NOT do: C-216/C-217 configs
and pins, C-223's one-time baseline evaluation, C-219/C-222 announce and
vintage layers, and the end-to-end proof still owed); C-192 correction note
closed; Cluster I updated honestly — the C-220/C-225 "land WITH the fix"
constraint was NOT honoured (upstream shipped alone), so C-220 is now ARMED
and its scrub is owed before C-223's evaluation run; Cluster H: eval floor
landed, and the next trigger (views-frames 2.0.0, gated by TWO ceilings —
ours and views-evaluation's [frames] extra, eval#91) recorded. No vpc ADR
records the per-model rule yet; our 08-21 draft should be filed. CICs
(evaluation_source, evaluation_report_template) updated for the injected
source. 91 concerns (69 resolved, 22 open).

Closes #287 item 1. Items 2-4 (announce layer, arm-on-fix traps, vintage
semantics) remain open.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01N7YBtiS2kSVj27spMKDYfh
fix(seam): correct the eval-seam contract for vpc 3.3.0's per-model source; floors vpc>=3.3.0, views-evaluation>=2.0.0 (#287)
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