Skip to content

Feature/estelle/721/superseding calibration - #716

Open
EstelleDa wants to merge 5 commits into
release-2026.3.0from
feature/estelle/721/supersedingCalibration
Open

Feature/estelle/721/superseding calibration#716
EstelleDa wants to merge 5 commits into
release-2026.3.0from
feature/estelle/721/supersedingCalibration

Conversation

@EstelleDa

Copy link
Copy Markdown
Member

davereinhart and others added 5 commits July 2, 2026 17:07
…rm binaries

Add `os` (darwin, linux, win32) and `cpu` (x64, arm64) fields to package.json
so installs are validated against supported platforms, and regenerate the
lockfile to include the platform-specific optional binaries (e.g. the full set
of @esbuild/* targets). This lets the project be installed and built on macOS,
Linux, and Windows across x64 and arm64.
Also picks up minor transitive dependency bumps from the lockfile regeneration.
…m-build-support

chore(build): declare multi-platform support and include cross-platfo…
@EstelleDa
EstelleDa requested a review from bencap August 13, 2026 03:43
@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 2.593% (-0.003%) from 2.596% — feature/estelle/721/supersedingCalibration into release-2026.3.0

@bencap bencap linked an issue Aug 18, 2026 that may be closed by this pull request
12 tasks

@bencap bencap left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Paired with the review on VariantEffect/mavedb-api#769.

@update:classification-field="onClassificationFieldUpdate"
@update:evidence-sources="draft.evidenceSources = $event; markChanged()"
@update:evidence-strength="onEvidenceStrengthUpdate"
@update:is-superseding-calibration="isSupersedingScoreCalibration = $event"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This handler and the one on line 52 don't call markChanged(), where every other field handler in this template does. markChanged is what recomputes the editor's dirty state, so toggling supersession or picking a calibration is a change the editor doesn't know happened — the unsaved-changes prompt won't fire on navigation, and if the save control is gated on dirty state you'd have to touch an unrelated field to enable it.

</div>
</div>

<!-- Superseding toggle -->

@bencap bencap Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the authoring half of #721 and it reads well. The display half isn't here though — the deprecation notice on a superseded calibration, the "supersedes" notice on the superseding one, and being able to follow a chain without copying URNs by hand. Is that planned as a follow-up, or was it meant to be in this PR?

Asking partly because it may not be buildable yet. The API nulls supersededCalibration and supersedingCalibration on every read path — see VariantEffect/mavedb-api#769 (comment) — so there's nothing arriving for those components to render.

Comment thread src/schema/openapi.d.ts
methodSources: components["schemas"]["PublicationIdentifierCreate"][];
/** Calibrationmetadata */
calibrationMetadata?: Record<string, never> | null;
supersededCalibration?: components["schemas"]["ShorterScoreCalibration"] | null;

@bencap bencap Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this file was edited by hand rather than regenerated, and it's drifted from the API in three ways:

  • /score-calibrations/me/search has no path entry at all, which is why CalibrationEditor calls it as a raw string and casts the response through Record<string, unknown>
  • supersededCalibrationUrn — the field the create endpoint actually accepts, and the one the draft sends — doesn't appear anywhere in the file
  • this hunk adds supersededCalibration and supersedingCalibration to ScoreCalibrationCreate, but those are response-only fields on SavedScoreCalibration; the create model has no such fields

Worth regenerating against the running API with npx openapi-typescript http://localhost:8002/openapi.json -o src/schema/openapi.d.ts

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.

Allow Deprecation of Calibrations via Superseding

4 participants