Skip to content

Move the native runtime settings from General to the Runtime category #1797

Description

@ndizazzo

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions