Release Notes
Welcome to the release notes and changelog hub for the LuciferCore ecosystem.
The Lucifer project is divided into two primary layers:
LuciferCore: The zero-allocation, high-performance microkernel providing memory primitives, custom data structures, object pooling, and low-level network transports.
LuciferCore.Platforms: The attribute-driven application runtime providing Roslyn source generators, life-cycle managers, built-in middlewares, and command-line orchestration.
Version Documentation
| Package | Latest Version | Target Runtime | Release Notes |
| :--- | :--- | :--- | :--- |
| LuciferCore | v6.20.0 | .NET 9.0 | View v6.x Changelog |
| LuciferCore.Platforms | v2.13.0 | .NET 9.0 | View v2.x Changelog |
Latest Highlights
LuciferCore.Platforms v2.13.0
- Selective Dynamic Config Sync: Added
[Config(..., Sync = true)]and delegated.lucifercoretracking toFileCachefor realtime, zero-polling property hot-reloading at runtime.
LuciferCore v6.20.0
- FileCache Search Filtering: Passed search pattern filters into
InsertPathInternal, ensuring disk scans only index files matching requested patterns.
LuciferCore v6.19.0
- Literal Filename Preservation in FileCache: Removed HttpUtility.UrlDecode during directory indexing, preserving literal + characters (e.g. c++.cpp) and ensuring complete parity between startup scanning and runtime FileSystemWatcher events.
LuciferCore v6.18.0
- Cache Key & Directory Introspection: Added Keys, GetAllKeys(), GetAllMonitoredPaths(), and GetMonitoredDirectories() to FileCache, empowering diagnostics, admin dashboards, and test suites with zero-friction inspection of active static assets.
LuciferCore v6.17.0
Intelligent Path Resolution & Zero-Concatenation Asset Serving:
FileCache.ResolveDirectorymodernizes path qualification usingPath.IsPathFullyQualified, eliminating Windows drive-root pitfalls for paths with leading slashes (e.g.,"/resources/webadmin"). Automatically anchors relative paths toBaseDirectoryacross dev and production environments.Unified Physical Key Indexing: Standardizes directory tracking (
_pathsByKey,_entriesByPath) on normalized physical disk paths, guaranteeing 100% consistency withFileSystemWatcherdynamic updates.Server-Level Delegation: Removed preemptive
Directory.Existsguards fromHttpServer.AddStaticContentandHttpsServer.AddStaticContent, empoweringFileCacheas the single source of truth for static asset discovery.
LuciferCore.Platforms v2.9.0
Adaptive Idle CPU Backoff:
SimulationManagermonitors idle wheel ticks; after a full idle wheel rotation (512 ticks) with pending future events, it enters a lightweight 1ms sleep viaWaitForWork(1), dropping idle CPU consumption from 100% to 0%.Zero-Latency Scheduling Wakeup: Scheduling immediate events (
tick <= 1) proactively triggersNotifyWork()to wake up the worker thread instantly (0ms delay).Safe Uninitialized Event Guard:
TimeEvent.Precondition()enforcesTargetTimestamp > 0 && Time.time >= TargetTimestampto prevent uninitialized pooled events from premature execution.Extensible Worker Wait Hook:
ManagerBaseexposesprotected bool WaitForWork(int millisecondsTimeout), enabling custom idle throttling in derived managers.
LuciferCore v6.15.0
Streamlined
FileCache.WriteFile: Cleaned up signature toWriteFile(key, content), eliminating redundantsyncToDiskflags and ad-hoc manual cache updates.Event-Driven & Lazy-Pull Synchronization: Background synchronization is fully delegated to
FileSystemWatcher, while expired/evicted entries pull fresh disk bytes on-demand viaLoadLazyEntry.Deterministic Single Root (
BaseDirectory): Automatically anchors to the project root in development only when running insidebinand../../..has.csproj; otherwise strictly sandboxed to the runtime directory.
LuciferCore.Platforms v2.8.0
Clean Facade Architecture: Removed all
SetTimeoutandSetIntervalforwarding wrappers fromLucifer.cs.Centralized Simulation Timers: Unified
SetTimeoutandSetIntervalexclusively intoTime.cswith direct partition routing and exception isolation.
LuciferCore.Platforms v2.7.0
Dedicated Simulation Timers (
TimeoutEvent,TimeIntervalEvent): High-performance one-shot and recurring event models with zero allocation, in-place wheel rescheduling, directTimeoutMs/IntervalMsproperty binding, and lifecycle control viaIsRunning.Clean Abstract Time Base (
TimeEvent<T>): Pure base class solely managing real-time timestamp comparison and cycle deferrals.High-Performance Simulation Timers: Seamless
Time.SetTimeout/Time.SetIntervalhelpers with partition routing and exception isolation.
LuciferCore.Platforms v2.6.0
Decoupled Architecture & Zero-Facade Runtime: Removed all intermediate forwarding wrappers and central manager/server dictionaries from
Lucifer.cs. Managers and servers self-manage lifecycle and CLI commands.Multi-Instance Generic Manager Partitioning (
ManagerBase<T>): CRTP-based generic base manager supporting lock-free copy-on-write arrays and \(O(1)\) key-based deterministic routing (ManagerBase<T>.Resolve(key)).Dedicated
ServerManager: New life-cycle manager controlling all activeServerTransportinstances and owning all server console commands (/start server,/stop server,/restart server,/start servers,ss,xs,rs).Direct
TimeEvent<T>Rescheduling: Automatic deferred cycles viaManagerBase<SimulationManager>.Resolve(Index).RescheduleNextCycle((T)this)on the owning manager, eliminating cross-instance race conditions.
LuciferCore v6.14.0
Instance-Bound Event Routing (
Event.Index): LightweightIndextracking onEventto determine target manager/partition routing without allocation or boxing; auto-reset to 0 onCleanup().Self-Registering Server Transports:
ServerTransport.Serversregistry dynamically registers active servers by port during construction and cleans them up upon disposal.
Compatibility Matrix
| LuciferCore Version | LuciferCore.Platforms Version | Supported .NET SDK |
| :--- | :--- | :--- |
| v6.16.0 | v2.9.0 | .NET 9.0+ |
| v6.15.0 | v2.8.0 | .NET 9.0+ |
| v6.14.0 | v2.7.0 | .NET 9.0+ |
| v6.14.0 | v2.6.0 | .NET 9.0+ |
| v6.13.0 | v2.5.0 | .NET 9.0+ |
| v6.12.0 | v2.4.0 | .NET 9.0+ |
| v6.11.0 | v2.3.0 | .NET 9.0+ |
| v6.10.0 | v2.2.0 - v2.0.0 | .NET 9.0+ |
| v6.0.0 - v6.9.0 | v1.0.0 - v1.9.0 | .NET 9.0+ |