TurtleGit for Mac

View Markdown source ↗

Captured Settings sheet handoffs — October 18, 2026

This connected native repair covers Rebase identity repair, Git Properties → Settings and Unified Diff → Settings. Reference source is pinned TortoiseGit 7338078f8ddd924b8cddee35f512f2286072136d:

Windows launches separate processes. The native adaptation uses an owned sheet with the same Settings pages, captured preferences and permission context. SettingsSheetController shares the guarded close policy across these callers. AppKit disables an attached sheet's title-bar close button, so ordinary performClose can silently reject Settings footer OK/Cancel. The native sheet accepts explicit close only while the transaction and delegate permit it. An applying transaction continues to refuse closure and Quit. Ownership lasts through actual AppKit sheet detachment; late callbacks cannot revive a retired owner. Child presentation inherits its owner's alpha, including invisible QA.

Git Properties keeps its selected repository/access and its unapplied index-flag draft. It now passes the original preferences to Settings, including appearance. Unified Diff starts on its global Unified Diff page, retains its dirty text and queues replacement documents while Settings is open. After actual detachment, the existing Save/Discard/Cancel workflow resolves the replacement. Cancelling that question preserves the original document. Forced parent retirement rejects queued publication. Rebase retains its existing identity reread and repair loop.

The native fixture dispatches real footer actions, explicit Close, held-save refusal, private preference reads, property draft preservation, dirty/replacement decisions, Quit refusal and forced retirement. Retained Rebase, Properties and document workflows share the grouped checkpoint. Evidence records actual results; fixture existence alone does not establish a pass.

Remaining: physical mouse/keyboard and VoiceOver acceptance, minimum macOS and hosted Intel SDK execution, signed permission leases, complete visual comparison of Settings pages and full application parity. The Remote list repair is recorded in the preceding batch; this sheet family makes no additional claim about every remote interaction or upstream dialog.