Revert Close Approval

This commit is contained in:
Kaede Akino committed 2026-09-18 20:00:55 +08:00
1 parent b96671383e
commit 0e85a5cec9
7 files changed
+179 -59

No files matched your search

+10 -6
View File
@@ -80,10 +80,15 @@ cleanup is performed.
demos use an in-memory size store. Window positions remain system-owned.
- Desktop Command-W closes the selected Workspace's focused pane first. Closing
the last pane removes its Workspace but keeps the window open. Without a selected
Workspace it requests native window dismissal. Window closure does not ask for
confirmation, including when the window owns connected, disconnected, or hidden
Workspaces. Workspace presence does not mark the window as edited. Shift-Command-W remains
Workspace it requests native window dismissal. All user window-close paths share
SwiftUI's dismissal confirmation whenever that window owns any Workspaces,
including disconnected or hidden ones; cancellation preserves them. Closing a
different window never participates in that decision. Shift-Command-W remains
direct window dismissal, and the existing last-window background policy applies.
Main-window registration suppresses the native document-edited decoration that
SwiftUI couples to dismissal confirmation. Workspaces are not unsaved documents;
the confirmation condition and native dismissal delegate remain unchanged.
The observation follows the registration view's window and ends on detachment.
- A Workspace can move intact to a new window through commands. Navigator drags
use SwiftUI's original UUID string provider for in-window ordering and pane
composition; releasing a drag outside the window never creates a window.
@@ -307,9 +312,8 @@ be discarded; paused uploads are cancelled and cleaned up before their record is
Hosts own activation, background, termination and native preview/open adapters.
The macOS edit menu uses ordinary menu actions; Keep Local Copy delegates to an app-owned
save panel and coordinated file copy instead of embedding ShareLink in the native menu.
macOS quits without checking or confirming pending edits and retains its bounded cleanup.
Neither platform restores edit tracking after process termination or automatically uploads
pending edits on quit. Background expiration still pauses uploads, with explicit resume.
macOS checks edits before quitting; iOS cannot promise a quit warning or recovery after
process termination. Background expiration still pauses uploads, with explicit resume.
Edit upload policy validates the original destination's kind, size, modification time
and mode both before writing and immediately before remote rename, preserving its
+14 -1
View File
@@ -594,7 +594,20 @@ The operator approved R1, R2, and R3 in that order. R4–R6 remain outside this
- Action: remove both confirmation paths and their unused copy while preserving native
window dismissal, pane-first Command-W, per-window session ownership, and bounded quit cleanup.
- Estimated reduction: 25-35 production Swift lines and five localized catalog entries.
- Status: implementation in progress; verification pending.
- Status: superseded by the user's request to retain both confirmations and hide
only the close-button edited indicator. Both dialogs and all five strings are restored.
## Hide the Desktop Close-Button Edited Indicator (2026-09-18)
- Evidence: the restored SwiftUI WindowGroup sets `NSWindow.isDocumentEdited` when
a Workspace requires dismissal confirmation. An isolated Demo probe cleared that
property and still presented the original Close Window / Cancel dialog.
- Action: observe the native edited flag only while the main-window registration
view is attached and clear the decoration. Retain SwiftUI's dismissal delegate,
Workspace condition, all confirmation copy, and SFTP quit checks.
- This is a visual behavior correction, not a code-reduction refactor. No shared
API, persistence, package, or dependency change is needed.
- Status: implemented; verification pending.
## Make Workspace Composition Free (2026-09-18)