Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

Contracts and edge cases

Platform spec article

Contracts and edge cases

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki
  • Open buffer wins — Disk index must not overwrite an open Document for the same Uri.
  • Monotonic versions — Stale didChange versions must be ignored per LSP rules.
  • Cache generation — When ANALYSIS_CACHE_VERSION increments, all snapshots must rebuild even if text is unchanged.
  • Diagnostic debounce — Only the latest scheduled revision per URI may publish; superseded tasks must no-op.
  • Manifest URIs.proj files must not run Beskid semantic analysis snapshots.
  • Parity — Diagnostic codes and severities must match beskid analyze for the same CompilationContext.
CaseBehavior
Source outside focused project treeFall back to focused Project.proj when path is under focus root (project_context.rs)
No resolvable manifestAnalysis snapshot is None; features degrade gracefully without fabricated graphs
Large workspace scanProgress events must remain cancellable by subsequent invalidation
Rapid typingText-hash fast path avoids parse until pause; debounced diagnostics may lag one generation
Lockfile change during editHard invalidation; user may see transient empty diagnostics until rescan completes

Changes to project.mod or mod AOT outputs must hard-invalidate compilation cache before re-running generators. Soft paths are opt-in and require proven stable capture keys.