Problem
RepositorySettingsFeature's case .binding writes the entire RepositorySettings snapshot back to @Shared(.repositorySettings(rootURL)) (RepositorySettingsFeature.swift:373-400). Meanwhile AppFeature writes openActionID directly into the same shared storage from the main-window toolbar (AppFeature.swift:559-585) without syncing the open Settings pane's snapshot. Notably, AppFeature.swift:850-854 does sync runScript for exactly this reason — the hazard is known but inconsistently handled.
Failure scenario
- Open Settings → some repository pane (snapshot captured).
- In the main window toolbar, pick a new "Open in" app (
openActionID written to @Shared).
- Toggle anything in the still-open Settings pane.
→ The stale snapshot (old openActionID) is written back wholesale; the toolbar pin silently reverts.
Suggested fix
Either sync state.settings.repositorySettings?.settings.openActionID in .openActionSelectionChanged / .openActionResetToAutomatic (mirroring the runScript handling), or make the .binding writeback field-targeted (compare setGlobalCommandEnabled, RepositorySettingsFeature.swift:233-244).
Origin
TCA-conventions audit of the Settings area (2026-07-30), agent finding — not yet re-verified line by line; confirm the exact write sites before fixing.
Problem
RepositorySettingsFeature'scase .bindingwrites the entireRepositorySettingssnapshot back to@Shared(.repositorySettings(rootURL))(RepositorySettingsFeature.swift:373-400). MeanwhileAppFeaturewritesopenActionIDdirectly into the same shared storage from the main-window toolbar (AppFeature.swift:559-585) without syncing the open Settings pane's snapshot. Notably,AppFeature.swift:850-854does syncrunScriptfor exactly this reason — the hazard is known but inconsistently handled.Failure scenario
openActionIDwritten to@Shared).→ The stale snapshot (old
openActionID) is written back wholesale; the toolbar pin silently reverts.Suggested fix
Either sync
state.settings.repositorySettings?.settings.openActionIDin.openActionSelectionChanged/.openActionResetToAutomatic(mirroring therunScripthandling), or make the.bindingwriteback field-targeted (comparesetGlobalCommandEnabled,RepositorySettingsFeature.swift:233-244).Origin
TCA-conventions audit of the Settings area (2026-07-30), agent finding — not yet re-verified line by line; confirm the exact write sites before fixing.