Repository navigation
Refuse quitting with attached drives; neutral Canvas palette - #9
Merged
Merged
Conversation
…tters Tauri destroys the window after a JavaScript close-request callback unless it prevents the default, even when Rust has rejected the close. Quitting with a drive attached therefore hid the window while ShellCanvas and the Drive Bridge kept running. The frontend now always prevents the automatic destroy and asks request_app_close, which refuses while drives run and marks the desktop as closing under the attachment lock, so a waiting attachment cannot start after the window is gone. On Windows, attachment also treats letters of remembered, disconnected network drives as reserved (WNetGetConnectionW). Mount cleanup still checks only active mounts, so such a letter is not mistaken for a live bridge. The attach, blocked detach and quit, detach and quit checklist was confirmed manually on Windows with an isolated profile. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Canvas 1.1.0 replaces the green-tinted surfaces with neutral white and charcoal, blue accents and a blue/indigo wallpaper in both light and dark, modelled on macOS and Windows 11 defaults. Its dock icons use neutral chrome with distinct app colors; custom themes keep their own palette. The exported Canvas Study example and the preview terminal follow suit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Duplicate close requests can clear the shutdown guard and reintroduce the attachment race.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds safe quit handling for attached drives and refreshes the built-in Canvas theme with a neutral palette.
Changes:
- Routes native close requests through a synchronized backend guard.
- Reserves disconnected Windows network-drive letters.
- Updates Canvas colors, icons, preview styling, tests, and documentation.
File summaries
| File | Description |
|---|---|
src/App.tsx |
Routes close requests through the backend. |
src-tauri/src/lib.rs |
Adds synchronized application closing. |
src-tauri/src/drive_mappings.rs |
Blocks attachments during shutdown. |
src-tauri/src/local_mounts.rs |
Detects reserved network-drive letters. |
src-tauri/Cargo.toml |
Enables Windows networking APIs. |
src/themes/theme.css |
Adds neutral Canvas icon styling. |
src/themes/model.ts |
Updates the Canvas palette and version. |
src/themes/model.test.ts |
Updates built-in theme expectations. |
src/preview.ts |
Refreshes preview terminal colors. |
examples/themes/canvas-study/shellcanvas.theme.json |
Updates the example palette. |
docs/themes.md |
Documents the neutral theme. |
docs/filesystem-integration-progress.md |
Records drive lifecycle verification. |
CHANGELOG.md |
Announces both changes. |
Review details
- Files reviewed: 13/13 changed files
- Comments generated: 2
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two finished changes that had stayed uncommitted in the working tree, committed separately.
Refuse to quit with attached drives (9ce20ba)
onCloseRequestedcallback unless it prevents the default, even when Rust has already refused the close.request_app_closecommand.request_app_closerefuses while drives are attached. Otherwise it marks the desktop as closing under the attachment lock, so an attachment waiting on that lock cannot start once the window is gone.WNetGetConnectionW). Mount cleanup still checks active mounts only.feat/graceful-detach, its PR Prepare public release and SDK distribution #1).Neutral Canvas palette (398631a)
Verification
npm run verifypassed locally on this change set, before the CHANGELOG/doc wording edits: 303 frontend tests, frontend build, Rust workspace tests, Rust formatting and all-target Clippy.npm run public:checkpassed again after those edits.🤖 Generated with Claude Code