78: Make JournalService a Hub-managed Nenjim process and integrate it into startup
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
## Why
|
||||
|
||||
Issue #75 left the Journal subsystem on a manager-owned lifecycle, while issue
|
||||
#77 established `NenjimHub` as the runtime owner and `NenjimProcess` as the
|
||||
canonical active lifecycle. Journal must use that common model before later
|
||||
runtime work can depend on it consistently.
|
||||
|
||||
## What Changes
|
||||
|
||||
- Make `JournalService` a registrable Nenjim component while keeping its query
|
||||
API read-only and filesystem-independent.
|
||||
- Make the reference Journal service object the single-use active
|
||||
`NenjimProcess`, with atomic publication after a complete successful initial
|
||||
filesystem load.
|
||||
- Reduce `JournalServiceManager` to the passive `journalRoot()` and `refresh()`
|
||||
administrative capability, bound through a non-public admin view.
|
||||
- Add an implementation-only Journal assembly that provides identical service
|
||||
and process views plus a distinct manager.
|
||||
- Have `NenjimHubImpl` register and start `nenjim.journal.service` immediately
|
||||
after the Registry and before every business process.
|
||||
- Preserve Journal format, parsing, chain, query, refresh and filesystem
|
||||
semantics while updating directly affected documentation.
|
||||
|
||||
## Capabilities
|
||||
|
||||
### Modified Capabilities
|
||||
|
||||
- `nenjim-journal-management`: move lifecycle and initial loading from the
|
||||
manager to the service process, add startup query gating and the safe
|
||||
construction boundary, and preserve explicit refresh.
|
||||
- `nenjim-component-registry`: extend Hub-owned composition, startup order,
|
||||
started-process history and fail-fast behavior with the Journal process.
|
||||
|
||||
## Impact
|
||||
|
||||
Affected code is limited to the Journal public contracts and reference
|
||||
implementation, the Hub composition root, directly affected architecture
|
||||
documentation, and this active OpenSpec change. No Journal data format,
|
||||
business-service behavior, configurable autorun, stop lifecycle, Context,
|
||||
resolver, classloader, watcher or general test suite is added.
|
||||
Reference in New Issue
Block a user