LuciferCore.Platforms v2.x Release Notes
Changelog and upgrade guide for the LuciferCore.Platforms application runtime across all v2.x versions.
v2.13.0
Release Date: October 2026 | Target: .NET 9.0 | Status: Latest
Version 2.13.0 introduces selective dynamic configuration hot-reloading via ConfigAttribute.Sync and integrates LuciferConfig directly with FileCache for realtime .lucifercore file tracking.
Key Features & Architectural Changes
Selective Dynamic Config Sync (
ConfigAttribute.Sync):Added
public bool Sync { get; init; } = false;to[ConfigAttribute].100% Backward Compatible: Default is
false(loaded once at startup), preventing unexpected runtime mutations on critical infrastructure properties.When
Sync = true, configuration properties automatically receive live updates whenever the.lucifercorefile changes at runtime.
FileCache-Driven Configuration Tracking:
Replaced manual file existence checks and ad-hoc relative paths with
FileCache.InsertPath(".", filter: ".lucifercore", handler: ...).Relies entirely on
FileCache.BaseDirectoryfor single-root resolution across dev (bin/../../..), testing, and production environments.Standardized exclusively on reading
.lucifercoreat project root, removing deprecatedassets/config/.lucifercorescanning.Leverages
FileCache.InsertHandlerto intercept file change events, parse updated key-value pairs intoEnvironment, and selectively update only properties marked withSync = true.
v2.12.0
Release Date: October 2026 | Target: .NET 9.0
Version 2.12.0 synchronizes the application runtime and dependency references with LuciferCore v6.19.0.
v2.11.0
Release Date: October 2026 | Target: .NET 9.0
Version 2.11.0 synchronizes the runtime engine and dependency references with LuciferCore v6.18.0.
v2.10.0
Release Date: October 2026 | Target: .NET 9.0
Version 2.10.0 updates runtime orchestration with intelligent FileCache path resolution.
v2.9.0
Release Date: October 2026 | Target: .NET 9.0
Version 2.9.0 delivers adaptive CPU idle backoff in SimulationManager, eliminating 100% CPU thread starvation during timer deferrals while maintaining immediate zero-latency execution.
Key Features & Architectural Changes
Adaptive Idle CPU Backoff in
SimulationManager:SimulationManager.Update()monitors consecutive idle ticks (_idleTicksStreak) returned by_wheel.Tick().When
workload > 0but a complete rotation of the wheel (WheelSize = 512ticks) executes without any event reaching its monotonic real-time deadline (all pending events are awaiting future real-time timestamps), the thread yields viaWaitForWork(1).Reduces idle CPU utilization from 100% to 0% during waiting intervals while running completely unthrottled with 0 delay whenever events are actively due.
Zero-Latency Scheduling Wakeup:
SimulationManager.Schedule<T>(tick)proactively triggersNotifyWork()whentick <= 1.If the worker thread is currently sleeping in
WaitForWork(1), it is signaled and wakes up immediately (0ms latency).
Safe Precondition Guard on Pooled Time Events:
Hardened
TimeEvent.Precondition()to checkTargetTimestamp > 0 && Time.time >= TargetTimestamp.Guarantees that freshly popped events from
EventPool<T>(whereTargetTimestamp == 0) are never prematurely executed or retired before caller property initialization.
Extensible Worker Wait Hook in
ManagerBase:Added
protected bool WaitForWork(int millisecondsTimeout)toManagerBase.Exposes safe timeout-based synchronization against
_wakeEventfor derived manager threads without breaking encapsulation.
v2.8.0
Release Date: October 2026 | Target: .NET 9.0
Version 2.8.0 centralizes simulation timers exclusively into Time.cs and removes forwarding wrappers from the primary facade, establishing a cleaner and more focused microkernel architecture.
Key Features & Architectural Changes
Zero-Facade Timer Dispatching:
Removed
SetTimeoutandSetIntervalforwarding methods fromLucifer.cs.Kept
Lucifer.csfocused purely on low-level core simulation management (Schedule<T>,Reschedule<T>,RescheduleNextCycle<T>).
Centralized Timer API in
Time.cs:Time.SetTimeoutandTime.SetIntervaldirectly instantiate and configureTimeoutEventandTimeIntervalEventinstances without intermediate layers.Fully unified with multi-instance generic manager partitioning (
ManagerBase<SimulationManager>.Resolve(key)).
v2.7.0
Release Date: October 2026 | Target: .NET 9.0
Version 2.7.0 delivers a clean, minimalist time and simulation event architecture, providing dedicated one-shot (TimeoutEvent) and recurring (TimeIntervalEvent) models fully integrated with the hierarchical timing wheel and Event<T>.OnExecute.
Key Features & Architectural Changes
Clear Time Architecture (
TimeEvent<T>,TimeoutEvent<T>,TimeIntervalEvent<T>):Established
TimeEvent<T>as the pure abstract base class solely responsible for monotonic real-time thresholds (TargetTimestamp = Time.time + delayMs) and wheel cycle deferrals (Precondition() => Time.time >= TargetTimestamp).Added
TimeoutEvent<T>(and non-genericTimeoutEvent) for one-shot delayed simulation executions with directTimeoutMsproperty assignment and automatic recycling.Added
TimeIntervalEvent<T>(and non-genericTimeIntervalEvent) for recurring simulation loops with in-place rescheduling, directIntervalMsproperty assignment, and loop lifecycle controlled viaIsRunning.Fully unified with
Event<T>.OnExecutewithout intermediate wrapper actions, delegate fields, or helper classes.Exposed high-level helpers
Time.SetTimeoutandTime.SetIntervalreturningTimeoutEventandTimeIntervalEvent.Exception isolation within
TimeIntervalEvent.ExecuteEventensuring unhandled exceptions in business logic never cause recurring loops to die silently.
v2.6.0
Release Date: October 2026 | Target: .NET 9.0
Version 2.6.0 introduces a major architectural decoupling of the application runtime, establishing a zero-facade design with self-contained manager/server lifecycles, multi-instance generic partitioning, and dedicated command handling.
Key Features & Architectural Changes
Decoupled Architecture & Zero-Facade Runtime:
Completely eliminated monolithic manager/server dictionaries (
s_registeredManagers,s_registeredServers) and command forwarding wrappers fromLucifer.cs.Managers and servers now self-manage their lifecycles, registries, and administrative console commands.
Lucifer.csonly retains high-level composite lifecycle commands (/start all,/stop all,/restart all,sa,xa,ra).
Multi-Instance Generic Manager Partitioning (
ManagerBase<T>):Introduced the generic base class
ManagerBase<T> : ManagerBase where T : ManagerBase<T>utilizing the Curiously Recurring Template Pattern (CRTP).Automatically registers instances on instantiation into a lock-free copy-on-write typed array
s_instances.Provides ultra-fast \(O(1)\) modulo-based deterministic routing via
ManagerBase<T>.Resolve(long key = 0).Enables developers to instantiate unlimited isolated manager instances (e.g.
new SimulationManager(256)) mapped to game zones, rooms, or partition keys.
Dedicated
ServerManager:Created
ServerManagerinheriting fromManagerBasewith[Manager("ServerManager", Order = -2)].Exclusively owns and handles all server lifecycle console commands:
Individual:
/start server,start server,start -s,/stop server,stop server,stop -s,/restart server,restart server,restart -s.Batch:
/start servers,start servers,start -as,ss,/stop servers,stop servers,stop -as,xs,/restart servers,restart servers,restart -as,rs.
Manager-Owned Administrative Commands:
ManagerBasenow directly hosts all manager administration commands:Individual:
/start manager,start manager,start -m,/stop manager,stop manager,stop -m,/restart manager,restart manager,restart -m.Batch:
/start managers,start managers,start -am,sm,/stop managers,stop managers,stop -am,xm,/restart managers,restart managers,restart -am,rm.
Direct
TimeEvent<T>Rescheduling:Updated
TimeEvent<T>to defer cycles directly to its owning simulation manager viaManagerBase<SimulationManager>.Resolve(Index).RescheduleNextCycle((T)this).Eliminates cross-instance state pollution, race conditions, and accidental thread transfers when running multiple simulation wheels.
Instance-Specific Worker Thread Identification:
Worker threads spawned by
ManagerBaseare automatically labeled as${GetType().Name}#${InstanceIndex}(e.g.,SimulationManager#0,SimulationManager#1).Simplifies thread profiling, APM metrics, and post-mortem debugging.
v2.5.0
Release Date: October 2026 | Target: .NET 9.0
Version 2.5.0 aligns the platform application runtime with the new on-demand asset pipeline introduced in LuciferCore v6.13.0, enhancing hot-reload workflows during development and optimizing memory usage in production.
Key Features & Enhancements
On-Demand Static Content & Lazy Asset Pipeline:
Server static asset management (
AddStaticContent) now leveragesFileCachelazy loading by default.Web and WebSocket servers (such as
WssServerandHttpsServer) start up instantaneously, deferring disk I/O until files are first accessed by clients.Idle static assets are automatically swept from memory via background sliding expiration.
Cascading Fallback Directory Resolution:
Asset and configuration loaders automatically search parent project source trees (
../../..) in development mode before falling back to the local runtime directory (bin).Enables instant hot reloading of client web pages, templates, and certificates during live development without requiring manual file copying to the build output directory.
Safe Cache Freezing:
- Server constructors calling
Cache.Freeze()now safely operate in lazy mode without corrupting the dynamic file loader.
- Server constructors calling
v2.4.0
Release Date: October 2026 | Target: .NET 9.0
Version 2.4.0 optimizes background worker pools and simulation loops by taking advantage of LuciferCore's zero-allocation spatial and sampling algorithms.
Performance & Worker Pools
ManagerWorkerPoolEnhancements:Streamlined multi-threaded worker pools for parallel manager execution.
Integrated zero-allocation
SubsetSamplerroutines for batch item distribution and player matchmaking pools.
Entity Partitioning in Simulation:
SimulationManagerworkloads can now natively integrate withSpatialGridfor contiguous, zero-allocation 2D spatial queries (AOE radius checks, proximity detection) across game worlds.
Package Synchronization:
- Aligned core package references to LuciferCore v6.12.0.
v2.3.0
Release Date: October 2026 | Target: .NET 9.0
Version 2.3.0 refines high-resolution timer scheduling, cycle rescheduling mechanics, and the CRTP-based event pool.
Enhancements
Next-Cycle Deferral Helpers:
Added
Lucifer.RescheduleNextCycle()andSimulationManager.RescheduleNextCycle()to defer recurring work to the subsequent timing wheel tick cleanly.Avoids infinite loops when an event needs to re-queue itself immediately during execution.
Safe Event Pool Management:
Enhanced
TimeEvent<T>(Curiously Recurring Template Pattern) lifecycle logic.Fixed edge cases where rescheduled events could be prematurely recycled back into
ObjectPool<T>while still referenced in the scheduler.
High-Resolution Timer Integration:
- Extended
Time.cswith convenient utility methods for deadlines, timeouts, intervals, and monotonic delta calculations.
- Extended
v2.2.0
Release Date: September 2026 | Target: .NET 9.0
Version 2.2.0 introduces interactive diagnostic capabilities, command-line management, and asynchronous logging subsystems.
Interactive Management & Logging
Interactive CLI (
LuciferCMD):Built-in console loop supporting runtime operations:
/start servers,/stop managers,/help, and custom user commands.Commands are discovered declaratively via the
[ConsoleCommand]attribute.Integrated
Fuzzystring matching to suggest closest valid commands upon typing mistakes.
Asynchronous High-Throughput
LogManager:Implemented non-blocking background logging with
ConsoleLoggerand rollingFileLogger.Log lines format directly into raw UTF-8 spans, eliminating string allocations on high-frequency log paths.
v2.1.0
Release Date: September 2026 | Target: .NET 9.0
Version 2.1.0 delivers robust discrete simulation orchestration and integrates LuciferCore's hierarchical timing structures.
Simulation Engine & Timers
SimulationManagerLifecycle:Introduced discrete event loop manager managing simulation ticks, fixed-timestep delta updates, and frame pacing.
Seamlessly drives the hierarchical
TimingWheeland priorityHeapQueuefor millions of active game timers.
Declarative Manager Lifecycle:
- Standardized start, tick, and shutdown sequences across all services extending
ManagerBaseand decorated with[Manager].
- Standardized start, tick, and shutdown sequences across all services extending
v2.0.0
Release Date: September 2026 | Target: .NET 9.0
Major Architecture Milestone
Version 2.0.0 is a milestone release that decouples application-level abstractions and runtime orchestration from the microkernel, establishing LuciferCore.Platforms as the dedicated runtime layer for modulith and microservice architectures.
Key Features
Compile-Time Route Source Generation:
Implemented Roslyn Source Generator (
HandlerGenerator,MasterCodeGenerator) targeting .NET 9.0.Eliminates reflection from the request-dispatch hot path by compiling route tables at build time for classes tagged with
[Route]and[Handler].Anchored using
[StoreRoute]partial classes for zero-overhead method dispatching.
Monotonic Millisecond Time System:
Completely overhauled
Timeutility from floating-point seconds (double) to monotonic 64-bit millisecond integers (long).Centralized
Time.time,Time.Now,Time.Date, and scheduling helpers (SetTimeout,SetInterval).Removed obsolete legacy timing wrappers from the
Luciferfacade.
Reusable
TimeEvent<T>(CRTP Pattern):- Introduced
TimeEvent<T>base class for pooled, allocation-free timer events with built-in auto-rescheduling support.
- Introduced
Production-Ready Middleware Suite:
FirewallMiddleware: High-throughput IP blacklisting, connection throttling, and CIDR subnet filtering.RateLimitMiddleware: Sliding-window rate limiter tracking client requests using monotonic timestamps.SessionMiddleware: Lock-free session tracking with sliding expiration and automated cleanup.
Attribute-Driven Declarative Architecture:
Pure convention-based configuration without mandatory base classes:
[Server]: Declares network server endpoints and transport binding.[Handler]: Marks classes containing dispatchable action methods.[Manager]: Registers long-running background tasks and simulation workers.[Service]&[Singleton]: Declarative dependency injection registration.[Config]: Binds environment variables and configuration files to static properties.[Bootstrap]: Designates startup initialization hooks.