Skip to content

Complete update, responsive, tray, connection-control, and README screenshots - #2

Merged
devlifeX merged 21 commits into
mainfrom
cursor/desktop-update-responsive-tray-719e
Aug 16, 2026
Merged

Complete update, responsive, tray, connection-control, and README screenshots#2
devlifeX merged 21 commits into
mainfrom
cursor/desktop-update-responsive-tray-719e

Conversation

@devlifeX

@devlifeX devlifeX commented Aug 16, 2026

Copy link
Copy Markdown
Owner

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)

# Commit Change
1 926a5d2 Complete update flow for the app, rules, and Mihomo
2 f599acb Update checks time out, cancel, and refuse overlap
3 cce64b6 Cloud rule sync retries, stages, and publishes atomically
4 14fb260 Bottom navigation on mobile-sized viewports
5 1c71d80 About page Basic control opens the Basic dashboard
6 e477c4b Dashboard vertical scrolling
7 8e2b5de Sticky status bar
8 92ebaf5 Clickable internet/IP refresh
9 d5228d1 Persistent sent/received traffic totals
10 3e5c44f Connect installs helper, Hiddify, and Mihomo first
11 9eb9a56 First launch defaults to Basic
12 56c119e Square 3px connection glow
13 f761440 Persist and restore window size
14 4ff6c5c Responsive coverage for 390×844, 768×1024, 1024×768
15 d46baa8 Input context menu (Select All / Copy / Cut / Paste)
16 d46baa8 Tray menu: Connect/Disconnect, Pause/Resume, Quit

Connection-control follow-ups (17–20)

# Commit Change
17 d4de982 Shared Connect/Disconnect/Pause/Resume lock with transitional busy states
18 cd13aac Lucide icons on every button; icon-only controls keep tooltip + accessible name
19 5040994 Real operation stages fill the active connection button; standalone progress card removed
20 8f827c9 Subtle Connect glow while available; off while disabled/processing; honors reduced motion

README (21)

# Commit Change
21 84bde0b Desktop (1120×760) and mobile (390×844) dashboard screenshots under the tagline, plus a Features list

Refresh screenshots with BIFLOW_CAPTURE_README=1 pnpm exec playwright test e2e/readme-screenshots.spec.ts. Default pnpm test:e2e skips that spec so CI does not rewrite the PNGs.

Required coverage

  • Rapid clicks and tray/other entry points start only one backend operation (iran-split-core, mock, store, tray).
  • All four lifecycle controls disable during a transition and recover after success, failure, and timeout.
  • Progress labels and fills follow published backend stages (prepare, Start Hiddify, Start Mihomo, stop core/proxy, clean up).
  • Button labels do not overflow at 390×844, 768×1024, or 1024×768.
  • Icons, disabled states, in-button progress, and Connect glow are covered by unit, CSS contract, and Playwright tests. Linux and Windows share the same React/CSS; Windows-specific rendering was not run on a Windows display in this environment.
  • README contract asserts the Features heading, both image paths, and that docs/screenshots/desktop.png and docs/screenshots/mobile.png exist.

Verification

  • pnpm check and pnpm build — 115 Vitest tests, script contracts, zero warnings
  • cargo test -p iran-split-core and cargo clippy -p iran-split-core --all-targets -- -D warnings
  • pnpm 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 xwin contract coverage in the tree. This Linux environment has only x86_64-unknown-linux-gnu and no cargo-xwin, so native NSIS, tray, and window-restore were not exercised on a real Windows display.

Open in Web Open in Cursor 

cursoragent and others added 16 commits August 15, 2026 23:33
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
devlifeX marked this pull request as ready for review August 16, 2026 00:05
cursoragent and others added 3 commits August 16, 2026 00:15
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
cursor Bot force-pushed the cursor/desktop-update-responsive-tray-719e branch 3 times, most recently from 2b21e11 to dbc2760 Compare August 16, 2026 00:27
Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
@cursor
cursor Bot force-pushed the cursor/desktop-update-responsive-tray-719e branch from dbc2760 to 8f827c9 Compare August 16, 2026 00:28
@cursor cursor Bot changed the title Complete update, responsive, and tray flows Complete update, responsive, tray, and connection-control flows Aug 16, 2026
Co-authored-by: Dariush vesal <dariush.vesal@gmail.com>
@cursor cursor Bot changed the title Complete update, responsive, tray, and connection-control flows Complete update, responsive, tray, connection-control, and README screenshots Aug 16, 2026
@devlifeX
devlifeX merged commit cb00fa0 into main Aug 16, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants