3.6 KiB
3.6 KiB
| id | ticket | title | status | created | ref_decisions | tags | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0110 | multi-frontend-compiler-vs-language-services | Add compile only frontend and absent capability conformance coverage | open | 2026-07-15 |
|
|
Briefing
DEC-0041 requires proof that a frontend can compile without editor assistance and that LSP/Studio behavior remains deterministic when editorial capabilities are absent. This plan adds focused conformance coverage so future changes cannot accidentally make language services mandatory again.
Objective
Add tests and lightweight fixtures proving compile-only frontends are valid, compiler diagnostics remain available, and absent editorial capabilities produce graceful fallback responses.
Dependencies
- Accepted decision:
DEC-0041. PLN-0107for documented contract language.PLN-0109for capability-aware LSP behavior before all fallback tests can pass.
Scope
- Add a compile-only test frontend/provider fixture that implements compiler behavior and omits
languageService(). - Add provider boundary tests proving build/analyze/compile flows do not require editor services.
- Add LSP fallback tests for absent completion, hover, signature help, semantic tokens, and future editorial capability slots when present in the API.
- Add PBS regression tests proving rich PBS editor behavior remains available.
- Add architecture tests that prevent common compiler modules from depending on PBS-specific editor services.
Non-Goals
- Build a production non-PBS frontend.
- Add a plugin loader.
- Add new editor features.
- Replace all PBS tests with generic frontend tests.
- Test external process or wire-format behavior.
Execution Method
- Locate existing provider and boundary tests, including
FrontendProviderBoundaryTest. - Add a compile-only provider fixture in the narrowest test source set that can exercise the provider contract without production registration churn.
- Write compiler-side tests asserting the fixture has a compiler, has no language service, and can participate in the relevant build/analyze/compile path selected for the fixture.
- Add LSP tests using the compile-only or stub frontend path to assert neutral responses for absent editorial capabilities.
- Preserve or extend PBS regression tests to show PBS still exposes completion, hover, signature help, semantic tokens, and documentation.
- Add architecture assertions that common compiler/pipeline modules do not instantiate PBS editorial services directly.
Acceptance Criteria
- At least one test frontend is compile-capable with
languageService()empty. - Compiler/pipeline tests prove editor services are not required for compilation or analysis.
- LSP tests prove absent editorial capabilities are handled without exceptions or compiler failures.
- PBS tests prove existing editorial behavior is still available.
- Tests do not depend on JSON, RPC, plugin loading, external processes, or future wire formats.
Tests
- Run compiler frontend API/provider tests.
- Run build pipeline boundary tests.
- Run targeted LSP tests.
- Run any architecture/reflection tests added for the no-PBS-editorial-dependency rule.
- Run
discussion validateafter plan status or workflow updates.
Affected Artifacts
prometeu-compiler/prometeu-build-pipeline/src/test/java/p/studio/compiler/specs/FrontendProviderBoundaryTest.java- Relevant frontend provider tests under
prometeu-compiler. - Relevant LSP tests under
prometeu-lsp/prometeu-lsp-v1/src/test/java - Test fixtures for a compile-only frontend/provider.
- This plan and linked workflow metadata.