prometeu-studio/discussion/workflow/plans/PLN-0110-add-compile-only-frontend-and-absent-capability-conformance-coverage.md
2026-07-15 09:40:13 +01:00

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
DEC-0041
compiler
compiler-general
studio
lsp
editor
frontend
multi-frontend

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-0107 for documented contract language.
  • PLN-0109 for 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

  1. Locate existing provider and boundary tests, including FrontendProviderBoundaryTest.
  2. Add a compile-only provider fixture in the narrowest test source set that can exercise the provider contract without production registration churn.
  3. 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.
  4. Add LSP tests using the compile-only or stub frontend path to assert neutral responses for absent editorial capabilities.
  5. Preserve or extend PBS regression tests to show PBS still exposes completion, hover, signature help, semantic tokens, and documentation.
  6. 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 validate after 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.