2.2 KiB
2.2 KiB
1. Lifecycle and Registry Boundaries
- 1.1 Add the canonical minimal
NenjimProcess, migrate every modern startable implementation and lookup, and removeNenjimApplicationwithout an alias. - 1.2 Reduce the public Registry manager contract and reference implementation to passive registration only.
- 1.3 Add the implementation-only Registry assembly that preserves service/process identity and keeps administration package-private.
- 1.4 Strengthen changed API and internal-admin JavaDoc, including the warning against publicly exposing the Registry mutation interface.
2. Hub Composition and Runtime Ownership
- 2.1 Add the public
NenjimHubcontract with single-start delegation and an immutable ordered started-process snapshot. - 2.2 Move the complete hardcoded component graph and all registration into
NenjimHubImplwithout changing component bindings. - 2.3 Start and record the Registry first, then preserve the exact enabled process order, inactive set, fail-fast behavior, online point, and blocking wait.
- 2.4 Update
Mainto construct and start exactly oneNenjimHubwhile keeping the configured entry point unchanged.
3. Documentation
- 3.1 Update
docs/Nenjim.mdanddocs/Terminologi.mdto distinguish component, service, application role, process lifecycle, Hub ownership, and passive Registry administration. - 3.2 Update directly affected public HTML and operational documentation without changing deferred-feature or business behavior.
- 3.3 Add ownership deltas for AssetAZ Currency Identity and Ticker so their composition requirements name
NenjimHubrather than the Registry manager.
4. Verification
- 4.1 Strictly validate the active OpenSpec change and all repository specs without synchronizing or archiving the change.
- 4.2 Run the existing Gradle build and Detag/Java compilation without invoking production
main(). - 4.3 Run safe temporary probes for Registry assembly identity/admin boundaries and pre-start immutable Hub snapshots, then remove all probe artifacts.
- 4.4 Inspect the complete redacted diff, working tree, package references, generated-source status, acceptance criteria, and out-of-scope boundaries without committing or pushing.