feat: handle cloud drives, and fix light mode glass - #9
Merged
Merged
Conversation
Two separate faults, both worst in light mode. The reduced-transparency fallback was written when the page had four glass surfaces and never grew with it. Eight were left uncovered: the navigation shell, the brand pill, the announcement, the tabs, the GitHub button, the install cards, and the rotator's own cards and rows. With the blur stripped, each kept a translucent white background, which on a light page is no background at all. Anyone running the accessibility setting saw navigation and buttons floating with no edges. Every glass surface now has a solid stand-in, verified by forcing the query on. Separately, the glass border was white at 85 percent, which is invisible against a near-white page, so the surfaces only read where the ambient gradient happened to be strong. The border is a cool hairline now and the white inner highlight above it still reads as lit glass. Fill went from 46 to 55 percent for a little more body, and the drop shadow was softened to match. Contrast rechecked against the new composite: 15.6, 6.5 and 6.4 to one.
Conflicted copies are the one kind of clutter that only exists in synced folders, and nothing else here addressed them. Two devices edit the same file offline, the client keeps both, names the loser something like "Budget (Sarah's conflicted copy 2025-11-03).xlsx", and nobody ever goes back to resolve it. scan_tree now recognises the naming each client uses, pairs every copy with the original it competes with, and reports whether the two are byte-for-byte identical. That flag is the whole point: an identical copy is spurious and safe to remove in bulk, while a differing one holds work that exists nowhere else and must never be resolved unattended. It also detects placeholders, the stubs a client leaves when it evicts a file it thinks you are not using. Moving or trashing one destroys the content, so the skill stops before touching anything else. This is a capability of organizing-folders rather than a new skill. A cloud drive is a folder, and adding a fourth skill for a location would bring back exactly the arbitrariness that consolidating them removed. Eighteen tests cover the naming patterns of Dropbox, OneDrive, and Nextcloud, the pairing, the identical flag, and the refusal to call a plain "(1)" copy a conflict when content comparison should decide it.
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.
Cloud drives
You picked cloud drive cleanup as the next category. After the consolidation, though, a cloud drive is a folder, so a separate skill would bring back exactly the arbitrariness we just removed. The genuinely new thing is not the location, it is conflicted copies — the one kind of clutter that only exists in synced folders.
Two devices edit the same file offline, the client keeps both, names the loser
Budget (Sarah's conflicted copy 2025-11-03).xlsx, and nobody ever resolves it.scan_tree.pynow:That last flag is the whole point:
same_contenttruefalseoriginal: nullIt also detects placeholders — the stubs a client leaves when it evicts a file. Moving or trashing one destroys the content, so the skill stops before touching anything.
Verified end to end on a realistic Dropbox folder: 1 placeholder flagged and halted on, 1 identical copy marked safe, 1 differing copy routed to the user.
18 new tests, including that a plain
(1)is not called a conflict, because content comparison should decide that rather than a filename guess.Light mode glass
Reported as "glass not coming up, buttons hard to read". Two separate faults:
Contrast rechecked against the new composite: 15.6, 6.5, 6.4 to one.
127 tests green.