Skip to content

Adopt versioned signed peak-height parameters in interactive browser fits #11

Description

@PierreRaybaut

Summary

DataLab-Web delegates interactive Gaussian, Lorentzian and Voigt fitting to Sigima inside Pyodide. Sigima is replacing the historical area-based amp parameter with a versioned amplitude parameter representing signed peak height above the baseline. The browser runtime must require that release and persist the same canonical fit metadata as Sigima and DataLab desktop.

Required changes

  • Require sigima>=1.1.6 in the CPython test dependencies.
  • Require sigima>=1.1.6 in both Pyodide installation paths: the main runtime and secondary macro/notebook workers.
  • Add amplitude to the interactive fit label map while retaining amp for unrelated models that still use that parameter name.
  • Let fit initialization and slider evaluation consume Sigima's amplitude keys directly.
  • When auto-fitting, remove all keys declared by FIT_PARAMS_METADATA_KEYS; peak dictionaries now also contain fit_params_version and the non-numeric peak_parameterization marker.
  • On commit, use sigima.tools.signal.fitting.create_fit_params() rather than assembling metadata manually. Include residual RMS and interactive: true.

Compatibility behavior

Do not add a browser-side alias that maps historical amp values to amplitude. Old values are integrated areas and cannot be reinterpreted safely. Runtime startup must fail dependency resolution rather than load a Sigima wheel older than 1.1.6 and expose the old scientific contract under the new UI.

DataLab-Web does not currently persist editable creation DataSets independently from Sigima, so the desktop Creation-tab migration UX is out of scope. Historical HDF5 objects may remain displayable, but any future action that reuses historical peak parameters must delegate to Sigima's strict validation and explicit converter.

Tests

  • CPython lifecycle test: catalogue -> init -> evaluate -> auto-fit -> commit.
  • Assert Gaussian descriptors contain amplitude and not amp.
  • Assert committed peak metadata contains fit_params_version: 2, peak_parameterization: "height", interactive: true and amplitude.
  • Run the complete Python suite against the sibling Sigima 1.1.6 source until the wheel is published.
  • Run the mandatory Prettier, ESLint and Vitest checks.
  • After the 1.1.6 wheel is available to Pyodide, exercise the visible Gaussian interactive-fit dialog with Playwright and assert that committing the fit adds a visible result curve without a runtime error.

Acceptance criteria

  • Main-thread and worker-hosted runtimes resolve Sigima 1.1.6 or later.
  • Auto-fit does not attempt to coerce schema metadata such as "height" to a float.
  • Interactive peak commits produce the same canonical fit_params contract as Sigima and DataLab desktop.
  • No compatibility path silently treats integrated area as peak height.
  • Python, TypeScript and browser-driven tests pass with the published dependency.

Release ordering

  1. Publish Sigima 1.1.6.
  2. Verify the Pyodide-compatible wheel is visible to micropip.
  3. Run the DataLab-Web Playwright regression against that wheel.
  4. Merge/release DataLab-Web with the new minimum requirement.

Related issues

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions