LabKit MATLAB Workbench

app manual

LabKit Launcher

The LabKit Launcher is the installed workbench entry point. It discovers apps, prepares their MATLAB paths, checks requirements, starts App SDK sessions, manages installed versions, opens app documentation, and exposes source-checkout maintenance tools. It is intentionally self-contained so a single surviving labkit_launcher.m can repair an incomplete ZIP installation.

Start The Launcher

labkit_launcher

The window paints before app discovery completes. Its status area first reports that the app list is loading, then shows the selected app, integrity problems, tool availability, or the active maintenance operation.

Launcher Window

GroupActionBehavior
Run AppsOpen Selected AppChecks the selected app requirements, adds the app root, and calls its App SDK entrypoint without retired runtime launch arguments.
Run AppsOpen DebugStarts the same App through its typed SDK diagnostics contract, records verbose structured events under artifacts/diagnostics/launcher/, and loads the App-owned anonymous synthetic sample.
Run AppsRefresh App ListRepeats public and configured private-app discovery without restarting the launcher.
Run AppsDocumentation and HistoryOpens the generated manual for the selected app.
Versions and InstallLatestInstalls the current main branch archive.
Versions and InstallReleaseInstalls the latest stable GitHub release.
Versions and InstallVersionsOpens the release, tag, and commit selector for deliberate upgrade or rollback.
Development and MaintenanceUpdate DocumentationRegenerates site/ with the repository-owned documentation compiler.
Development and MaintenanceRun Code AnalyzerScans the checkout and writes JSON and HTML Code Analyzer reports.
Development and MaintenanceProfile Selected AppStarts the selected app under the MATLAB profiler and saves its report when the app closes.
Development and MaintenanceClean ArtifactsRemoves ignored generated reports under artifacts/; it does not delete app projects or exported laboratory results.
Package and PublishPackage CheckedCreates one source ZIP containing all checked apps and their runtime support.
Package and PublishChecked P-codeCreates a runtime-only ZIP with MATLAB source encoded as P-code.

Double-clicking an app row is equivalent to selecting it and opening it normally. The checkbox column controls package membership; ordinary launch selection does not change the checked set.

Debug sessions use a new isolated artifact folder on every launch. The folder contains the runtime event stream, session manifest, synthetic sample manifest, and any anonymous fixture files declared by the selected App. Normal launches keep the SDK's bounded standard diagnostics in memory and do not create this verbose artifact set.

Programmatic Calls

The launcher exposes a small non-GUI surface:

fig = labkit_launcher;
apps = labkit_launcher("list");
info = labkit_launcher("version");
page = labkit_launcher("documentation", "labkit_CIC_app");
CallResult
labkit_launcherOpens the window; optionally returns its figure handle.
labkit_launcher("list")Returns the discovered app catalog as a table without opening the launcher window.
labkit_launcher("version")Returns launcher name, display name, semantic version, and update date.
labkit_launcher("documentation", appCommand)Returns the local generated HTML page for one discovered app command.

Unsupported modes, empty documentation commands, extra inputs, and more than one requested GUI output raise labkit_launcher:InvalidInput or labkit_launcher:TooManyOutputs errors.

Documentation lookup uses the discovered public App folder and the unique path-conventional manual at docs/apps/<family>/<app>/README.md. It does not require a separately maintained App catalog.

App Discovery

Public apps are discovered from apps/**/labkit_*_app.m. Each entry point delegates to one definition.m, which supplies display metadata, family, command, version, requirements, layout, and optional capabilities. The launcher reads version and update metadata from that definition without starting the App. Local private apps may be discovered from private_apps/apps/ or paths named by LABKIT_PRIVATE_APP_ROOTS; their repositories and manuals remain private.

The launcher adds only the paths needed for the selected app. It does not use genpath to expose every app helper globally. Refresh the app list after adding, removing, or updating an app while the launcher remains open.

Installation And Recovery

The downloaded launcher can begin in an otherwise empty folder. Latest, Release, and Versions download a repository archive, validate its contents, preserve a dated LabKit-previous-* recovery copy, and then replace the managed runtime. Keep experimental data and exports outside that runtime folder because installed code is replaceable.

Installed apps run offline unless their own inputs use a network location. Version discovery and update actions require network access. Source and P-code deployment packages have different contents; see App Deployment Packages.

Maintenance Tools

Maintenance buttons are enabled only when their corresponding source-checkout tool is available. The same operations can be called directly from MATLAB:

These tools produce ignored artifacts. They are not app runtime APIs and do not alter scientific data.

Development History

The launcher began as the visible entry point for UI 2.0, then gained self-contained repair updates, version selection, private-app discovery, profiling and packaging actions, early startup feedback, and direct app documentation links. The generated Change history below lists every record whose metadata names labkit_launcher in linear sequence.

Key milestones:

Change history