Expand description
Rust language-server runtime and editor protocol boundary for Omena CSS Modules.
Modules§
- tide
- Tide scheduling kernel (rfcs#111): an epoch ledger with per-input high-water marks, footprint-scoped job validity, and idempotent demand lanes flushed through settle gates.
Macros§
Structs§
- Cache
Write Surface V0 - Code
Action Provider Capability V0 - Completion
Provider Capability V0 - Diagnostics
Pipeline Tier Plan V0 - Diagnostics
Publish Digest Registry V0 - Diagnostics
Publish Receipt V0 - Frame
Aware Refresh Comparison V0 - Frame
Aware Refresh Report V0 - Frame
Aware Refresh Runtime V0 - Frame
Aware Style Module Input V0 - LspDeferred
Diagnostics Dispatch V0 - LspDiagnostic
Settings - LspDiagnostics
Follow UpEffects V0 - LspExternal
SifRefresh Cache Storage V0 - LspExternal
SifRefresh JobV0 - LspExternal
SifRefresh Result V0 - LspFeature
Settings - LspFile
Id - LspGlobal
Class Fallthrough Candidate V0 - A reference that failed the bound module’s export set but resolved in
the GLOBAL class universe (tier two): rendered as the
globalClassFallthroughdisclosure instead of a missing-selector warning. Property accesses never produce one — they have no runtime fall-through and stay strict. - LspHandler
Surface V0 - LspMigration
Phase V0 - LspOptimizing
Tier Feedback - LspOwned
Source Diagnostics Render Inputs V0 - LspOwned
Style Diagnostics Render Inputs V0 - LspQuery
Dispatch V0 - A dispatched read-only request paired with its loop-consistent snapshot and optional client-request completion token.
- LspQuery
Snapshot V0 - Copy-on-write read model for dispatched queries and deferred read workers.
- LspResolution
Settings - LspReverse
Dependency Refresh V0 - A reverse-dependency memo refresh produced as a BYPRODUCT of an off-loop selector build: the loop applies it from the completion channel instead of ever building a selector itself.
- LspShell
State - LspShell
State Snapshot - LspSource
Type Fact Cache Telemetry V0 - LspSource
Type Fact Tier Attempt V0 - LspStyle
Document Summary - LspStyle
Hover Candidate - LspStyle
Hover Candidates Result - LspText
Document State - LspTrust
Boundary V0 - LspWatched
File Change State - LspWorkspace
Folder State - LspWorkspace
Index Cache Storage V0 - LspWorkspace
Index JobV0 - LspWorkspace
Index Result V0 - Multi
Editor Distribution V0 - Omena
LspServer Boundary Summary V0 - Omena
LspServer Capabilities V0 - Rename
Provider Capability V0 - Resolve
Provider Capability V0 - Scheduled
LspOutput - Source
Provider Direct Rust Adapter V0 - Thin
Client Endpoint V0 - Tide
Workspace Republish Item V0 - Tide
Workspace Republish JobV0 - Tide
Workspace Republish Result V0 - Workspace
Capability V0 - Workspace
Folders Capability V0
Enums§
- Cache
Storage Rung V0 - Cache
Write Surface Kind V0 - Deferred
Diagnostics Render Inputs V0 - Diagnostics
Publish Tier V0 - LspDocument
Origin - LspLoop
Turn V0 - One loop turn for the stdio server.
Constants§
- CASCADE_
AT_ POSITION_ REQUEST - CLEAR_
CACHES_ REQUEST - DEBUG_
STATE_ REQUEST - EXPLAIN_
HOVER_ TRACE_ REQUEST - HOVER_
SUBSTRATE_ WARMUP_ METHOD - Worker-side resolution of a dispatched query request. Mirrors the
synchronous
handle_lsp_messagearms exactly, including the feature gating (evaluated against the snapshot, i.e. the settings in force at dispatch time). Returns the complete JSON-RPC response;Noneonly for messages that were never dispatchable (defensive — the loop only dispatches hover/definition requests). Internal dispatch (no client-visible response): resolve one hover against the snapshot purely to POPULATE the Arc-shared hover memos (cascade-narrowing substrate, resolver identity index) right after a republish tide settles — the user’s FIRST hover then lands warm instead of paying the substrate build interactively. - NODE_
TEXT_ DOCUMENT_ SYNC_ KIND - OPTIMIZING_
DIAGNOSTICS_ DELAY_ MS - REACTIVE_
SHADOW_ ENV - RUNTIME_
LOOP_ PROBE_ REQUEST - SDK_
WORKFLOW_ REQUEST - SOURCE_
DIAGNOSTICS_ REQUEST - STYLE_
CONTEXT_ INDEX_ REQUEST - STYLE_
DIAGNOSTICS_ REQUEST - STYLE_
HOVER_ CANDIDATES_ REQUEST
Traits§
- LspQuery
Read View - Read-only state surface available to off-loop query work.
Functions§
- apply_
background_ workspace_ index_ result - apply_
deferred_ external_ sif_ refresh_ result - apply_
external_ sif_ refresh_ result_ follow_ up_ diagnostics_ effects - apply_
reverse_ dependency_ refresh - Apply an off-loop reverse-dependency refresh (produced by a worker’s selector build, delivered through the completion channel) to the loop state’s memo. The straight-line build has no memo; the refresh is a no-op there.
- apply_
tide_ workspace_ republish_ item - Loop-side apply for ONE item — the caller pumps a bounded chunk per tick (I4) and must have verified the tide generation is still current. Write-behind runs through the loop state’s real disk-cache session, then the tiered publish emits in the same shape as every other arm.
- collect_
background_ workspace_ index - collect_
background_ workspace_ index_ with_ cache_ storage - collect_
deferred_ external_ sif_ refresh - collect_
deferred_ external_ sif_ refresh_ with_ cache_ storage - collect_
tide_ workspace_ republish_ streaming - Worker-side compute, streaming (rfcs#111 §8.5): ONE shared-graph parallel wave — one memo-host sync, one substrate, one condensation — with a per-item sink that emits each target the moment its pool task finishes. Open documents were ordered first by prepare, so they converge first. The generation watch aborts disowned tides at item boundaries; the final event carries the uncovered remainder for the fallback arm.
- compare_
frame_ refresh_ against_ unconditional_ baseline - complete_
dispatched_ query_ response - Choose the single client-visible response at the worker completion boundary.
- complete_
tide_ workspace_ republish - Completion: re-arm the lane; when the tide is still current, uncovered targets re-enter the per-file deferred arm so no key is silently skipped.
- current_
node_ lsp_ capability_ contract - dispatched_
query_ internal_ error_ response - The dispatched request class: hover/definition REQUESTS (an
idis required — without one there is nothing to respond to). Notifications named like these methods fall through to the synchronous path unchanged. JSON-RPC internal-error response for a dispatched query whose resolver panicked on the worker: the request still gets exactly one response (a silent drop would hang the client), and the worker survives to serve the rest of its queue. - dispatched_
query_ is_ heavy - Lane routing for dispatched queries: HEAVY dispatches (codeLens, whose occurrence-index rebuild is a whole-corpus scan, and the internal substrate warmups) run on their own worker so an interactive hover / definition / documentColor never queues behind a multi-second compute. Head-of-line blocking on the single lane was measured live: a documentColor answered 3ms of work 20 SECONDS after dispatch because a codeLens rebuild held the worker.
- enable_
deferred_ external_ sif_ refresh - external_
sif_ refresh_ follow_ up_ diagnostics_ effects - handle_
lsp_ message - handle_
lsp_ message_ outputs - handle_
lsp_ message_ scheduled_ outputs - handle_
lsp_ message_ scheduled_ outputs_ or_ dispatch - Loop-side turn handler for the stdio server. Mirrors
handle_lsp_message_scheduled_outputsexcept that dispatchable query requests are returned as jobs instead of being resolved inline. - hover_
substrate_ warmup_ dispatch - The post-settle warmup dispatch: the first OPEN style document’s first hover candidate. One document suffices — the substrate the build warms is workspace-scoped, not per-document.
- lsp_
handler_ surfaces - lsp_
migration_ phases - lsp_
trust_ boundary_ contract - multi_
editor_ distribution_ contract - omena_
loop_ trace_ enabled - prepare_
background_ workspace_ index_ cache_ storage - prepare_
background_ workspace_ index_ continuation_ job - prepare_
background_ workspace_ index_ job - prepare_
deferred_ external_ sif_ refresh_ cache_ storage - prepare_
deferred_ external_ sif_ refresh_ job - prepare_
tide_ workspace_ republish_ job - Gate evaluation + snapshot capture, on the loop.
idleis the courtesy input (no recent client message); aging overrides it after [TIDE_REPUBLISH_LANE_CONFIG]’s bound, the frontier never. - refresh_
diagnostics_ with_ frame - refresh_
diagnostics_ with_ frame_ policy - resolve_
deferred_ diagnostics_ notification - resolve_
deferred_ diagnostics_ notification_ with_ reverse_ refresh - The worker-side deferred compute, additionally returning the reverse-dependency refresh its selector build produced — the loop applies it from the completion channel, which is what keeps the loop-side memo fresh WITHOUT the loop ever building a selector.
- resolve_
dispatched_ query_ response - resolve_
style_ hover_ candidates - source_
provider_ direct_ rust_ adapter_ contract - summarize_
omena_ lsp_ server_ boundary - thin_
client_ endpoint_ contract - tide_
workspace_ republish_ flush_ effects - Evaluate the workspace-republish settle gate; on flush, run the follow-up executor over the flushed demand’s targets. M2 keeps the per-file deferred executor verbatim and completes the tide at flush time — the executor swap to the off-loop generation-checked wave is exclusively M3 (rfcs#111 §12).
- workspace_
index_ progress_ end_ output - workspace_
status_ notification - workspace_
status_ snapshot - Compact workspace status for the client’s status surface. Change-driven:
the loop sends
omena/statusonly when this tuple moves, so the wire cost is bounded by real state transitions, not by tick rate.