5.4 KiB
| id | ticket | title | status | created | completed | tags | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0073 | frontend-semantic-host-projection-flexibility | LSP Semantic Host Projection Transport | open | 2026-05-06 |
|
Objective
Transport canonical frontend semantic vocabulary and frontend-authored VS Code host projection metadata through the Prometeu LSP boundary without normalizing semantic meaning inside the transport layer.
Background
DEC-0034 requires LSP to carry both canonical frontend semantic keys and frontend-authored host projection metadata, while preserving the ownership boundary between frontend semantics and host adaptation. DEC-0033 already introduced frontend-authored visual themes through the LSP handshake; semantic host projection must now follow the same ownership model.
Scope
Included
- Extend LSP-facing baseline message models to carry semantic host projection metadata.
- Update the compiler-backed language service bridge to resolve and expose that metadata from frontend definitions.
- Update the LSP protocol mapper to publish the transported metadata to the VS Code extension.
- Add tests that prove canonical keys and projection metadata are both preserved across transport.
Excluded
- Defining the compiler-general projection contract itself.
- Applying the projection inside the VS Code extension.
- Redesigning semantic token classification logic beyond what is needed to expose projection metadata.
Non-Goals
- Performing semantic normalization inside the LSP layer.
- Collapsing frontend semantic keys into host token types in baseline message models.
- Introducing host-specific semantic rules into
lsp-apithat belong to frontend metadata.
Execution Steps
Step 1 - Extend baseline transport models for semantic projection
What: Add baseline message shapes that can carry semantic host projection metadata. How: Evolve LSP-facing DTOs so the server description or related handshake payload can transport:
- frontend language identity,
- canonical frontend semantic keys,
- one or more host projection entries for VS Code,
- any fallback metadata required by the projection contract.
The transport model MUST preserve canonical frontend keys explicitly rather than flattening everything into host token types.
File(s): prometeu-lsp/prometeu-lsp-api/src/main/java/**, prometeu-lsp/prometeu-lsp-v1/src/main/java/p/studio/lsp/messages/**.
Step 2 - Resolve transport payload from compiler frontend metadata
What: Make the language service bridge expose semantic host projection metadata from the frontend contract.
How: Update compiler-backed bridge code to read canonical semantic keys plus VS Code projection descriptors from the frontend definition and map them into the baseline transport payload without reinterpreting semantic meaning.
File(s): prometeu-lsp/prometeu-lsp-v1/src/main/java/p/studio/lsp/services/compiler/**.
Step 3 - Publish the projection payload through the handshake
What: Make the VS Code client able to receive semantic projection metadata at initialization time.
How: Update the protocol mapping layer so the initialize result transports canonical semantic keys and VS Code projection metadata through the agreed experimental surface or another current handshake surface, while keeping semantic theming transport from DEC-0033 intact and coherent.
File(s): prometeu-lsp/prometeu-lsp-v1/src/main/java/p/studio/lsp/services/protocol/mapping/**, related server description surfaces.
Step 4 - Lock transport behavior with tests
What: Prevent future drift toward semantic normalization inside LSP. How: Add tests that assert:
- canonical frontend semantic keys survive transport,
- VS Code projection entries survive transport,
- payload structure remains mechanically consumable by the extension,
- the transport layer does not replace frontend keys with host token categories.
File(s): prometeu-lsp/prometeu-lsp-v1/src/test/java/**, prometeu-lsp/prometeu-lsp-api tests if present.
Test Requirements
Unit Tests
- Validate mapping from frontend projection metadata into baseline transport DTOs.
- Validate transport serialization of canonical keys plus projection entries.
Integration Tests
- Run targeted
lsp-v1tests proving the server handshake exposes both semantic themes and semantic host projection coherently.
Manual Verification
- Inspect the initialize payload and confirm that frontend semantic keys and VS Code projection metadata are both visible.
- Confirm no layer in LSP rewrites canonical semantic keys into a mandatory host taxonomy.
Acceptance Criteria
- LSP transport models carry canonical frontend semantic keys and VS Code projection metadata together.
- The compiler-backed bridge resolves that metadata directly from frontend definitions.
- The initialize payload exposes the metadata mechanically to the extension.
- Tests lock the transport layer against semantic normalization drift.
Dependencies
DEC-0034accepted and normatively locked.PLN-0072completes the compiler/frontend projection contract.DEC-0033transport conventions remain in force for visual theme payloads.
Risks
- Reusing visual theme payload structures carelessly could blur the boundary between visual and semantic contracts.
- Flattening transport too aggressively could erase canonical frontend key identity.
- Excessive protocol specialization could make future hosts harder to add.