Skip to content

Add reusable native Mod Settings navigation groundwork - #281

Draft
Guffawaffle wants to merge 23 commits into
STFC-Mod:devfrom
Guffawaffle:feature/mod-settings-navigation
Draft

Guffawaffle wants to merge 23 commits into
STFC-Mod:devfrom
Guffawaffle:feature/mod-settings-navigation

Conversation

@Guffawaffle

@Guffawaffle Guffawaffle commented Sep 12, 2026 •

Copy link
Copy Markdown
Contributor

Adds native Mod Settings pages and collapsible sections, keeping setting identity and persistence with each feature adapter. Empty groups are omitted; reused native views reject stale callbacks and reentrant writes. This is the navigation prerequisite for the controls in #282 and does not register new mod settings itself.

Depends on refreshed #277 and #280. Following #313, default-enabled [patches].nativesettingshooks controls the native adapter and [patches].runtimeconfighooks independently controls persistence. The patch registry owns both; native settings and hotkeys no longer install persistence themselves. Shared invocation and lookup helpers are already in dev through #292.

Validation: Windows release build; existing settings catalog, callback, view, choice, slider and persistence fixtures; all 11 example TOMLs. Current Windows static fit covers the installed confirmation/quit/update targets. Exact candidate native navigation smoke and supported macOS native extent/execution evidence remain outstanding; fixture success does not establish native UI behavior.

@Guffawaffle
Guffawaffle force-pushed the feature/mod-settings-navigation branch from 0715bf5 to f15d1c7 Compare September 28, 2026 00:00
@Guffawaffle

Guffawaffle commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor Author

Hook/feature alignment follow-up for #313

Follow-up to #313: keep hook installation independent of feature enablement, with default-enabled compatibility switches under [patches] and feature checks inside the installed hooks.

This branch inherits the hardcoded native-settings installer from #277. Bring forward that parent's real default-enabled [patches] switch and the refreshed persistence parent from #280. Navigation/page availability must not force unrelated feature hooks on. This is the convergence point for #277 and #280; update both owning parents before carrying the result into #282 and its sibling branches.

Settings cascade (verified from current branch ancestry): #279 → #280; #277 + #280 → #281 → #282; sibling branches from #282 are #285, #293 and #297. #285 additionally depends on #269; #297 additionally depends on #296. Correct the owning parent first, then carry the fix through every dependent branch while preserving each sibling's scope.

Implemented in 7f9ea43fd69c2299a0d751d9e8c169015196ca4d. Both corrected parents are merged. Native settings retain default-enabled [patches].nativesettingshooks and persistence has its independent registry owner through runtimeconfighooks. The native installer no longer installs persistence directly. Obsolete platform/debug/capacity documentation is corrected. Windows validation passed for unchanged source before the documentation-only correction; CI is queued. Native game/Mac qualification remains open. Next: #282 and its sibling branches.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant