Commit Graph
937 Commits
Author SHA1 Message Date
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 feec6e5e91 Limit Nuitka package data to runtime resources
Include only Furious/Data resources in standalone builds so repository
guidance and other non-runtime package files are not copied into
distributions.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-24 18:38:48 +08:00
Loren Eteval 9a92045271 Modernize cross-platform release packaging
Build and validate architecture-specific Linux, macOS, and Windows
artifacts with appimagetool, robust WiX provisioning, Windows
7-compatible native bindings, and explicit runtime architecture checks.
Preserve bundle metadata and align dependency constraints with supported
release targets.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-24 18:38:29 +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 84a226a7f8 Pin go-win7 to 1.26.7 in the release workflow
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-23 12:02:52 +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 52dda1971b Pin zxing-cpp below version 3 for Nuitka builds
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-22 09:04:34 +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 c47397a0ce Test backend editor compatibility
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-21 12:21:30 +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 e860c4d7a3 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 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 5526da7267 Expand regression test coverage
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-20 19:37:50 +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 2d9a03668c Update test suite guidance
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-20 19:34:45 +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