24 lines
1.6 KiB
Markdown
24 lines
1.6 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to `nx9-auth` will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [0.3.0] - 2026-07-22
|
|
|
|
### Added
|
|
- **Unified Modular Runtime Lifecycle**: Fully implemented runtime subsystem (`Application`, `ApplicationBuilder`, `AtomicRuntimeState`, `SignalManager`, `ShutdownCoordinator`, `WorkerManager`, `HookRegistry`, `RuntimeMetrics`).
|
|
- **Axum HTTP Server Graceful Shutdown**: Integrated HTTP listener lifecycle with Tokio signal handling (`SIGINT` and `SIGTERM`).
|
|
- **Prioritized Shutdown Hooks**: Extensible shutdown hook execution (`First`, `Normal`, `Last`) with isolated failure handling.
|
|
- **Lock-Free State Machine**: Deterministic, lock-free lifecycle state transitions (`Initializing` -> `Starting` -> `Running` -> `Draining` -> `StoppingWorkers` -> `ExecutingHooks` -> `ClosingResources` -> `Stopped`).
|
|
- **Comprehensive Integration Tests**: Runtime lifecycle test suite verifying dependency assembly, hook order execution, and worker management.
|
|
|
|
### Changed
|
|
- Refactored `run_server` entrypoint in `main.rs` to construct and await the `Application` runtime lifecycle cleanly.
|
|
- Updated database connection pool closing to execute during the `ClosingResources` lifecycle phase.
|
|
|
|
### Fixed
|
|
- Fixed runtime completeness regression where `Application::start()` returned immediately instead of serving HTTP requests.
|
|
- Resolved database provider initialization lifecycle synchronization between CLI subcommands and server mode.
|