Releases: Pluze/LabKit-MATLAB-Workbench
Release list
LabKit MATLAB Workbench v2.2.0
Highlights
- Added a self-contained launcher update panel with separate Latest and Release update paths.
- Latest downloads the current GitHub main zip; Release downloads the latest GitHub release and falls back to the latest tag.
- Kept zip updates disabled for git checkouts while supporting repair of damaged zip installs.
- Added an ASCII-only repository hygiene guardrail and removed legacy non-ASCII label compatibility.
Validation
- Local: buildtool changed passed, including 157 headless tests and 3 launcher GUI tests.
- CI: MATLAB Tests passed on main for commit c904bac.
LabKit MATLAB Workbench 2.1
Highlights
- Stabilized the app interactions and launcher repair path before the 2.1 release.
- Fixed multiple app-level usability regressions around logs, busy-window titles, plot refresh, and signal-axis zoom behavior.
Fixes
- Launcher zip updater now reports the real update error instead of masking it with a MATLAB message-identifier formatting error.
- Zip updater backup/archive paths are scalarized for MATLAB archive APIs.
- Log tabs expand log panels to the available height.
- Busy window titles no longer accumulate repeated [Working: ...] suffixes.
- VT resistance plot refresh/reset clears previous markers and annotations before redraw.
- Time-series preview axes use mouse-wheel zoom on the horizontal time axis only.
Upgrade Note
This release supersedes 2.0. Version 2.0 has fatal path-handling and update defects that can make normal use fail, so users should upgrade to 2.1 or newer.
Validation
- Local: buildtool headless passed.
- Local: buildtool gui passed.
- CI: MATLAB Tests passed for commit 76ddf7d.
LabKit MATLAB Workbench v2.0
LabKit MATLAB Workbench v2.0
LabKit 2.0 turns the repository into an app-first MATLAB workbench for focused lab GUI workflows. Apps are the primary deliverable, while +labkit remains a smaller reusable foundation for UI, Gamry DTA loading, and biosignal processing.
This v2.0 release has been corrected to include the DIC postprocess bugfixes from the final release commit b419b6b0b93147fc62ca08c7b68e2febd0a88a27.
Highlights
- App launcher: start from
labkit_launcher, discover allapps/**/labkit_*_app.mentry points, launch normal or debug sessions, open Project Governance, and clean generated artifacts from one place. - UI 2.0 app framework: apps use declarative
labkit.ui.spec.*workbench specs, semanticlabkit.ui.view.*updates, reusable interaction tools, and a consistent left-controls/right-workspace layout. - Better default layout sizing: text-heavy controls such as status panels, log panels, path panels, and result tables now receive conservative automatic starting heights.
- DIC postprocess fix: strain overlay rendering can trim unreliable edge pixels, summary statistics now use the MAT-derived strain domain instead of the display mask, and EXX/EYY overlay export writes clean PNGs matching the input reference image pixel size.
- DIC postprocess export cleanup: removed DPI-based figure overlay export and separate colorbar export from the app workflow.
- DIC postprocess compatibility: nearest strain extension no longer depends on
bwdist, so unit tests pass in CI environments without that toolbox function. - Project Governance app: create new LabKit app scaffolds, preview generated file structure, run MATLAB Code Analyzer reports, and create local MATLAB Project files when needed.
- Debug artifacts:
app("debug")writes app debug traces underartifacts/debug/, so launch and GUI interaction failures remain inspectable even if the visible app log is inaccessible. - Cleaner test framework: tests are discovery-driven under
tests/cases/{unit,contract,gui}, with shared helpers and runner internals separated. - Artifact hygiene: MATLAB batch logs, debug traces, test reports, and code analyzer JSON now live under
artifacts/instead of the repository root.
App Coverage In This Release
Electrochemistry:
labkit_CIC_applabkit_CSC_applabkit_ChronoOverlay_applabkit_EIS_applabkit_VTResistance_app
DIC:
labkit_DICPreprocess_applabkit_DICPostprocess_app
Image measurement:
labkit_BatchImageCrop_applabkit_CurvatureMeasurement_applabkit_FocusStack_applabkit_ImageEnhance_applabkit_ImageMatch_app
Wearable biosignal:
labkit_ECGPrint_app
Project tools:
labkit_ProjectGovernance_app
What Changed Since 1.0
- Apps were migrated away from large public entry-point files and legacy
+ui/runApp.mrunner shapes. Current apps use a thin public app function, package-rootrun.m, and app-local+ui/buildSpec.m. - The old flat UI helper surface was removed. New app-facing UI code uses the layered facades under
labkit.ui.app,labkit.ui.spec,labkit.ui.view,labkit.ui.tool, andlabkit.ui.diag. - Root-level MATLAB test wrappers were simplified. Use
buildtooltasks directly or route MATLAB discovery throughscripts/matlab_batch.sh. - MATLAB Project metadata is local IDE state now. The tracked repository does not include
LabKit.prjorresources/project/; use Project Governance when a local.prjfile is useful. - The scaffold template app was replaced by the Project Governance generator. New apps are ordinary MATLAB source after generation; there is no manifest or generated registry to maintain.
- Test fixtures were reduced to synthetic generated data where possible, including DTA fixtures created during tests instead of checked-in sample files.
- Human docs and agent-facing rules were separated. User docs describe current behavior and commands; agent docs and skills own workflow rules.
Compatibility And Migration Notes
This is a major release. Existing personal scripts that call old internal helpers may need updates.
-
Use
labkit_launcheror direct app commands such aslabkit_CIC_app. -
Use
app("debug")for debug launch. Lower-level debug options belong tolabkit.ui.diag.createContext, not public app entry points. -
Replace old UI helper calls such as
labkit.ui.view.form,labkit.ui.view.panel,labkit.ui.view.draw, orlabkit.ui.app.createShellwith UI 2.0 specs plus semantic view helpers. -
Replace old test wrapper usage with:
buildtool test scripts/matlab_batch.sh "buildtool test" scripts/matlab_batch.sh "buildtool testProject" scripts/matlab_batch.sh "buildtool testAppsGui"
-
If you depended on checked-in MATLAB Project files, regenerate local project state from
labkit_ProjectGovernance_app. -
If you depended on old test paths, use
tests/runLabKitTests.mselectors or the build tasks indocs/testing.md.
Getting Started
From MATLAB at the repository root:
labkit_launcherTo initialize paths without opening the launcher:
startup_labkitTo create a new app:
labkit_ProjectGovernance_appCLI-style scaffold creation uses the same app-owned operation:
startup_labkit
project_governance.ops.createLabKitApp("Family","image_measurement", ...
"Slug","surface_roughness", ...
"Label","Surface Roughness")Validation
The release commit is b419b6b0b93147fc62ca08c7b68e2febd0a88a27.
Local validation for the DIC bugfix:
git diff --checkrunLabKitTests('Suites','apps/dic','IncludeGui',false)runLabKitTests('Suites','gui/apps/dic/dic_postprocess','IncludeGui',true)buildtool testUnit
GitHub Actions:
- Workflow: MATLAB Tests
- Run: https://github.com/Pluze/LabKit-MATLAB-Workbench/actions/runs/27514132788
- Result: success
- Commit:
b419b6b0b93147fc62ca08c7b68e2febd0a88a27
Known Limits
- Automated GUI tests validate launch, layout, callback wiring, debug plumbing, and selected gesture behavior. They do not replace manual review of full lab workflows, file dialogs, or visual judgment inside MATLAB.
- App-specific scientific assumptions, thresholds, exports, and plot wording remain owned by each app.
+labkitintentionally stays small.
LabKit MATLAB Workbench 1.0
LabKit MATLAB Workbench 1.0
This is the first stable LabKit MATLAB Workbench baseline after the app-owned package migration, reusable LabKit UI API cleanup, and README/project presentation refresh.
Included workflows
- Electrochemistry/Gamry DTA apps for chrono overlays, CIC, CSC, VT resistance, and EIS workflows.
- DIC preprocessing and postprocessing apps for image registration, ROI masks, Ncorr strain overlays, and exports.
- Image measurement utilities for curve length/curvature measurement, scale-bar calibration, microscopy focus stacking, and batch image cropping.
- Wearable biosignal review for ECG import, filtering, peak detection, segments, templates, and SNR-style measurements.
Reusable foundation
- Layered
labkit.ui.app/view/tool/diagGUI facades. - GUI-free
labkit.dtafacade for Gamry DTA loading, sessions, parsed curves, and pulse helpers. - GUI-free
labkit.biosignalfacade for recording import, filtering, ECG events, segments, templates, and measurements.
Validation
- Local project guardrails passed with
scripts/run_matlab_tests.sh testProjectbefore this release. - GitHub Actions CI is triggered from the final README commit on
main.