feat(macos): open Settings from the registry with Cmd-, - #185
Conversation
Add a single AppKit Settings window opened from the Headless menu. The UI is built from SettingsRegistry and writes through SettingsStore, so it cannot drift from `headless config`. Linux has no Settings GUI.
SarthakWade
left a comment
There was a problem hiding this comment.
Requesting changes before merge.\n\nThe branch has no merge conflict with current main, but it is now behind #184. The macOS host build fails locally and in both CI and release at SettingsWindow.swift:35. The added macOS E2E coverage does not execute the acceptance workflow from #158, the generic text editor does not fail closed for future sensitive values, and the capped layout has no scrolling.\n\nThe protocol suite passes locally, so the shared SettingsStore and SettingsController behavior is a solid base. The Linux ARM release failure is the known supervised owner-pipe DevTools closure that #184 just fixed; updating from main should bring that fix into this branch. After the blockers are addressed, please run the required macOS build and add the macos-e2e label so opening, one-window focus, editing, reset, persistence, accessibility, and narrow-window behavior are exercised before merge.
SarthakWade
left a comment
There was a problem hiding this comment.
Re-reviewed after the fixes. Settings now builds, shares storage correctly between the app and CLI, protects user-only strings, supports scrolling and keyboard focus, and has full macOS E2E coverage for open, edit, persistence, reset, and one-window behavior. All required checks and the full macOS E2E pass.
What this changes
Settings…, above Hide).SettingsRegistry.shared.definitionsand writes throughSettingsController→SettingsStoreas the user, the same backend asheadless config set.startup-presentation(enum, macOS, agent-writable, next host start) with current value, default, platform, restart behavior, agent-modifiability, summary, and reset-to-default.COMMANDS.mdkeepheadless configas the portable path.Closes #158
Verification
Settings…as Command-,, hostshowSettings:wiring, and SettingsController file/UserDefaults backend parity with CLIconfig.macos-e2e.shgreps host source for Cmd-, /showSettingswiring and Accessibility-probesHeadless > Settings…when a host is running.