Table of Contents

Release Notes

Welcome to the release notes and changelog hub for the LuciferCore ecosystem.

The Lucifer project is divided into two primary layers:

  1. LuciferCore: The zero-allocation, high-performance microkernel providing memory primitives, custom data structures, object pooling, and low-level network transports.

  2. 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 .lucifercore tracking to FileCache for 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.ResolveDirectory modernizes path qualification using Path.IsPathFullyQualified, eliminating Windows drive-root pitfalls for paths with leading slashes (e.g., "/resources/webadmin"). Automatically anchors relative paths to BaseDirectory across dev and production environments.

  • Unified Physical Key Indexing: Standardizes directory tracking (_pathsByKey, _entriesByPath) on normalized physical disk paths, guaranteeing 100% consistency with FileSystemWatcher dynamic updates.

  • Server-Level Delegation: Removed preemptive Directory.Exists guards from HttpServer.AddStaticContent and HttpsServer.AddStaticContent, empowering FileCache as the single source of truth for static asset discovery.

LuciferCore.Platforms v2.9.0

  • Adaptive Idle CPU Backoff: SimulationManager monitors idle wheel ticks; after a full idle wheel rotation (512 ticks) with pending future events, it enters a lightweight 1ms sleep via WaitForWork(1), dropping idle CPU consumption from 100% to 0%.

  • Zero-Latency Scheduling Wakeup: Scheduling immediate events (tick <= 1) proactively triggers NotifyWork() to wake up the worker thread instantly (0ms delay).

  • Safe Uninitialized Event Guard: TimeEvent.Precondition() enforces TargetTimestamp > 0 && Time.time >= TargetTimestamp to prevent uninitialized pooled events from premature execution.

  • Extensible Worker Wait Hook: ManagerBase exposes protected bool WaitForWork(int millisecondsTimeout), enabling custom idle throttling in derived managers.

LuciferCore v6.15.0

  • Streamlined FileCache.WriteFile: Cleaned up signature to WriteFile(key, content), eliminating redundant syncToDisk flags 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 via LoadLazyEntry.

  • Deterministic Single Root (BaseDirectory): Automatically anchors to the project root in development only when running inside bin and ../../.. has .csproj; otherwise strictly sandboxed to the runtime directory.

LuciferCore.Platforms v2.8.0

  • Clean Facade Architecture: Removed all SetTimeout and SetInterval forwarding wrappers from Lucifer.cs.

  • Centralized Simulation Timers: Unified SetTimeout and SetInterval exclusively into Time.cs with 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, direct TimeoutMs/IntervalMs property binding, and lifecycle control via IsRunning.

  • 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.SetInterval helpers 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 active ServerTransport instances and owning all server console commands (/start server, /stop server, /restart server, /start servers, ss, xs, rs).

  • Direct TimeEvent<T> Rescheduling: Automatic deferred cycles via ManagerBase<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): Lightweight Index tracking on Event to determine target manager/partition routing without allocation or boxing; auto-reset to 0 on Cleanup().

  • Self-Registering Server Transports: ServerTransport.Servers registry 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+ |