LabKit MATLAB Workbench

history

EIS consolidates its product and project contracts

id: LK-20260716-eis-project-spec
date: 2026-07-16
sequence: 89
type: refactor
compatibility: compatible
component: `labkit_EIS_app` | `1.4.1 -> 1.4.2`
scope: Electrochemistry
scope: Project lifecycle

Context

EIS split static product metadata across three files and one first-version project schema across a generic lifecycle package. Those files did not own separate impedance or plotting contracts.

Decision and rationale

Make definition.m the complete product declaration and projectSpec.m the sole durable-schema entry. Keep createSession.m explicit because restoring decoded ZCURVE items and source selection is genuine transient work.

Changes

User and data impact

Launch, multi-file selection, plotting, zoom, save/load, and export behavior remain unchanged. Project and transient state ownership are now adjacent and explicit.

Compatibility and migration

The project remains version 1 with identical fields, defaults, validation, and source records. Existing EIS projects require no migration.

Validation

Unit tests cover ZCURVE parsing, axis values, Nyquist mode, log scaling, project/session contracts, presentation, and export columns. The hidden GUI workflow covers real launch, file loading, plot interaction, save/load, and export.

Evidence

Known limitations and follow-up

Source restoration still consumes portable-reference internals. The planned shared source-path service will remove that leak across all Apps together.