chore(runtime): consolidate the M0 epic follow-up nits#278
Merged
Conversation
This was referenced Jul 8, 2026
Closed
a0d1cb0 to
5af5158
Compare
deb55d9 to
7df51b1
Compare
7df51b1 to
48d4d93
Compare
48d4d93 to
f904fdd
Compare
f904fdd to
a5dff05
Compare
a5dff05 to
ec3f266
Compare
ec3f266 to
f4d7a23
Compare
f4d7a23 to
bb88b17
Compare
bb88b17 to
b388962
Compare
b388962 to
146d6cb
Compare
146d6cb to
5177c22
Compare
5177c22 to
25bccb5
Compare
f25ce1b to
5186aff
Compare
5186aff to
cc3d720
Compare
cc3d720 to
0088a67
Compare
0088a67 to
aadc89c
Compare
348a66e to
a22852e
Compare
a22852e to
d635bbe
Compare
bfde480 to
de6fc52
Compare
d635bbe to
35a3c85
Compare
35a3c85 to
c13c909
Compare
Return a BuildError naming the failing component slot (chain, store, or extension) from ComponentsBuilder::build, instead of an opaque anyhow::Result. The leaf ComponentBuilder::build stays anyhow because the backends fail for heterogeneous reasons (I/O for the store, network for the chain). Callers that propagate into anyhow keep working through the std::error::Error conversion.
Pass the executor explicitly with .with_executor(&TokioExecutor) in the CLI builder chain, rather than relying on the builder's implicit tokio default. This names the launch root as the point where an embedder or a non-tokio target substitutes its own executor. Behaviour-preserving: the binary still spawns on tokio.
The RuntimeAddOns -> RuntimeAddOn rename shortened the parameter type so the signature now fits within the width limit; re-format to match.
c13c909 to
8a272d5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Groups the M0 builder, launch and task follow-up nits from the epic #79 train into one PR, superseding the individual follow-up PRs #268, #271, #275, #276 and #277. Each change is preserved as its own reviewable commit:
refactor(observability): rename theRuntimeAddOnstrait to the singularRuntimeAddOn(was refactor(observability): rename the RuntimeAddOns trait to RuntimeAddOn #268).refactor(runtime): drop the unreadLaunchContext.data_dirand comment the supervisor rebind (was refactor(runtime): drop the unread LaunchContext.data_dir and comment the supervisor rebind #271).docs(runtime): clarify the preset add-on lifetime comment (was docs(runtime): clarify the preset add-on lifetime comment #275).fix(runtime): give the component build path a typedBuildError(was fix(runtime): epic train follow-ups (round 2) #277).fix(runtime): make the CLI launch root the explicit executor seam (was fix(runtime): epic train follow-ups (round 2) #277).refactor(runtime): bind the default executor to a local and correct the launch rustdoc (addresses the fix(runtime): whole-train hardening for the builder and launch stack #196 review threads).Why
These are small reviewer-requested touch-ups and deferred-item implementations that accumulated as separate top-of-train cars, inflating the outstanding-PR count without moving the merge frontier. Collapsing them into one PR reduces that count while preserving the per-change history. It targets
developdirectly.Closes
Closes #267.
The other changes resolved review threads on #194, #195 and #196 or implemented deferred items with no filed issue. The shutdown-tally tweak originally folded in from #276 was dropped following review:
TaskExithas a single variant, so the drain match stays exhaustive rather than taking aSome(_)catch-all. This PR no longer touchestask.rs, so #270's parked note (the match staying catch-all-free) is unaffected and the rest of that bundle remains open.Testing
cargo clippy -p nexum-runtime -p nexum-cli --all-targetsclean.cargo test -p nexum-runtimebuilder, component and task suites pass, including thewith_executorend-to-end launch test.AI Assistance: Claude Code (Opus 4.8) used for the consolidation, the executor and doc touch-ups, and PR authoring.