Loren Eteval
b15fa6bfe6
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
db3587ace7
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
1dc0d92c1a
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
cac765ca81
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
16282505f6
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
f92c23f127
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
5ed9b32737
Tune macOS Hysteria2 bandwidth spacing
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-23 12:25:18 +08:00
Loren Eteval
2f2997f3c9
Disable native Xray and Hysteria2 TUN by default
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-23 12:12:42 +08:00
Loren Eteval
45ddb3a725
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
6750cd0402
Bound long-lived service retention
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-23 11:26:08 +08:00
Loren Eteval
81e05829d9
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
35c4c7c548
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
8c01932843
Refine application dialog presentation lifecycle
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-23 07:27:38 +08:00
Loren Eteval
0886118130
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
06fe824b27
Tune Hysteria2 advanced-section spacing
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-22 21:57:36 +08:00
Loren Eteval
b89f900758
Fix native runtime lifecycle ordering
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-22 21:28:19 +08:00
Loren Eteval
3c0b3def25
Fix WebEngine profile lifetime ordering
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-22 21:28:19 +08:00
Loren Eteval
d57e920e4d
Refine Hysteria2 editor layout
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-22 21:28:19 +08:00
Loren Eteval
1ae88d09e0
Audit application stylesheet state interactions
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-22 21:28:19 +08:00
Loren Eteval
226727cead
Reduce macOS Hysteria2 bandwidth spacing
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-22 21:28:19 +08:00
Loren Eteval
1b3692ec46
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
98e2600248
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
35e579b686
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
89f7403b47
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
3c6502e3f5
Refine Hysteria2 editor field layout
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-21 16:05:33 +08:00
Loren Eteval
f8d01633c3
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
8c41c64105
Refactor process plugin registry ownership
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-21 15:25:39 +08:00
Loren Eteval
02a9851a56
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
48b3231081
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
cbf759667b
Refine repository agent guidance
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-21 13:26:56 +08:00
Loren Eteval
585c5f75c3
Document backend development guidance
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-21 12:21:56 +08:00
Loren Eteval
cc2cc02b98
Improve backend editor compatibility
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-21 12:20:34 +08:00
Loren Eteval
698c279927
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
b3ee21720a
Separate Close Window from the File menu
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-21 10:43:59 +08:00
Loren Eteval
ecac986967
Simplify server action construction
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-21 10:43:40 +08:00
Loren Eteval
c78ebcf172
Separate protocol action and editor titles
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-20 21:49:52 +08:00
Loren Eteval
3340e8bbb3
Clarify external core configuration section
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-20 21:49:19 +08:00
Loren Eteval
ede92d899e
Refine scoped architecture guidance
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-20 20:14:22 +08:00
Loren Eteval
44744d6da4
Clarify external command timeout ownership
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-20 20:14:09 +08:00
Loren Eteval
d8b788b00e
Add scoped repository guidance
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-20 19:35:06 +08:00
Loren Eteval
2802d8f462
Update Xray data assets
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-20 19:18:10 +08:00
Loren Eteval
b57e7bed01
Modernize Xray asset viewer actions
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-20 19:17:55 +08:00
Loren Eteval
00232e36d7
Fix section resize mode for subscription header view
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-20 18:44:33 +08:00
Loren Eteval
b75c9733bf
Format header-view initialization
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-20 18:44:05 +08:00
Loren Eteval
65a322913e
Combine traffic metrics into one card
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-20 16:55:58 +08:00
Loren Eteval
f4ecd5ce1b
Modernize Fluent item views
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-20 16:55:48 +08:00
Loren Eteval
093a7c2cbd
Refine endpoint map loading
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-20 10:10:17 +08:00
Loren Eteval
5cc316059e
Refactor connection startup transaction
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-19 22:53:38 +08:00
Loren Eteval
6f1ab0dc20
Centralize subscription workflows
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-19 22:02:57 +08:00
Loren Eteval
eae3f0cdce
Split Qt stylesheets by component
...
Signed-off-by: Loren Eteval <loren.eteval@proton.me >
2026-08-19 22:02:57 +08:00