Skip to content

Introduce ApplicationModule base class, ModuleDescriptor, and ModuleRegistry#7291

Draft
isaacroldan wants to merge 1 commit intomainfrom
04-14-introduce_applicationmodule_base_class_moduledescriptor_and_moduleregistry
Draft

Introduce ApplicationModule base class, ModuleDescriptor, and ModuleRegistry#7291
isaacroldan wants to merge 1 commit intomainfrom
04-14-introduce_applicationmodule_base_class_moduledescriptor_and_moduleregistry

Conversation

@isaacroldan
Copy link
Copy Markdown
Contributor

WHY are these changes introduced?

Fixes #0000

WHAT is this pull request doing?

How to test your changes?

Post-release steps

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes
  • I've considered analytics changes to measure impact
  • The change is user-facing, so I've added a changelog entry with pnpm changeset add

…egistry

Phase 1 of the ExtensionSpecification → ApplicationModule refactor.

- Create ApplicationModule abstract base class that will replace ExtensionInstance.
  All shared instance state and infrastructure methods (build pipeline, file
  watching, handle/uid computation, bundling) live on the base class.
  Subclasses override behavior methods (appModuleFeatures, deployConfig, etc.)

- Create ModuleDescriptor interface for pre-instantiation concerns (type
  lookup, schema contribution, config parsing, instance factory). This
  replaces ExtensionSpecification for the pre-instantiation registry.

- Create ModuleRegistry class to hold descriptors and provide type lookup,
  schema building, and remote spec merging.

- Make ExtensionInstance extend ApplicationModule for backward compatibility.
  It delegates identity/behavior to the existing ExtensionSpecification,
  preserving the current API surface for all consuming files.

- Move shared types (ExtensionFeature, AssetIdentifier, Asset, etc.) to
  application-module.ts as canonical location; re-export from specification.ts
  for backward compat.

No consumer changes - all 513 model tests and 488 service tests pass.
@isaacroldan isaacroldan force-pushed the 04-14-introduce_applicationmodule_base_class_moduledescriptor_and_moduleregistry branch from e215bc7 to 273a501 Compare April 14, 2026 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant