Design records
Sailfin Enhancement Proposals
SFEPs capture the durable language, runtime, toolchain, and process decisions behind Sailfin.
SFEP Purpose and Process
Capsule Distribution and the Registry Protocol
The Toolchain Surface and Its Output Contracts
sfn check — Fast Analysis Without Codegen
Colon Type Annotations
Unified Build Architecture
sfn fmt — Canonical Formatter
Effect Validation as Build Gate
CLI Modularization
Tracks #351
Sailfin-Native Test Infrastructure
Tracks #965, #839, #842, #840 (historical intake); SFN-17
Content-Addressed Test Artifacts and Deterministic Suite Partitioning
Tracks #1012, #1230, #1233, #843 (historical intake); SFN-431, SFN-545, SFN-547
Result<T, E> and the ? Operator
Tracks #321, #323
Host-Aware exe_path Intrinsic
Agent-Legible Build/Test Output
Tracks SFN-725, SFN-726
The Capability-Sealed Runtime — Claim Ladder and Link-Time Admission
Hierarchical Sub-Effects as Subsumption
Tracks #1180, #1182
Borrow / Ownership Checking for the Native Runtime
Tracks #1207, #1209
sfn/http — Typed HTTP Surface
Tracks #1321
Role-Oriented Compiler Capsules
Tracks #345 (historical epic); Linear project Role-Oriented Compiler Capsules. §3.7 steps 1-2 (landed): SFN-705, SFN-706, SFN-707, SFN-708, SFN-709, SFN-710, SFN-711, SFN-712, SFN-713, SFN-714, SFN-715, SFN-717, SFN-718, SFN-734. §3.7 steps 3-8 (groomed 2026-08-06): SFN-735 through SFN-751. §3.3.1 remediation: SFN-894.
Native Windows Self-Host (MSVC ABI)
Tracks SFN-53, SFN-54, SFN-55, SFN-56, SFN-57, SFN-58
Darwin (macOS arm64) Memory Governor
Tracks SFN-626
Capsule-Defined Decorators
Tracks #1557
Model Engines, Adapters, Tensors, Training
Native Runtime Architecture
Tracks #321, #322, #451, #822, #1089, #1118, #1181, #1203, #1209, SFN-558
Delivery Process — Drift-Tolerant Issues, Seed Discovery, Release Cadence
CLI Modularization — Per-Worker RSS Relief First, Then Migration
Tracks #1671
Typed / Generic-Element Array Higher-Order Functions (map / filter / reduce)
Tracks #1943, #1945
Lambda expression syntax for 1.0 — keep, reform, or defer
Tracks #690, #1683 (historical intake)
First-Class Function Values
Tracks #1609, #1610, #1172
Inline `export <declaration>` syntax
Tracks #1681, #1680
Infer untyped lambda parameter and return types from the expected call-site function type
Tracks #1683 (historical intake)
Length-aware ({i8*, i64}) ABI for query-side string runtime helpers
Tracks #1704 (historical intake)
Structured, Enforced `x is T` Type-Guard Operator
Tracks #1753
Deriving prelude-mirror registry signatures from the prelude (kill latent ABI drift)
Tracks #572, #1779, #1780
TLS termination + upstream TLS for the native runtime (OpenSSL)
Tracks #1540, #1820, #1821, #1822
Peer-Language Process Adoption — Merge Queue, ICE Discipline, Perf History, Corpus Runs, Reduction, Fuzzing
Tracks #1806, #1807, #1808, #1809 (Tier 1, §3.13)
Generic Type Parameter Constraints and Monomorphization
Tracks #1867, #1868, #1869, #1870, #1871, #1872
Nominal Object Model — Honest Rejection of TypeScript-Shaped Data Syntax
Tracks #1860, #1887, #1888, #1838, #1855, #1900, #1904, #1905
Global Artifact Cache Store and Garbage Collection
Tracks #1892, #1893
Unified expected-type + typing-environment context for the typecheck walk
Tracks #1900, #1904, #1905
Nested / Local Function Declarations (non-capturing static `fn` items)
Tracks #1609, #1922, #1935, #1940, #1950, SFN-108
Phase-scoped arena reclamation to reduce per-module peak RSS
Tracks #1989
Invocation-scoped runtime identity + in-process sha256 for the test runner
Tracks #1995, #1996, #1997, #1998, #1999, #2008, #2010
Shared-frontend test runner — parent compiles, children only execute
Tracks SFN-152, #2010, #1997
Native Toolchain Version Pinning + Dispatch
Tracks SFN-167, SFN-168, SFN-169, SFN-170, SFN-171, SFN-172
Compiler Bootstrap Manifest
Tracks SFN-197
Native crypto + TLS stack — removing the OpenSSL dependency
Tracks https://linear.app/sailfin/project/native-crypto-tls-stack-zero-openssl-5ce55ca8f46e
Effect-transparency for concurrency-primitive leaves (spawn / parallel / channel send·receive)
Tracks SFN-86, #1702
Streamed per-test results over a captured pipe (retiring the results.log/fail.bin side-channel)
Tracks SFN-393
Workspace Manifest — Multi-Capsule Policy and the Capability Envelope
Tracks SFN-413 (Phase 1 member declaration — multi-line arrays + glob, Done), SFN-412 (workspace.toml reflow after seed pin), SFN-414 (Phase 2 root [toolchain] default), SFN-415 (Phase 3 [workspace.package]/[workspace.dependencies] inheritance), SFN-416 (Phase 4a declared-surface capability audit), SFN-418 (Phase 4b inferred-surface audit), SFN-419 (Phase 4c sfn capabilities audit + enforce/warn gate), SFN-417 (Phase 5 default-members + exclude). Epic: Linear project 'Workspace Manifest & Multi-Capsule Policy'
Accelerated ML — Substrate Interop and Capability-Typed Accelerator Programming
Shape-Typed Tensor IR and Fusion
Tracks #2485, SFN-424, SFN-427, SFN-429
Low-Precision Numeric Substrate
Tracks #2484, SFN-423, SFN-426
Typed task handles (Task<T>) and ordered multi-await (join_all)
Tracks SFN-440, SFN-441, SFN-446
aarch64-Linux Target Support (Raspberry Pi Install + On-Device Self-Host)
Tracks SFN-471,SFN-472,SFN-473,SFN-474,SFN-475,SFN-476,SFN-579,SFN-580,SFN-581,SFN-644,SFN-798,SFN-799,SFN-826
String Interpolation with ${ } (migrating off {{ }})
Tracks SFN-482 (Phases 1–3), SFN-483 (Phase 4), SFN-576 (literal escape)
Sized Integer Types and Overflow Semantics
Tracks SFN-501, SFN-502, SFN-503, SFN-570, SFN-573
Typed SSA Activation — Making the Metadata IR Load-Bearing
Tracks SFN-508, SFN-509, SFN-511, SFN-512, SFN-514, SFN-517, SFN-519; structured types: SFN-585, SFN-588–SFN-606
The Owned Syscall Layer (Axis 3, tier-1 Linux x86-64)
Tracks SFN-510, SFN-513, SFN-515, SFN-516, SFN-518, SFN-520, SFN-521, SFN-522, SFN-523, SFN-524, SFN-525
Diagnostic Unification — One Coded, Spanned, Severity-Bearing Diagnostic
Tracks SFN-534, SFN-535, SFN-536, SFN-537, SFN-538, SFN-539, SFN-540, SFN-541, SFN-608, SFN-915, SFN-916
Numerical and Behavioural Contracts (the Result Pillar)
sfn/sync — scope and blocking predecessor for a synchronization capsule
Generic resource-reclamation seam
sfn/sync — public API surface and semantics
Codegen Provider Ownership — Which Toolchain Roles Sailfin Owns
Tracks https://linear.app/sailfin/project/cross-platform-clang-independence-baeafe4f0a9a
Platform Access Ownership — the `-nostdlib` Program
Native Cross-Target Builds (`sfn build --target=<triple>`)
Tracks SFN-774, SFN-775, SFN-776, SFN-777, SFN-1039, SFN-1117
Non-Elidable Zeroization for Uniquely Owned Secret Buffers
Tracks SFN-703, SFN-782, SFN-783, SFN-784, SFN-785, SFN-786, SFN-787, SFN-788, SFN-789, SFN-790, SFN-791
Import-Reachability Filtering of the Capsule Source Closure
Tracks SFN-804, SFN-830, SFN-831, SFN-832, SFN-833, SFN-834, SFN-894
In-Process .tar.gz Reader and Writer (sfn/archive)
Tracks SFN-753
Domain-Oriented Repository Topology
Tracks https://linear.app/sailfin/project/repository-topology-and-capsule-layout-fd4f474aaaae
Installed Toolchain Lifecycle, Exact Selection, and Update Policy
Tracks https://linear.app/sailfin/project/installed-toolchain-lifecycle-e6024b4498bb
Repo Tooling Ownership — Retiring `scripts/` into Native Verbs
Tracks https://linear.app/sailfin/project/repo-tooling-ownership-13d4826f99a9
Concurrency runtime maturity — cancel-on-fault and async I/O
Tracks #1540, #1963
Derivable Interface Implementations (@derive)
Compile-Time Match Exhaustiveness Checking
Generic Collections — Map, Set, and Tuple
Tracks #1941
Import-surface compaction across the phase rewind to cut emit peak RSS
Tracks SFN-382; supersedes SFN-94
Signature-Checked Interface Conformance
Shared runtime/dep object cache for nested builds in the e2e suite
Nullable Access Operators (?. and ??)
Cross-invocation runtime-object persistence for the `sfn test` link path
Tracks SFN-1086