Sibling articles under this feature previously restated requirements in inconsistent forms.
Incremental scheduling and determinism - Flow and algorithm
Platform spec article
Incremental scheduling and determinism - Flow and algorithm
Spec standingStandard
-
This feature hub owns normative MUST/SHOULD contract text for Incremental scheduling and determinism.
Context
Decision
This feature hub owns normative MUST/SHOULD contract text. Sibling articles must not redefine hub requirements and should link here for authority.
Consequences
Contract changes start on the hub or in linked ADRs, then propagate to articles and implementation anchors.
Verification anchors
site/website/src/content/docs/platform-spec/compiler/compiler-mods/incremental-scheduling-determinism/index.mdxarticle bundle under the same feature directory.
-
Platform-spec text supersedes informal crate comments for Incremental scheduling and determinism.
Context
Implementation crates accumulated informal notes that diverged from published contracts.
Decision
Normative platform-spec prose and ADRs under this feature supersede informal comments in implementation crates until explicitly migrated into spec text.
Consequences
Engineers file spec/ADR updates when behavior changes; crate comments are non-authoritative for conformance arguments.
Verification anchors
compiler/crates/beskid_analysis/src/analysis/rules/staged/compiler/crates/beskid_lsp/
-
Incremental mod runs produced unstable ordering.
Context
Incremental mod runs produced unstable ordering.
Decision
Invalidation keys and dirty sets for mod pipelines must replay deterministically for identical inputs (Collector scope + syntax snapshot hashes).
Consequences
LSP rescan triggers share the same keys as batch compile.
Verification anchors
compiler/crates/beskid_lsp/compiler/crates/beskid_analysis/src/analysis/rules/staged/.
- Incremental scheduling and determinism - Contracts and edge cases Cache boundaries, invalidation keys, and replay guarantees for mod outputs and Mod SDK reads.
- Incremental scheduling and determinism - Design model Cache boundaries, invalidation keys, and replay guarantees for mod outputs and Mod SDK reads.
- Incremental scheduling and determinism - Examples Cache boundaries, invalidation keys, and replay guarantees for mod outputs and Mod SDK reads.
- Incremental scheduling and determinism - FAQ and troubleshooting Cache boundaries, invalidation keys, and replay guarantees for mod outputs and Mod SDK reads.
- Incremental scheduling and determinism - Flow and algorithm Cache boundaries, invalidation keys, and replay guarantees for mod outputs and Mod SDK reads.
- Incremental scheduling and determinism - Verification and traceability Cache boundaries, invalidation keys, and replay guarantees for mod outputs and Mod SDK reads.
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
This article documents flow and algorithms for Incremental scheduling and determinism.
Primary flow (incremental-specific)
Section titled “Primary flow (incremental-specific)”- Ingest signals — Collect file watcher events, manifest edits, lockfile changes, and explicit CLI/LSP invalidation hooks (
invalidate_compilation_cachepatterns incompiler/crates/beskid_lsp). - Classify scope — Determine whether each dirty signal is narrow (single compilation unit / isolating capture) or wide (workspace member or aggregating capture). Wide signals must bump
syntax_generation_idfor all units in the attach target. - Recompute keys — For each scheduled mod contract, rebuild
capture_fingerprint,manifest_generation_id, andcapability_set_idper design model. Drop any cache entry whose tuple diverges. - Schedule rounds — Enqueue mod contracts in deterministic discovery order (stable module walk, stable tie-break on equal keys). Respect
maxGeneratorRoundsfrom Project manifest contract. - Run host bridge — For each item, if cache hit for process-only work, reuse validated artifacts; otherwise run capture → process under capability policy.
- Commit emit — Apply typed contributions atomically, bump
syntax_generation_id, re-parse affected roots, and emitsyntax.generationfor telemetry. - Replay verification — On identical inputs and ids, hosts must reproduce the same ordered diagnostics and the same merge outcome (see contracts article for determinism tests).
Ordering constraints
Section titled “Ordering constraints”- Incremental caches must not survive cross-compiler-version bumps without clearing: include compiler semver or commit identity in
manifest_generation_idor a sibling host key. - Soft invalidation (skip graph rebuild) is permitted only when design-model soft rules hold; otherwise fall back to full
CompilationContextrebuild. - Semantic queries declared against
query_semantic_snapshotmust declare minimum snapshot version; the host must defer with an explicit diagnostic when the staged pipeline has not reached that version yet.