Fix mount races and recover stale FUSE endpoints - #1
Open
nixfred wants to merge 9 commits into
Open
Conversation
LR-T: rclone, omarchy, fuse, mount-recovery LR-D: desktop/plugins/storage LR-K: stale-fuse, transport-endpoint, lazy-unmount
LR-T: rclone, omarchy, quickshell, ipc LR-D: desktop/plugins/storage LR-K: qobject, panel-ipc, warning-noise
WHAT: BandwidthRow gains a throughput bar + caption ("2 MB/s of 5.24 MB/s cap",
"2 MB/s in use", or "idle"). Model.liveRate sums transferring[].speed;
bwLimitBytes parses rclone's binary rate echo (5Mi, 10M:1M); bwMeterFraction
scales to the cap, else the session peak (Service.peakRate). statusText now
reports the live rate instead of stats.speed (a daemon-lifetime average).
WHY: Fred wants to see bandwidth actually in use, not just the cap.
TAGS: rclone, omarchy, plugin, bandwidth, meter, throughput
LR-T: rclone,bandwidth,meter
LR-D: omarchy-plugins
LR-K: rclone-bandwidth-meter
WHAT: setup-daemon.sh template writes ExecStart with --log-level NOTICE WHY: INFO logged vfs cache-clean every minute; Drive 403 abusive-file errors buried journal; flagged OrignialConversation.md.rtf moved server-side to gdrive:Quarantine-google-flagged/ (both copies) ENABLES: quiet rclone journal; quarantine reversible via rclone moveto back LR-T: rclone,logging,systemd,drive,quarantine LR-D: infrastructure,observability LR-K: rclone-rcd,log-level,abusive-file,vfs-cache
…panel
WHAT: The visual overhaul every other bar plugin got this week, applied
here. Three new components and a reshaped Panel.qml:
* SkyField.qml — hero: sonar rings ping while bytes move, breathe while
the daemon idles; packets cross the cloud in the direction of travel
(up/down/both from srcFs/dstFs), faster the harder the link is pushed;
one pip orbits per mounted remote; struck-out cloud when rcd is down
* RateTrace.qml — last 48 polls of liveRate as a filled trace under the
title; repaints once per poll, head pulses while live
* QuotaHalo.qml — every remote's ProviderIcon inside a storage ring
(accent <80%, amber <95%, red after); mounted rows breathe, rows with
queued writes or a dead grant throb; no ring when the probe never said
* Panel.qml — Grid of two Columns (left = hero/bandwidth/jobs/transfers,
right = remotes/add/recent); panelColumns setting, 1 = original order;
sizzle setting gates every animation, ANDed with opened; bar hairline
under the icon while transferring
* Service.qml — rateHistory ring appended once per poll
* Model.js — flowDirection, isRemoteFs, quotaFraction, quotaLevel,
rateHistoryPush, rateTraceScale (+41 cases in test/model-test.js)
WHY: Fred: "We have done major overhauls on all the plugins but this one."
Halo Bluetooth, Chronos, Tesla, Sandman and Burn Bar all got hero motion,
per-row rings, a sizzle switch and/or a two-column layout on 2026-09-03/04.
HOW: No Canvas repaints per frame — every moving part is a scene-graph
scale/opacity/position animation (the lesson from the Halo hero's 35% core).
Glyphs resolved by name via test/glyph-coverage.py --find, never typed.
Column width derived from the Grid's realised width, not the requested
contentWidth (the Tesla clipping trap).
VERIFIED: ./check green except panel-test, which drives the OLD live build
(zombie IPC after hot-reload; rerun after deploy).
LR-T: omarchy-plugin, rclone, sizzle, hero, two-column, quota-ring, overhaul
LR-D: omarchy, quickshell, qml, rclone
LR-K: sky-hero, rate-trace, quota-halo, panel-columns, sizzle-switch, scene-graph-animation
LR-L: law-7, law-9, law-14
LR-S: 0626pm-omarchy-rclone
LR-E: high
LR-R: 895a4f0, f7a27bc
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VYUpS2NZRr18Pyhs1MNqR8
WHAT: Screenshot of the live panel on vic (grim, not drawn) during a 512Ki-capped copy of a 9 MB Drive folder: download cloud with rings, the trace touching the cap line, JOBS and TRANSFERRING on the left, gdrive's storage ring on the right. WHY: The README embeds it; the old one showed the single-column upstream panel. A preview must be the real thing. LR-T: omarchy-plugin, rclone, preview, docs LR-D: omarchy, rclone LR-K: preview-screenshot, real-not-drawn Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VYUpS2NZRr18Pyhs1MNqR8
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.
Summary
fuse.rcloneendpoints left after daemon restartspanel,service) off theIpcHandler: wrap it in aQtObject, so Quickshell stops loggingType QObject* cannot be used across IPCon every plugin loadVerification
./checkpasses completelyTransport endpoint is not connectedfailure on Omarchyjournalctl --user -u omarchy-shellno longer shows thePanelIpcIPC warnings after reload