2.1 KiB
2.1 KiB
Plugin Manifest Resolution Core Plan
Goal: Upgrade ProjectSpec.plugins from unverified strings to a trusted, versioned release graph with deterministic dependency resolution and generation fingerprints.
Task 1: Plugin Release Contract
- Add the
FeaturePluginSPI. - Add a versioned manifest covering provider, trust, dependencies, capabilities, conflicts, Adapter compatibility, ProjectSpec schema compatibility, DSL extensions, migrations, templates, resources, validators, quality checks, permissions, menus, and configuration keys.
- Add resolved release and execution-plan models.
Task 2: Registry And Version Constraints
- Register multiple releases of the same plugin code.
- Reject duplicate, malformed, self-dependent, or untrusted releases.
- Support exact SemVer, caret, tilde, and comparator range constraints.
- Keep release ordering deterministic and fingerprint every manifest.
Task 3: Dependency Resolver
- Resolve direct and transitive dependencies against exact Adapter and ProjectSpec schema releases.
- Backtrack when a later dependency constraint invalidates an earlier candidate.
- Detect plugin-code and capability conflicts in both directions.
- Reject dependency cycles and undeclared configuration keys.
- Produce dependency-first, stable execution order and a canonical plan fingerprint.
Task 4: Generation Integration
- Add plugin resolution failures to ProjectSpec validation as
PLUGIN_RESOLUTION_FAILED. - Stop generation before invoking the Adapter when the plugin graph cannot resolve.
- Replace selection-only plugin fingerprints with resolved release graph fingerprints.
- Include manifest identity, transitive releases, direct configuration, and execution order in the fingerprint.
Task 5: Verification And Boundary
- Add Registry, SemVer, resolver, validation, generation, and fingerprint tests.
- Run the focused suite, full Generator baseline, Admin tests, formatting checks, and local frontend health check.
- Record that database-backed plugin publishing and administration remain P2-D1b.