Disable or withdraw a Plugin
Inspect the next App generation before removing a selected Plugin or an exact signed source.
This page does not substitute for an unavailable published version. Check an exact version
- Locale
- en
- Content revision
sha256:14c7dca92f5e1a57f82e061c1199a88ebb64f144bc61e1d5e55bf3f0dbc420e7
This is a local source-checkout workflow, not a claim that a matching public
catalog release is available. Build the lenso CLI from the same Rust checkout
as your App, as in Create a local Web App.
Disabling an Instance, withdrawing a signed source, and migrating its data are
different operations. Keep the currently running distribution and its data
until the replacement passes app check, app show, and an application-level
smoke test. An App build does not overwrite an existing output directory.
Disable one Instance for the next build
In an App that already adopted example.web, inspect the exact selection:
"$LENSO_CLI" app facts --root dist --json
"$LENSO_CLI" app show --root dist/intent --jsonThe plugins/example.web/default.toml file is App-owned selection intent.
Create the empty plugins/example.web/default.disabled marker to disable that
Instance in the next App generation. Keep default.toml: it is the
configuration and selection source that you may need when enabling the
Instance again. The marker does not stop a Host that is already running.
touch plugins/example.web/default.disabled
"$LENSO_CLI" app build --out dist-disabled
"$LENSO_CLI" app check --root dist-disabled
"$LENSO_CLI" app show --root dist-disabled/intent --json
"$LENSO_CLI" app start --from dist-disabled --checkCheck the resolved Instances and bindings in app show: a dependent Plugin
may make this build invalid, which is a useful refusal, not a reason to remove
the dependency silently. Run the business operation that previously used the
Plugin against a separately started replacement Host before changing your
active deployment. To enable the Instance again, remove the .disabled
marker as a reviewed project edit and repeat the checks with a new output
directory.
Withdraw an exact signed linked Cargo source
app unadopt without --portable applies only to a source previously adopted from a
signed linked Cargo snapshot with app add PLUGIN_ID@VERSION --linked-snapshot ... --trust ... --crate .... It is not a general uninstall command for local
Plugins or external services.
After checking that no required binding needs the Instance, use its exact adopted coordinates:
"$LENSO_CLI" app unadopt example.web@0.4.5 --root .
"$LENSO_CLI" app discover --root . --json
"$LENSO_CLI" app build --out dist-withdrawn
"$LENSO_CLI" app check --root dist-withdrawn
"$LENSO_CLI" app show --root dist-withdrawn/intent --jsonThe command validates the source lock and digest, then moves the exact source
and unmodified Plugin Root intent into .lenso/trash/linked-cargo/ and prints
the recovery location. If either contains user changes, it refuses and leaves
them for review. It does not delete a database, perform a schema migration,
or prove application data compatibility. Preserve a backup and validate the
replacement's real reads and writes before retiring the old Host.
Unselect an exact signed Portable source
For a source App that adopted an exact signed .lenso-plugin with
app add PLUGIN_ID@VERSION --portable-snapshot ... --trust ... --archive ...,
use its exact coordinates and the explicit distribution flag:
"$LENSO_CLI" app unadopt example.tool@0.1.0 --portable --root .
"$LENSO_CLI" app discover --root . --json
"$LENSO_CLI" app build --out dist-portable-withdrawn
"$LENSO_CLI" app check --root dist-portable-withdrawn
"$LENSO_CLI" app show --root dist-portable-withdrawn/intent --jsonThis unselects the source and moves only an unmodified generated Plugin Root
intent into recoverable .lenso/trash/portable/. The exact archive remains
under vendor/lenso/portable/ for audit. It does not stop an already running
Host, delete application data, or reverse a data migration. Review the new
generation before switching traffic.
An exact-version upgrade is currently a separately reviewed adoption and
application migration, not an automatic upgrade operation. Check target,
contract, permissions, data compatibility, and the new distribution before
switching. If the required .crate or its dependencies are not available,
report that exact boundary; a catalog listing alone is not a runnable upgrade.