Complete update, responsive, tray, connection-control, and README screenshots - #2
Merged
Merged
Conversation
Check and Install now cover the signed Tauri package plus the versioned Iran rule snapshot and a missing bundled Mihomo binary. A rule-sync failure keeps the last good cache and does not block an app update. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Each GitHub check is bounded to 8s, download/install to 10 minutes, and a process lock plus store guard stop stacked Check/Install calls. Cancel also stops the update retry loop. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Fetches retry with backoff and a direct client fallback. A generation is written to staging first, then persisted into the cache with metadata last so a failure keeps the last good rule set. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Advanced mode keeps the sidebar from 768px up and switches to a five-item bottom bar below that width. The bar sits above the status bar so the two never overlap, and there is no hamburger menu. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Selecting Basic from About now sets the page to dashboard, matching the same control on every other screen instead of leaving the About article up. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
The dashboard section now uses overflow-y-auto so tall content scrolls inside the page instead of being clipped by overflow-hidden. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
The bar is now a shrink-0 sticky footer in both Basic and Advanced mode so page scroll never carries it away or hides it under content. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Clicking the connection or IP label re-runs the Rust-backed status probe, shows a checking spinner, and ignores a second click while a refresh is already running. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Fold Mihomo session counters into a lifetime file so disconnect and reconnect do not reset the displayed totals. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
The UI and tray start paths install required services sequentially and stop before the stack starts when a step fails. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Connect still installs missing services from the Basic dashboard, and stored Advanced preferences stay Advanced. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Drop the corner radius, thicken the ring by one pixel, and strengthen the glow so it stays flush on Linux and Windows display scaling. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
The window is resizable with a 390 by 640 minimum. The last logical size is saved on resize and clamped to the current work area on launch. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Playwright checks 390x844, 768x1024, and 1024x768 for bottom navigation, status-bar stacking, and overflow, and metric cards wrap instead of clip. Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
devlifeX
marked this pull request as ready for review
August 16, 2026 00:05
Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
cursor
Bot
force-pushed
the
cursor/desktop-update-responsive-tray-719e
branch
3 times, most recently
from
August 16, 2026 00:27
2b21e11 to
dbc2760
Compare
Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
cursor
Bot
force-pushed
the
cursor/desktop-update-responsive-tray-719e
branch
from
August 16, 2026 00:28
dbc2760 to
8f827c9
Compare
Co-authored-by: Dariush vesal <dariush.vesal@gmail.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.
Sixteen original desktop tasks, four connection-control follow-ups, and README screenshots plus a Features list. Each numbered feature is its own commit on this branch.
Original tasks (1–16)
926a5d2f599acbcce64b614fb2601c71d80e477c4b8e2b5de92ebaf5d5228d13e5c44f9eb9a5656c119ef7614404ff6c5cd46baa8d46baa8Connection-control follow-ups (17–20)
d4de982cd13aac50409948f827c9README (21)
84bde0bRefresh screenshots with
BIFLOW_CAPTURE_README=1 pnpm exec playwright test e2e/readme-screenshots.spec.ts. Defaultpnpm test:e2eskips that spec so CI does not rewrite the PNGs.Required coverage
iran-split-core, mock, store, tray).docs/screenshots/desktop.pnganddocs/screenshots/mobile.pngexist.Verification
pnpm checkandpnpm build— 115 Vitest tests, script contracts, zero warningscargo test -p iran-split-coreandcargo clippy -p iran-split-core --all-targets -- -D warningspnpm test:e2e— 18 Playwright tests passed, 1 skipped (README capture)Platform note
Windows is covered by shared TypeScript, Windows-gated unit tests, and existing
cargo xwincontract coverage in the tree. This Linux environment has onlyx86_64-unknown-linux-gnuand nocargo-xwin, so native NSIS, tray, and window-restore were not exercised on a real Windows display.