Skip to content

integration: ten UX fixes + Gnirehtet lifecycle/privacy (hardware QA) - #67

Draft
man612 wants to merge 60 commits into
mainfrom
integration/ux-lifecycle-hardware-20261029
Draft

man612 wants to merge 60 commits into
mainfrom
integration/ux-lifecycle-hardware-20261029

Conversation

@man612

@man612 man612 commented Oct 29, 2026

Copy link
Copy Markdown
Owner

Purpose

Combine the ten real UI/UX fixes from Draft PR #50 with the native Gnirehtet lifecycle and serial-log privacy fixes from Draft PR #63, without changing dependency versions, source version, or the regular installed Wirebound app. Both parents are preserved by merge commit 29230c5773d53b55ac16b75b77d696e9140f06e9 (PR #63 head 383f806 and PR #50 head 69473c2).

Merge audit

Actual Git merge on isolated F:\Wirebound-Lab\qa-ux-lifecycle-integration-20261029 had exactly one text conflict: AGENTS.md. Resolved it by keeping both branch documentation sections. All UX renderer files, IPC/preload API, Gnirehtet engine source and privacy helper merged without text conflicts, but behavioral integration and package testing remain mandatory.

Evidence tiers

Previous PR #50 synthetic renderer UX tests and previous PR #63 two real Motorola HTTPS/VPN cycles belong to separate builds. They are not evidence that this combined build passes. Hosted Windows CI and temporary two-day qa-ux-lifecycle-win-unpacked artifact will test this exact integrated head; after successful CI, unpack into F: QA with F:-isolated userData, validate ten UX items and (if USB authorized) retest one Moto g45 5G Android 15 via app IPC and real HTTPS/TUN. Maintain privacy and process ownership checks.

Boundaries

DRAFT, NO MERGE/RELEASE/INSTALLATION YET. Preserve current main, ordinary installed Wirebound profile, unrelated default ADB clients and VPNs. Do not upgrade dependencies or accidentally merge startup investigation PR #51. Electron startup issue #44 remains separately open. Historical UX issue #48 and Gnirehtet issues #53/#58 stay open until completed QA and maintainer-approved integration delivery.

man612 and others added 30 commits October 20, 2026 21:01

man612 commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

2026-10-29 hosted combined-source check: The actual UX #50 + Gnirehtet #63 merge is committed as 29230c5773d53b55ac16b75b77d696e9140f06e9 with two parents. Only AGENTS.md had a Git textual conflict; both sets of agent guidance were preserved. The short-lived artifact workflow commit is 2d2c0242deb48468b70c3053523ef825697c4435. Exact-head GitHub Actions run 40838547533 SUCCESS: lint passed with non-fatal formatter warnings, TypeScript typecheck passed, 12 test files / 73 of 73 Vitest tests passed, Electron build and unpacked package smoke passed, and artifact qa-ux-lifecycle-win-unpacked (ID 12881463034, SHA256 archive digest 4cff5727a02a15340e5f44b0b0abb7685227d587148838ae8d91211e3e24276f, retention 2 days) uploaded. Host YASMAN download into F: isolated QA is in progress. Do not assume combined renderer UX or physical Moto g45 VPN QA passed yet; those checks and installed-app update are still outstanding. Keep PR #67 Draft, main untouched, no dependency upgrades.

man612 commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

2026-10-29 15:18 WIB — handoff checkpoint at conversation limit (UX #50 + Gnirehtet #63 integration)

Source: Draft PR #67, branch integration/ux-lifecycle-hardware-20261029, hosted QA workflow commit 2d2c0242deb48468b70c3053523ef825697c4435; prior two-parent merge commit 29230c5773d53b55ac16b75b77d696e9140f06e9 (parents: PR #63 383f806422a6a58d3f1cff4cc7df0bac1e86c509 and PR #50 69473c2c0c153987deff7a26f567c2ce9cdf8501). Actual Git merge after unshallowing source histories had just one conflict in AGENTS.md, resolved by preserving both sides. No dependency upgrades; no app sources overwritten.

Hosted CI: run 40838547533 SUCCESS, lint (some nonfatal Prettier warnings), TypeScript, 12 files / 73 Vitest tests passed, build Electron, unpacked packaging smoke, and temporary QA artifact upload. Artifact qa-ux-lifecycle-win-unpacked, ID 12881463034, archive digest SHA256 4cff5727a02a15340e5f44b0b0abb7685227d587148838ae8d91211e3e24276f, 2-day retention. Downloaded/extracted successfully with exit code 0 into F:\Wirebound-Lab\qa-packages\pr67-ux-lifecycle-hosted-20261029. Confirmed SHA-256 wirebound.exe = fa4da0bf6898251cb72848be3d0f56b34abf59eeded3df873dfdf443e18a73f8, resources/app.asar = 88c518ceb6c3611183ed8b693d5126bb97fab6b4f0a8ed9e8c78e85c7063c953, Gnirehtet 2.5.1 executable d5daefbb48143fbc2b01f24be79135fc11959fe4553b00f5a454801ed5ff720d, ADB 37.0.1 b4a6b455702684652cccf7b46258b29e653538904359a58fd4931cf3ef286b3f.

Windows QA work: separate integration checkout F:\Wirebound-Lab\qa-ux-lifecycle-integration-20261029. Separate QA profile F:\Wirebound-Lab\qa-ux-lifecycle-integration-20261029\qa-profile; both Roaming\Wirebound\settings.json and Chromium\settings.json seeded, with onboarding complete, autoStart:false, telemetry off, Indonesian, dark theme. Launch script F:\Wirebound-Lab\qa-tools\start-pr67-ux-lifecycle-20261029.ps1 uses F:-redirected APPDATA/LOCALAPPDATA/TEMP, F: Chromium --user-data-dir, CDP on 127.0.0.1:19667. Started unpacked QA app successfully (reported initial PID 2788); do not assume it was closed at handoff, and check live process ownership before new tests. UI inspected through actual app renderer/preload via F:\Wirebound-Lab\qa-tools\pr67-combined-ui-inspect-20261029.cjs and pr67-diagnostic-ui-labels-20261029.cjs.

Latest live read-only renderer results: window.api present, Wirebound v1.2.0, F: QA settings returned exactly autoStart false/telemetry false/onboarding true/dark/Indonesian; engine disconnected, device snapshot 0 (Motorola not enumerated at that instant). Dashboard rendered, data-theme=dark, no horizontal document overflow at width 1000, no visible corrupt · separator, diagnostics section present and expanded. Buttons observed: Dasbor, Pengaturan, Tes Kecepatan PC, Mulai Koneksi, Salin Laporan, Ekspor Laporan, Jalankan Lagi, Sembunyikan diagnostik, BERSIHKAN. aria-expanded=true, panel hidden=false; still expanded 3.5s later. Do NOT call this a bug yet: PR #50 intentionally preserves expanded disclosure if checks fail or a user toggled it. Initial generic probe clearEmptyLogDisabled=false was a weak heuristic; there may already be log entries. Jalankan Lagi is present (first English-literal matcher incorrectly returned false); dismiss-ready absent because no ready state. Need inspect diagnostic report check statuses and explicit state before judging UX. No physical UI button click tests done yet. No combined app VPN/HTTPS Start/Stop run has been performed yet.

Prior independent evidence: PR #63 alone already passed 2/2 real Moto g45 5G Android 15 full packaged Electron API Start → connected Android VPN + reverse → HTTPS HTTP 200 and tun RX/TX increases → Stop/disconnected with clean Android client/reverse/VPN. Source docs: docs/qa/PR63_MOTOROLA_END_TO_END_2026-10-29.md. Native Gnirehtet CLI also succeeded. These are NOT evidence that the combined PR #67 passes hardware QA.

Must continue: (1) Inspect live YASMAN processes and ADB/relay/QA diagnostic ports (5037/15379/31416/19667), don't launch duplicate apps or disturb ordinary installations. (2) Validate all ten UX items with real combined renderer/actual UI interaction (theme live preview, diagnostic collapse/reveal/manual override, copy feedback, rerun feedback, device detail encoding, responsive device list, log scroll/clear behavior, dismiss-ready, accurate update timestamps); use synthetic IDs in any public screenshots. (3) Restore one authorized Moto device if available; perform combined PR #67 full app VPN/HTTPS/TUN/Stop/Retry and cleanup with no global ADB kill. (4) Identify actual everyday Wirebound install/portable launch target by executable path and hash without altering it; prior standard-registry/shortcut searches found no target. (5) Record QA and update docs, obtain approval before merging, installer/release, or replacing daily app. Keep Draft PR #67 and main unchanged until evidence. Startup #44 remains independent, unfinished PR #51 not merged. node_modules junction from older QA checkouts is dangerous to recursively clean.

man612 commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

Combined build checkpoint — CI PASS 73/73, actual UI smoke partial PASS, safe interruption of unexpected VPN session

New in-repo source of truth: docs/qa/PR67_COMBINED_UX_LIFECYCLE_QA_2026-10-29.md. Root AGENTS.md has been updated as well.

Combined actual merge commit 29230c5 has both parents PR #63 383f806 and PR #50 69473c2; only agent documentation needed manual conflict resolution. Hosted Windows run 40838547533, source+upload workflow commit 2d2c024: SUCCESS, lint, typecheck, 12 files / 73/73 Vitest PASS, build and Windows package smoke. QA artifact qa-ux-lifecycle-win-unpacked ID 12881463034, 156MB ZIP, extracted with authenticated gh to F: after slow but successful 765-second transfer. Local SHA256: wirebound.exe fa4da0bf6898251cb72848be3d0f56b34abf59eeded3df873dfdf443e18a73f8; app.asar 88c518ceb6c3611183ed8b693d5126bb97fab6b4f0a8ed9e8c78e85c7063c953. This is unpacked, not installed.

Real packaged Electron/UI smoke in isolated F: userData: version 1.2.0, expected Indonesian/Dark settings and autoStart false, diagnostics panel and copy report present; no obvious corrupted separator or horizontal page overflow at 1000px; manual diagnostic collapse PASS, clicking Jalankan Lagi re-expanded it PASS, rerun returned from busy, Settings/theme/update sections visible. Do not claim all ten UX items passed; no real onboarding Light preview, empty-log clear, timestamp persistence, device card details or log-scroll event was verified on this package.

IMPORTANT QA safety event, root cause UNKNOWN: During post-UI cleanup, the guard refused to stop Wirebound because TCP 31416 had an actual Gnirehtet listener owned by the PR #67 QA package, while earlier renderer API status had been disconnected and settings autoStart:false. A later read-only USB/ADB check found one authorized phone, Android Gnirehtet process, reverse and VPN active. The origin of this Start could not be established; do not assert a PR #67 regression or blame Android 15 without reproducing and controlling for user or asynchronous UI actions. Renderer API Stop timed out on slow host. Native QA Gnirehtet stop returned exit 0 and Android VPN became inactive; a targeted force-stop of only com.genymobile.gnirehtet and targeted adb reverse --remove localabstract:gnirehtet cleaned lingering Android client/mapping. Verified Android VPN, Gnirehtet app process and reverse absent, then stopped exactly one F: QA relay after confirming zero established TCP clients. Stopped only the five QA Wirebound processes and its own F: QA ADB 5037 process after path/PID and zero-client verification. Independent final Windows check: 0 Wirebound/Gnirehtet/ADB processes and 5037/15379/31416/19667 all closed. Normal user installation, unrelated apps/VPN and main were not touched.

Gates still open: investigate Start origin/status mismatch with bounded redacted stage tracing, finish all ten integrated UI scenarios, and perform controlled combined-build Moto g45 VPN + HTTPS 200 / tun RX/TX + Stop/Retry. PR #63's separate two full Android HTTPS passes do not transfer to PR #67. No merge/release/install; PR #67 remains Draft.

man612 commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

2026-10-29 continuation: integrated UI QA completed for available no-device scenarios; guarded shutdown PASS

New dated evidence is committed in docs/qa/PR67_COMBINED_UX_LIFECYCLE_QA_2026-10-29.md, commit 5c2444c. This is documentation-only; no application source or dependencies changed.

Exact hosted unpacked package hash reverified. Guarded relaunch from F: produced v1.2.0, isolated QA profile, autoStart:false, engine=disconnected, 0 authorized devices and no Gnirehtet port 31416 listener.

Actual bundled Electron renderer GUI results: onboarding Dark -> Light -> Dark preview PASS with persisted setting untouched until completion and QA-only onboarding state restored; manual diagnostics collapse/open PASS; rerun expands, completes and auto-collapses PASS for normal scan; Copy Report clicked -> Copied PASS for UI feedback (clipboard bytes not separately compared); CLEAR disabled with empty log PASS; Settings Dark -> Light -> Dark PASS; real update-check completed successfully and recorded/persisted lastAttempt=lastSuccess=1793264645078 across Dashboard -> Settings navigation; no document overflow at 1000px. No engine Start was intentionally invoked, and status stayed disconnected with port 31416 closed. The transient first post-reload DevTools inspection error was a QA timing error; a readiness-waiting repeat passed.

QA cleanup: full ownership guard found exactly 5 Wirebound processes from F: QA package, 1 ADB process from F: QA userData, no external Wirebound/ADB processes, no listening/connected relay, 0 authorized Android devices and no established ADB clients. Targeted shutdown exited 0; final QA Wirebound=0, QA ADB=0, 31416 not listening. Ordinary installed Wirebound/profile untouched.

Still blocking merge/release: physical combined PR #67 Moto connection/VPN/HTTPS 200/TUN RX+TX/Stop/Retry; UX-05 device details, UX-06 responsive real device card and counters, UX-08 ready banner and UX-10 log-scrolling on live connect; negative scenarios for diagnostics/copy/update; source/timing of earlier unexpected Start. The Moto was not enumerated (authorized=0) on this pass. Keep this integration Draft and do not treat PR #63's separate hardware pass as equivalent. Issue #44 startup investigation remains separate.

man612 commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

2026-10-30 — combined PR #67 real Motorola API + GUI Start/Disconnect/Retry/Stop + HTTPS/TUN PASS

Canonical new checkpoint: docs/qa/PR67_MOTOROLA_GUI_END_TO_END_2026-10-30.md. Documentation commit f7e9c74; agent handoff e7b5927.

  • Exact prebuilt integrated Electron app, isolated F: QA profile, one authorized Moto g45 5G / Android 15, no preexisting Gnirehtet client, reverse, VPN, or relay. autoStart:false. Standard ADB 5037, no global ADB kill.
  • App API cycle PASS: Start → relay 31416 → Android VPN + reverse → HTTPS 200 → actual kernel TUN RX and TX increased → Stop → app disconnected, Android client/VPN/reverse absent, relay closed.
  • Actual GUI buttons PASS independently: Start Connection → connected; device-card Disconnect → VPN/reverse removed while relay stayed up; device-card Retry → connected again, a second HTTPS 200 and RX/TX increase; GUI Stop Connection → clean final state.
  • Real-device UI: live card displays battery/RX/TX/actions; widths 1000/800/600/480 CSS px keep both buttons on-screen without document overflow. Ready-banner Dismiss worked. Diagnostic Android version/API populated; no corrupted text. Raw Android serial absent from diagnostic UI when compared correctly to the true snapshot ID. Initial QA probe's apparent serial match was against an already-masked ID (false positive).
  • Live GUI Start showed 35 terminal entries without scrolling the dashboard away from top in that observation. Manual scrolled-up terminal preservation still requires dedicated acceptance.
  • Independent Windows final verification: Wirebound 0, ADB 0, Gnirehtet 0, no listening ports 5037/15379/31416/19667. QA-only cleanup script had an exception in final report generation after the targeted processes were stopped; independent check passed and null-path reporter was corrected. Normal install/user profile and main untouched.
  • Code checked against CI artifact commit: only documentation/agent files changed afterward. No app code or dependency upgrade.

Do not merge/release yet: maintainer explicitly plans to provide a separate personal hands-on UI/UX audit now. Keep PR #67 Draft, preserve source PR history. Existing unresolved scopes: manual terminal scroll/negative UI cases, Wi-Fi/cellular-off and USB unplug/replug, older unexplained QA Start origin, startup issue #44/PR #51. One physical phone only; two-phone hardware test waived.

man612 commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

2026-10-30 — maintainer's 7-point UI/UX audit: implemented and directly launched on Windows

Current PR head: e5dd04e (follow-up React lint correction), based on actual initial implementation e7cd787. The existing Draft PR #67 was updated in place, without creating an additional competing PR. Documentation: owner UI audit QA.

Implemented changes: purposeful hover/press/page/diagnostic motion with Windows reduced-motion support; compact multi-device-oriented Android rows with per-device actions, real ADB/tunnel/RX/TX counters and real Android battery level/charging status/optional codename/version; compact masked diagnostic device lines; terminal log toolbar (All/Errors, pause/resume auto-follow, unread, jump latest, copy/export and feedback, masked known device identifiers); grouped 8-entry navigation: Dashboard, Devices, Diagnostics, Activity Logs, Speed Test, Updates, Settings, About. Activity Logs is functional; other new destinations intentionally say “not enabled yet” as explicitly authorized by the maintainer.

Validation: Windows local main+renderer TypeScript passed; original 13 files / 77/77 Vitest passed after feature implementation, and the additional React effect-state lint issue was subsequently corrected. Targeted ESLint showed 0 errors (remaining Prettier warnings, many from pre-existing source; full initial lint had the one newly fixed error). Actual Electron Vite production main/preload/renderer build passed again after the fix. No dependency upgrades.

Real Windows executable: original hardware-tested PR #67 unpacked Electron QA runtime was copied into F:\Wirebound-Lab\qa-packages\ux-audit-20261030\wirebound.exe, and the QA-only ASAR was replaced with the newly compiled code (SHA256 021800c9f8999cc2f49bfbb9a2b7714154bbcbb5f0c88ed83bd5a69bc0787a90). The currently running QA app was relaunched under an entirely separate F: profile, with autoStart:false, telemetry disabled, CDP loopback 19669; no normal-user installation or profile touched. Read-only final renderer: v1.2.0, 1 authorized Moto, real Android version/codename/charging metadata, eight sidebar entries, masked ID, dark mode, engine disconnected, no document overflow at 1000px. First interactive package passed responsive checks at CSS 1000/800/600/480px and nav/logs/Settings behavior; the final refreshed build's follow-up viewport script was interrupted during active page navigation so repeated multi-width acceptance on that final binary is not claimed. Owner can inspect QA app immediately on their PC.

Still not release/merge-ready: owner plans more UI/UX revisions; the new rebuilt package has not re-run physical HTTPS/TUN Start/Stop/Retry (previous unchanged connection lifecycle passed on original PR #67 runtime); native 125% Windows scaling, low-battery scenarios and real scrolling/copy/export edge cases remain. Preserve Draft status, main, original installation, prior QA evidence, and the one-phone hardware limitation. Do not run npm ci or recursively delete the isolated worktree's node_modules junction.

man612 commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

30 October 2026 — owner UI/UX audit round 2 implemented and tested in an isolated Windows QA build

Source commit: c323fdc. Detailed QA checkpoint: PR67_OWNER_UI_AUDIT_ROUND2_2026-10-30.md. All changes were pushed to this existing Draft PR, without creating another PR or touching main.

Implemented all 14 requested review topics at a first shippable QA iteration: delayed tooltips for sidebar/icons (keyboard-focus accessible); fixed ADB $Ready → ADB Ready; stable-width crossfading Copy/Export labels and notifications; motion for diagnostics, page navigation, popups and notices with reduced-motion support; native TXT/LOG/MD/JSON/CSV export filters and actual corresponding file data; real six-check IPC diagnostics progress reaching 100% only on completion; animated diagnostic expansion, transient “Checks complete”, collapsed dashboard on return; per-device Connect in place of Retry and stopping idle relay when the last VPN disconnects, preserving another active VPN; Gauge speed-test icon/tooltip; empty-terminal controls disabled, scroll-follow indication, differentiated export/jump icons, animated Clear-confirmation dialog; enabled Android speed test without Wirebound tunnel with a mobile-data warning modal.

Verification: TypeScript node + web PASS, 83/83 Vitest PASS, targeted changed-code ESLint 0 errors, main/preload/renderer Electron Vite production build PASS. Actual newly packaged Windows QA ran with one authorized Moto, engine disconnected, autoStart:false, eight nav entries, ADB Ready with no dollar, device Connect, no overflow at 1000px. Keyboard focus showed tooltip “Connected Android devices”; actual GUI diagnostic rerun emitted stages 2/6 → 3/6 → 4/6 → 5/6 → 6/6, bar reached 100, panel auto-collapsed afterward. The authorized/disconnected phone's Speed Test button was enabled, and its actual warning modal was shown and safely canceled (no test traffic generated).

QA executable now launched on YASMAN: F:\Wirebound-Lab\qa-packages\ux-audit-round2-20261030\wirebound.exe, isolated profile F:\Wirebound-Lab\qa-profiles\ux-audit-round2-20261030, QA ASAR SHA256 7733b68a3aff96d8850b049a351a9990eba05877a0b256c6e58c9ed6e7965f39. Earlier active QA session was not overwritten; once ADB/VPN/reverse and process ownership were independently verified safe, only old QA processes were stopped. Ordinary installed Wirebound and its user data remain untouched.

Keep Draft / do not release yet. Remaining hands-on gates: physical USB HTTPS/TUN Start/Stop/Retry with modified lifecycle, native Save dialog manual format selection, long incoming-log pause/unread and Clear interactions, 125% Windows scaling/reduced-motion and owner's visual evaluation. Dependency upgrades deferred.

man612 commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

2026-10-30 — owner UI/UX audit round 3, screenshot-driven fixes

Commit d021ced, pushed to existing Draft #67. QA handoff: docs/qa/PR67_OWNER_UI_AUDIT_ROUND3_2026-10-30.md.

10 maintainer concerns addressed: eliminate hidden diagnostic feedback space; fix dismissed ready banner flex-gap and real grid collapse; treat stopped Gnirehtet check as informational (5/5 passed + 1 info), and refresh actual diagnostics when engine state changes (real connected → 6/6 passed verified on running QA); sidebar tooltip hover delay 1300ms, no tooltip on mouse click or focus restoration after modal; terminal auto-follow reacts only to deliberate upward scroll, not programmatic scroll events, with visible amber paused state in toolbar and a distinct ListEnd jump icon; explain desktop speed and global Start/Stop with tooltips; remove phantom horizontal scrollbar beneath sidebar via nav overflow-x hidden and no translated full-width hover rows.

Actual Chrome/Electron DOM measurements before the final structural fix: collapsed diagnostic details 0px, feedback 0px, but hidden progress 16px from direct child margin; dismissed notice 18px from direct child padding/borders, even though CSS set grid track 0fr. Both have now been nested inside clipping wrappers with zero-size direct children. Sidebar nav scrollWidth=clientWidth=199px, confirming scrollbar fix.

Tests: 84/84 PASS across 14 files, TypeScript main + renderer PASS, Electron Vite main/preload/renderer production build PASS, targeted runtime ESLint 0 errors. The completed compact QA-only Windows ASAR SHA256 f0dfec9b907c8a59de537a53ced2c43e34a1af7f0df534fd9e3cc6330dbdc164 is staged at F:\Wirebound-Lab\qa-packages\ux-audit-round3b-20261030\wirebound.exe.

CRITICAL: this final round3b package was NOT launched yet. Actual preflight of existing round3 QA later found status=connected, authorized Moto VPN active, native Gnirehtet reverse mapping active. It would be unsafe to stop/restart its Windows processes while the owner is testing internet. The previous round3 QA remained running untouched. Await a clean authorized disconnect before switching. Thus final round3b DOM height verification and full stream-log interaction QA are still pending. No normal installed Wirebound or main changed, no dependencies upgraded; keep PR Draft.

man612 commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

Final round-3 UX verification — zero-height compact panels confirmed on a running Windows build

Updates earlier round-3 checkpoint. QA evidence has been appended to the round-3 document, committed as 9d697eb. The application change remains d021ced; the new commit is documentation-only.

The user disconnected Gnirehtet, and an independent preflight verified disconnected, autoStart:false, exactly one authorized phone, Gnirehtet VPN inactive and its reverse mapping absent. We safely stopped only old F: QA-owned processes and launched the new, isolated F:\Wirebound-Lab\qa-packages\ux-audit-round3b-20261030\wirebound.exe (main process PID 2388 at launch) with new separate profile F:\Wirebound-Lab\qa-profiles\ux-audit-round3b-20261030 and CDP loopback 19676. No regular installation/profile, main, or other process was changed.

Live Electron DOM measurements, now PASS:

State Previous package New compact build
Hidden diagnostic details 0px 0px
Hidden diagnostic feedback 0px 0px
Hidden diagnostic progress 16px 0px
Dismissed ready notice 18px 0px
Collapsed diagnostics total height 71.5px 55.5px
Sidebar scrollWidth/clientWidth 199/199px 199/199px

The actual prior running round-3 code was also independently observed connected with 6/6 diagnostic checks passed, addressing the formerly stale blue “Gnirehtet client” status. In the stopped state, that check remains informational, correctly summarized as 5/5 passed · 1 info, never a fake green PASS.

Test/build gates: 84/84 Vitest passed, TypeScript main/renderer passed, Electron Vite production build passed, changed-runtime ESLint 0 errors. New round3b app.asar SHA256 f0dfec9b907c8a59de537a53ced2c43e34a1af7f0df534fd9e3cc6330dbdc164.

While automated tooltip timing testing was being prepared, the owner started another actual tethering session; the automation aborted before any pointer events to avoid interrupting their interaction. Delayed tooltip, modal-return behavior, long-log follow/pause and new round3b physical HTTPS/TUN still need owner review/appropriate QA. Keep PR #67 Draft.

man612 commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

30 October 2026 — maintainer UI/UX audit round 4 completed, code and Windows QA ready

Commit: cb3cb58. Detailed QA report. Updated the existing Draft PR #67, no extra PR, merge or release, no dependency upgrade.

Corrections implemented:

  • Scrolling up no longer toggles Follow to Pause. Explicit Pause/Resume is independent from temporary reader detachment, so incoming logs cannot steal the reader's position. Pause/Resume keeps one fixed button width and crossfades labels. The oversized bright permanent yellow badge is gone; a small transient 1.5-second message lives inside the terminal. Unread count only shows when needed. Jump-to-latest uses guarded smooth scroll.
  • All readiness states, including “Relay and Android VPN are active”, have a dismiss X, without leaving layout space.
  • Diagnostics displays 0% first, then serializes actual emitted IPC milestones monotonically to 100%, no jumping/reversing.
  • ADB-authorized per-device Connect is enabled when the engine is disconnected, without clicking global Start. It launches native gnirehtet relay -p PORT plus targeted gnirehtet start SERIAL -d DNS -p PORT. Global Start still uses all-devices autorun. Corrected CLI flags using upstream documentation; added concurrency/Stop cancellation tests. Global Stop now remains available while the relay is connecting, rather than locking the user out.
  • Maintainer item Auto start on login #2 was only “gaada wkwkkw”, with no technical change described.

Validation: 87/87 Vitest PASS, web+node TypeScript PASS, Electron Vite production main/preload/renderer build PASS, changed-code targeted ESLint zero errors. Actual new F:-isolated Windows QA package was launched:
F:\Wirebound-Lab\qa-packages\ux-audit-round4-20261030\wirebound.exe with userData under F:\Wirebound-Lab\qa-profiles\ux-audit-round4-20261030, no autoStart. ASAR SHA256 aca4aef611f1a3f22d853b24ab0ed72b9baf38c156671e1043484121d8fd94e7. Existing regular install and main untouched.

Live renderer checks: Disconnected state displayed enabled Motorola Connect, enabled phone speed-test, dismiss notice, eight navigation entries, and Start Connection. Clicking Run Again showed bar at 0% at 0/80/180 ms, then 33→50→67→100%, while native milestones actually arrived as 2/6→3/6→4/6→5/6→6/6. This was measured directly from the running packaged renderer.

Outstanding physical acceptance: A scripted per-device Connect+Stop functional test did not execute because its safety preflight observed the owner had already reconnected the Android VPN. It aborted before clicking anything and did not stop the owner's tethering. Manual Connect-path VPN/HTTPS/TUN, incoming-log smooth-scroll interaction, and active-banner dismissal are pending hands-on validation. Keep Draft.

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.

1 participant