Tracker
Roadmap search
Versions, deliverables, workstreams, tasks, and pages
Program assembly - Contracts and edge cases
articleStandard
src/content/docs/platform-spec/compiler/build-pipeline/program-assembly/contracts-and-edge-cases.mdx
import SpecArticleChrome from '@beskid/beskid-ui/platform-spec/SpecArticleChrome.astro';
<SpecArticleChrome />- Materialized-first — When
PreparedProjectWorkspaceexists, assembly roots must usematerialized_source_rootand dependencymaterialized_source_rootentries, not pre-copy project trees. - Lockfile fallback (LSP) — When materialization did not run,
Project.lockmaterialized_rootpaths may be used when directories exist. max_units— Workspace scan must stop at the cap and report deterministically sorted paths.- No diagnostic filtering — Cross-module symbols must be visible to resolution; hosts must not drop E1105/E1201/E1301 solely because a path exists on disk.
usealias resolution — Import aliases must expand to prefetched module paths before value/type lookup; binding auseitem as a callable namespace is forbidden (contract-as-namespace remains the only in-scope dotted-path fallback).- Mod rounds — After generator output changes imports, the host may re-run assembly within
maxGeneratorRounds.