3.5 KiB
3.5 KiB
| id | ticket | title | status | created | completed | ref_decisions | tags | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0111 | multi-frontend-remove-pbs-branches | Define generic frontend editorial DTOs and capability surface | done | 2026-07-15 | 2026-07-15 |
|
|
Briefing
DEC-0042 requires the common LSP/editorial path to consume frontend-provided editorial capabilities through generic contracts exposed from prometeu-frontend-api. This plan creates the shared model surface before any LSP capability is migrated.
Objective
Define the minimal generic frontend editorial API needed by LSP v1 without changing the provider contract: FrontendProvider.compiler() remains mandatory, FrontendProvider.languageService() remains optional, and compile-only frontends remain valid.
Dependencies
- Requires accepted decision
DEC-0042. - Must complete before migrating completion, hover, signature help, or final PBS import removal.
Scope
- Add generic editorial DTOs and capability methods under
prometeu-compiler/prometeu-frontend-api. - Keep the surface aggregated behind optional
FrontendProvider.languageService(). - Model empty/fallback behavior for unsupported capabilities.
- Keep frontend API independent from
prometeu-lsp.
Non-Goals
- Migrating
CompilerLanguageServiceBridgebehavior in this plan. - Removing PBS imports from LSP in this plan.
- Adding plugin discovery, dynamic loading, RPC, sandboxing, or service locator infrastructure.
- Making
languageService()mandatory.
Execution Method
- Inspect
prometeu-compiler/prometeu-frontend-api/src/main/java/p/studio/compiler/services/FrontendProvider.javaand currentPBSFrontendLanguageServiceto identify existing method shapes. - Add generic models under
prometeu-compiler/prometeu-frontend-api/src/main/java/p/studio/compiler/servicesor a nearby frontend editorial package:FrontendCompletionCandidateFrontendHoverFrontendSignatureHelpFrontendSignatureFrontendSymbolKindFrontendDocumentation, only if documentation format must be explicit.
- Add or update the frontend language service interface so the optional language-service surface can expose semantic tokens, completion, hover, and signature help using generic types.
- Define deterministic defaults for missing capabilities, such as empty completion lists, empty semantic tokens, no hover, and empty signature help.
- Keep DTOs free of LSP4J, PBS AST, PBS semantic, and Studio UI dependencies.
- Add API-level tests or compile fixtures proving a provider can omit
languageService().
Acceptance Criteria
prometeu-frontend-apiexposes generic editorial DTOs for current LSP v1 needs.- The API does not import
prometeu-lsp, LSP4J, orp.studio.compiler.pbs.*. FrontendProvider.languageService()remains optional.- A compile-only provider still compiles without implementing editorial methods.
- The generic model can represent labels, details, kinds, Markdown/documentation, signatures, active signature, active parameter, and semantic token keys needed by PBS.
Tests
- Frontend API compile/test task.
- Existing provider boundary tests.
- Compile-only provider fixture tests proving no language service remains valid.
Affected Artifacts
prometeu-compiler/prometeu-frontend-api/src/main/java/p/studio/compiler/services/...prometeu-compiler/prometeu-build-pipeline/src/test/java/p/studio/compiler/specs/FrontendProviderBoundaryTest.java