The three runtime.native_runtime.* settings render under General in the configuration editor. They're load-time backend selection, so they belong under Runtime, whose summary is already "Load-time runtime behavior and concurrency defaults".
Today General shows Native runtime backend, Native runtime Mesh version, and Native runtime Skippy ABI, while Runtime holds CPU threads and friends right below it.
The change
crates/mesh-llm-config/src/model/built_in_schema/presentation.rs, in native_runtime_presentation() (introduced by #1759):
| Setting |
Today |
After |
runtime.native_runtime.selection |
MESHLLM_CATEGORY, order 40 |
RUNTIME_CATEGORY, order 100 |
runtime.native_runtime.mesh_version |
MESHLLM_CATEGORY, order 50 |
RUNTIME_CATEGORY, order 110 |
runtime.native_runtime.skippy_abi |
MESHLLM_CATEGORY, order 60 |
RUNTIME_CATEGORY, order 120 |
Runtime already spans orders 10 to 90 (gpu.assignment 10, gpu.parallel 20, defaults.throughput.* 10 to 60, defaults.model_fit.flash_attention 70, defaults.hardware.device 90), so 100/110/120 appends the group at the bottom of the section without renumbering anything. If we'd rather have the backend pin lead the section, that means renumbering the existing Runtime entries, which I'd skip unless someone feels strongly.
While you're in there
The console picks presentation.category_id first and only falls back to its own map, so the Rust change alone moves the section. But that fallback map disagrees: categoryForDefaultsPath() in crates/mesh-llm-ui/src/features/configuration/api/config-adapter-schema.ts:252 routes anything under runtime. to runtime-policy, and fallback_category_for_path() in presentation.rs does the same. Add a runtime.native_runtime. branch to both so the two sides agree if the presentation entry ever goes missing.
Also check what General looks like after the move. runtime.debug ("Debug output") is the only other setting mapped to meshllm, and it isn't in the General count in the current build, so the section may end up empty in that view. If it does, decide whether General should stay visible or drop out.
Scope and dependencies
Presentation only. No API, persistence, or validation change, and no test currently pins the category id for these paths.
Depends on #1759, which is where native_runtime_presentation() comes from. This lands on main after 0.76.1 merges up.
Out of scope: the must be one of: recommended, , cpu, metal, vulkan message on the backend select (the acceptedValuesForSetting wart raised in the #1759 review). That's its own follow-up.
Verification
cargo test -p mesh-llm-config
- Console screenshot of the configuration page showing the three settings under Runtime, plus whatever General looks like afterward
The three
runtime.native_runtime.*settings render under General in the configuration editor. They're load-time backend selection, so they belong under Runtime, whose summary is already "Load-time runtime behavior and concurrency defaults".Today General shows Native runtime backend, Native runtime Mesh version, and Native runtime Skippy ABI, while Runtime holds CPU threads and friends right below it.
The change
crates/mesh-llm-config/src/model/built_in_schema/presentation.rs, innative_runtime_presentation()(introduced by #1759):runtime.native_runtime.selectionMESHLLM_CATEGORY, order 40RUNTIME_CATEGORY, order 100runtime.native_runtime.mesh_versionMESHLLM_CATEGORY, order 50RUNTIME_CATEGORY, order 110runtime.native_runtime.skippy_abiMESHLLM_CATEGORY, order 60RUNTIME_CATEGORY, order 120Runtime already spans orders 10 to 90 (
gpu.assignment10,gpu.parallel20,defaults.throughput.*10 to 60,defaults.model_fit.flash_attention70,defaults.hardware.device90), so 100/110/120 appends the group at the bottom of the section without renumbering anything. If we'd rather have the backend pin lead the section, that means renumbering the existing Runtime entries, which I'd skip unless someone feels strongly.While you're in there
The console picks
presentation.category_idfirst and only falls back to its own map, so the Rust change alone moves the section. But that fallback map disagrees:categoryForDefaultsPath()incrates/mesh-llm-ui/src/features/configuration/api/config-adapter-schema.ts:252routes anything underruntime.toruntime-policy, andfallback_category_for_path()in presentation.rs does the same. Add aruntime.native_runtime.branch to both so the two sides agree if the presentation entry ever goes missing.Also check what General looks like after the move.
runtime.debug("Debug output") is the only other setting mapped tomeshllm, and it isn't in the General count in the current build, so the section may end up empty in that view. If it does, decide whether General should stay visible or drop out.Scope and dependencies
Presentation only. No API, persistence, or validation change, and no test currently pins the category id for these paths.
Depends on #1759, which is where
native_runtime_presentation()comes from. This lands on main after 0.76.1 merges up.Out of scope: the
must be one of: recommended, , cpu, metal, vulkanmessage on the backend select (theacceptedValuesForSettingwart raised in the #1759 review). That's its own follow-up.Verification
cargo test -p mesh-llm-config