Commit Graph
43 Commits
Author SHA1 Message Date
Loren Eteval 8985a18761 Remove obsolete unsupported-platform exit path
Route startup failures through the normal fatal-error flow now that desktop startup no longer rejects systems without a tray. Remove the unused semantic exit code and its generated translations and tests.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-24 18:41:14 +08:00
Loren Eteval a91c006b87 Harden desktop startup and singleton election
Use an atomic lock-backed election for primary-instance startup, distinguish live peers from stale endpoints, and bound handoff retries. Keep the application usable when a desktop has no system tray and cover first-launch races, stale recovery, and visible-window behavior.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-24 18:40:52 +08:00
Loren Eteval a7acc1ed3b Scope DNS resolver to connection lifecycle
Create and dispose the DNS resolver with its owning connection manager instead of at module import time. Make cleanup explicit and keep architecture and external-core tests aligned with injected resolver ownership.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-24 18:40:16 +08:00
Loren Eteval 7ee08e417b Fix transient Qt ownership in packaged builds
Retain asynchronous dialogs only while visible, use receiver-aware weak signal dispatch for transient editors, and release registries on native destruction. Add native and packaged lifetime probes that distinguish live-wrapper growth from unavailable binding diagnostics.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-24 18:39:45 +08:00
Loren Eteval 52901041ed Restore canonical macOS window geometry
Ignore the transient 640x480 Qt fallback geometry on macOS and restore the application default instead, while preserving deliberate user-sized windows.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-24 18:38:07 +08:00
Loren Eteval 71e4812bdf Stabilize endpoint map rendering
Render the endpoint map from a local, theme-aware style, validate coordinates, and handle optional or failed WebEngine renderers without destabilizing the page. Keep the endpoint tests aligned with the resulting map state contract.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-24 18:37:47 +08:00
Loren Eteval 3f537d3a66 Bound and adapt core output draining
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-23 11:26:20 +08:00
Loren Eteval 45f22d3c6f Bound long-lived service retention
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-23 11:26:08 +08:00
Loren Eteval 185bc784cb Expand test coverage and fix lifecycle contracts
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-23 08:55:24 +08:00
Loren Eteval 68ad1eefc1 Use per-instance once-only geometry preparation
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-23 07:55:05 +08:00
Loren Eteval f4a9410707 Refine application dialog presentation lifecycle
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-23 07:27:38 +08:00
Loren Eteval 97ee907e8c Refine top-level window geometry lifecycle
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-22 23:31:33 +08:00
Loren Eteval bf73a81b6e Fix native runtime lifecycle ordering
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-22 21:28:19 +08:00
Loren Eteval d4d1195413 Fix WebEngine profile lifetime ordering
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-22 21:28:19 +08:00
Loren Eteval d2c5f86603 Refine Hysteria2 editor layout
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-22 21:28:19 +08:00
Loren Eteval 332a606af4 Audit application stylesheet state interactions
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-22 21:28:19 +08:00
Loren Eteval c162a480e3 Refactor QR code generation and presentation
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-22 21:28:19 +08:00
Loren Eteval 429b470916 Make combo boxes fit translated content
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-22 21:28:19 +08:00
Loren Eteval 1d750b2198 Make routing selector fit translated content
Add opt-in content-aware sizing to AppQComboBox and refresh its geometry after retranslation. Apply it to the routing selector while preserving the semantic selection and avoiding synthetic routing changes.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-22 21:28:09 +08:00
Loren Eteval b6a6fb0672 Refine proxy editor layouts and option handling
Centralize grid placement helpers and use them to keep Xray and Hysteria editor forms compact and consistent. Preserve unknown combo-box values so loading and saving newer protocol options does not silently discard configuration data.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-22 21:28:09 +08:00
Loren Eteval 68fc88b3f4 Refine Hysteria2 editor field layout
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-21 16:05:33 +08:00
Loren Eteval 5d18cefbe3 Preserve combo box focus border on hover
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-21 15:38:48 +08:00
Loren Eteval 7b1568893b Refactor process plugin registry ownership
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-21 15:25:39 +08:00
Loren Eteval 55869b6087 Refine Fluent message box content hierarchy
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-21 15:13:16 +08:00
Loren Eteval 1408dee387 Rename Xray asset widget to list view
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-21 13:43:06 +08:00
Loren Eteval 048c290bb7 Test backend editor compatibility
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-21 12:21:30 +08:00
Loren Eteval 5200d3ba6a Add UI support for the latest Hysteria2 core
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-21 11:02:28 +08:00
Loren Eteval cfa6a025fe Update protocol editor tests and guidance
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-20 21:48:46 +08:00
Loren Eteval 509fdf9052 Refine scoped architecture guidance
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-20 20:14:22 +08:00
Loren Eteval 1831025af6 Clarify external command timeout ownership
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-20 20:14:09 +08:00
Loren Eteval af82c2d5b7 Expand regression test coverage
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-20 19:37:50 +08:00
Loren Eteval 03631120da Add scoped repository guidance
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-20 19:35:06 +08:00
Loren Eteval 0d3d396b74 Update test suite guidance
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-20 19:34:45 +08:00
Loren Eteval f97eca7825 Centralize subscription workflows
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-19 22:02:57 +08:00
Loren Eteval 09df7dc3bd Add proxy endpoint information
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-19 11:02:53 +08:00
Loren Eteval 394eba0398 Replace editor checkboxes with Fluent switches
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-17 21:13:56 +08:00
Loren Eteval 96caed6673 Show progress while processing logs
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-17 20:47:32 +08:00
Loren Eteval b52e6be130 Add persistent log viewer preferences
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-17 20:21:41 +08:00
Loren Eteval 8492487966 Optimize lazy log rendering and tail following
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-17 19:21:47 +08:00
Loren Eteval 5e574d448b Add scoped repository agent guidance
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-17 18:20:29 +08:00
Loren Eteval 52f8b789e7 Fix native TUN ownership semantics
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-17 18:19:55 +08:00
Loren Eteval 8f467465d6 Expand application test coverage
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-17 15:42:59 +08:00
Loren Eteval c097b19d72 Added project tests
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-17 15:42:59 +08:00