Skip to main content
Extension

Managing Installed Extensions

The Extensions view shows all installed extensions across two tabs: Installed and Remote Packages.

Installed Tab​

The left panel lists all installed extensions with:

ColumnDescription
IconExtension icon or default blue placeholder
NameExtension display name
VersionInstalled version number
SummaryBrief description
BadgesPackage source (Extension / Local API Import), pre-release, update available, error

Badges​

BadgeColorDescription
ExtensionGreenInstalled from a repository or .pkg file; can be updated
Local API ImportGrayGenerated from a spec import within the workspace; no update path
Update AvailableBlueA newer version exists in the configured repository
Restart to applyGrayA version installed during this session; it takes effect after a restart
Pre-releaseOrangeThe installed version is a pre-release
ErrorRedThe extension failed to load (e.g., missing protocol dependency)

Protocol Dependencies​

Extensions can declare required protocol IDs via RequiredProtocolIds. If a required protocol extension is not installed:

  • The extension appears in the list with an Error badge
  • Its assemblies are not loaded and its services are not registered
  • The error message indicates which protocol extension is missing

Install the corresponding protocol extension to resolve the error.

Viewing Details​

Click an extension in the list to see its details in the right panel:

  • Full description
  • Package ID and type
  • Developer information
  • Package source and version

Deleting an Extension​

  1. Select the extension in the list
  2. Click Delete in the toolbar
  3. The extension is removed immediately — its services disappear from the service tree

The same delete is available from the Remote Packages tab: select the package and click Delete in its detail toolbar — the confirmation prompt and the removal are identical.

note

Assemblies from deleted extensions remain in memory until Aethrix Studio is restarted. The extension's services are immediately hidden, but a restart is recommended to fully unload the code.

Embedded Extensions​

When viewing extensions from within a Test Automation project, the tab shows Embedded Extensions — extensions bundled with that specific project. Each .aprj project can bundle its own extensions in an extensions/ subfolder using the naming convention svc-Name-vX.Y.Z.

Version Resolution Policy​

The EmbeddedExtensionBehavior setting controls how the project resolves conflicts between embedded and globally installed extensions:

PolicyBehavior
SameVersion (default)The project always uses the exact version of the extension that was originally embedded. Project behavior is deterministic regardless of what global extensions are installed.
MostRecentIf a newer version of the same extension is installed globally, the project automatically upgrades to use it. A log message is generated during project load.

Use SameVersion for reproducible CI/CD builds. Use MostRecent during development to automatically pick up updated extensions.

Orphaned Folder Cleanup​

When you save a project, Aethrix automatically scans the extensions/ folder and deletes any subfolder that is no longer referenced by the project. This catches stale folders left by version bumps, crashed saves, or manual copies.

Extension References Manifest​

The project manifest maintains an ExtensionReferences list tracking each extension by ID, name, minimum version, and source. When opening a project on a different machine, repository-sourced extensions are verified — a warning is shown if required extensions are not installed.

Deleting an Embedded Extension​

  1. Open the project and go to its Extensions view
  2. Select the embedded extension in the list
  3. Click Delete in the toolbar

The extension is removed from the project only:

  • The embedded extensions/svc-Name-vX.Y.Z folder is deleted
  • The manifest entry and the ExtensionReferences entry are removed, so the extension is no longer required and will not be auto-restored from its repository on the next open
  • Its services disappear from the project's service tree immediately
  • A globally installed extension with the same ID is not affected
tip

This is also the way to clean up a broken embedded extension — one that fails to load with an Error badge (for example, built against an incompatible framework version). The delete works even when the extension could not be loaded.

note

As with globally installed extensions, the assemblies of a deleted embedded extension remain in memory until the project (or Aethrix Studio) is closed and reopened.

Update Checks​

When the Extensions view opens, it silently queries the repository for newer versions of installed extensions (excluding Local API Imports). An Update Available badge appears next to extensions with available updates.

Updating​

  1. Select the extension on the Installed tab
  2. Click Update in the toolbar

The same door exists on the Remote Packages tab: select the package, choose the release in its version picker, and click Update. Installing an older release from the picker switches the machine to that version. Both doors install the picked version to disk; while Studio is running, a replacement of an already-loaded package is marked Restart to apply and takes effect on the next start.

See Also​