Commit Graph
100 Commits
Author SHA1 Message Date
Loren Eteval 493efc00fd Document search and log interaction contracts
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-18 23:15:22 +08:00
Loren Eteval 5d41657bc9 Add paused log reading
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-18 23:15:05 +08:00
Loren Eteval 34a079af0a Improve profile search responsiveness
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-18 23:14:55 +08:00
Loren Eteval d189046ebe Gate publication on source regression tests
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-18 22:03:10 +08:00
Loren Eteval 69cd257090 Add subscription update cancellation
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-18 22:03:10 +08:00
Loren Eteval 87c06d8d1f Dispose output resources when runtime preparation fails
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-18 22:03:07 +08:00
Loren Eteval e4f7c9f7dd Preserve stored data when repository restoration fails
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-18 22:03:05 +08:00
Loren Eteval 13ba8621a9 Refine repository guidance in place
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-18 21:15:31 +08:00
Loren Eteval acc559cb45 Fix Qt dialog ownership and worker shutdown lifetimes
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-18 20:53:19 +08:00
Loren Eteval 87de46beab Preserve subscription deletion targets across confirmation
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-18 17:02:43 +08:00
Loren Eteval 330e501eb6 Improve logical block spacing in workflows and tests
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-18 16:53:40 +08:00
Loren Eteval e416a89c35 Rename routing Move button
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-17 23:55:21 +08:00
Loren Eteval d842207066 Add routing rule reordering and previews
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-17 23:55:21 +08:00
Loren Eteval 7f525eb8d8 Fix log auto-scroll after navigation
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-17 23:26:51 +08:00
Loren Eteval 4c856c8318 Update Go build toolchains to 1.27
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-10 15:09:45 +08:00
Loren Eteval d52b1f5d69 Synchronize TUN card disabled state
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-10 14:28:42 +08:00
Loren Eteval e13943315b Align WinGet installer selection
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 19:17:11 +08:00
Loren Eteval f386541e76 Align home search control heights
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 16:52:03 +08:00
Loren Eteval 417d4b8d96 Update version to 0.8.1
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 16:22:46 +08:00
Loren Eteval 46aa8b1de5 Add daily matrix builds
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 16:20:27 +08:00
Loren Eteval d94132b16c Move test actions to the home context menu
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 16:13:26 +08:00
Loren Eteval 3b72fe5fff Update Xray geosite data
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 15:58:47 +08:00
Loren Eteval 756ca40273 Release Xray asset download resources
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 15:58:47 +08:00
Loren Eteval 6486ac95e7 Fix Qt object lifetime cleanup
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 15:58:31 +08:00
Loren Eteval c2f9d8efc9 Refine repository guidance
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 14:20:16 +08:00
Loren Eteval 721b3e7207 Improve service and test readability
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 13:47:52 +08:00
Loren Eteval e4bf189b16 Synchronize TUN mode label availability
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 13:38:54 +08:00
Loren Eteval 5bfdf73cbb Refine tun2socks settings alignment
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 13:26:07 +08:00
Loren Eteval d8a38c93bf Improve readability and exception comments
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 12:18:34 +08:00
Loren Eteval 61d18651a2 Fix subscription metadata header compatibility
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 12:18:16 +08:00
Loren Eteval e4fe0fc8c4 Improve best-effort system proxy handling
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 12:18:00 +08:00
Loren Eteval 29a46b541d Clean up partial external core startup
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 12:17:47 +08:00
Loren Eteval 6d0fbcedcd Allow table-specific stylesheet overrides
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 01:29:02 +08:00
Loren Eteval 994602c889 Align scoped guidance with architecture
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 01:28:46 +08:00
Loren Eteval c8110ab225 Improve workflow and test readability
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 01:00:57 +08:00
Loren Eteval 24d3d29af9 Batch profile imports and deletions
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-09 01:00:02 +08:00
Loren Eteval b455c4cf54 Refine rounded item-view styling
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 23:42:03 +08:00
Loren Eteval 69d17d0b8f Fix rounded popup corners
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 22:33:22 +08:00
Loren Eteval 787911f252 Organize Home import and test menus
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 22:13:02 +08:00
Loren Eteval 1e842f8756 Refresh bundled Xray geodata
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 15:59:37 +08:00
Loren Eteval 79f1cc6cbf Restrict package discovery to Furious
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 15:59:36 +08:00
Loren Eteval a7e35c165f Improve UI and workflow test readability
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 15:59:35 +08:00
Loren Eteval 3132ecd498 Improve profile actions and empty-state guidance
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 15:59:34 +08:00
Loren Eteval 9b9d93fee1 Unify search clear button styling
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 15:59:30 +08:00
Loren Eteval 525b357c55 Guard synchronous subscription shutdown
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 15:52:25 +08:00
Loren Eteval c4fb12be50 Improve workflow and test readability
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 15:52:25 +08:00
Loren Eteval c8099462a7 Align repository guidance with architecture
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 15:52:24 +08:00
Loren Eteval 236b964ea0 Stabilize switch animation regression
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 10:54:14 +08:00
Loren Eteval 3dcd6ab930 Show subscription usage and expiry
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 10:54:14 +08:00
Loren Eteval bd24ff3085 Evolve repository guidance
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 10:54:14 +08:00
Loren Eteval 680ebfc16b Improve Python code readability
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 10:53:31 +08:00
Loren Eteval 7601d5ae96 Document runtime ownership contracts
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 10:53:30 +08:00
Loren Eteval f712f6668c Refactor core runtime lifecycle
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 10:53:30 +08:00
Loren Eteval 5aa7af7ff5 Exclude guidance from packages
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-09-08 10:53:14 +08:00
Loren Eteval 2bb6919319 Fix server row connection-state refresh
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-31 17:54:14 +08:00
Loren Eteval fb45d17a65 Reorder Home server context menu
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-31 15:46:33 +08:00
Loren Eteval a4559e7abd Support multi-selection subscription moves
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-31 15:37:02 +08:00
Loren Eteval 2fdbe31131 Refine Qt lifetime management skill
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-31 15:10:53 +08:00
Loren Eteval 5bbd00eda7 Scale QR export without a progress dialog
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-31 13:31:15 +08:00
Loren Eteval fd619845a5 Test subscription update scalability
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-31 10:07:47 +08:00
Loren Eteval a2deb73839 Scale subscription update processing
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-31 10:07:17 +08:00
Loren Eteval 80ac887255 Protect credentials in diagnostics
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-31 08:45:39 +08:00
Loren Eteval f11794e40a Refine subscription update notifications
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-31 08:43:39 +08:00
Loren Eteval 2881abebb7 docs: restore scoped repository guidance
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-30 20:22:43 +08:00
Loren Eteval 544616f485 feat: align Home TUN availability label
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-30 19:53:01 +08:00
Loren Eteval f14dacec64 feat: expose subscription sync status
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-30 19:13:43 +08:00
Loren Eteval 3e849d9301 fix: avoid packaged Qt callback retention
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-30 19:13:43 +08:00
Loren Eteval 120583f6d6 Update Furious/Externals/AGENTS.md
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-30 18:56:33 +08:00
Loren Eteval 9c5a64acc6 docs: redesign repository guidance
Reconstruct the project operating model from source, tests, packaging, and runtime flows, then rewrite the AGENTS hierarchy around durable ownership, lifecycle, compatibility, and verification invariants.

Consolidate redundant UI and backend child guides, add evidence-based self-evolution rules, and keep specialized guidance only where local constraints materially differ.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-30 17:54:09 +08:00
Loren Eteval ec6d01e4b1 fix: preserve TUN switch animations
Keep user-initiated switch animation running when the shared settings controller echoes the committed TUN state, and animate the peer surface without emitting a recursive request. Preserve snap synchronization for initialization and rollback, with real Qt coverage for both directions and rapid toggles.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-30 17:29:31 +08:00
Loren Eteval be40bd1771 fix: avoid stale Qt signal teardown
Disconnect weak signal dispatch through Qt's opaque connection handle instead of retaining a sender SignalInstance until receiver destruction. This prevents a deleted asynchronous startup operation from causing a deterministic PySide6 access violation during application shutdown.

Add a child-process regression that destroys many senders before their shared receiver and verifies normal process termination.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-30 17:09:22 +08:00
Loren Eteval d9793286d1 refactor: make connection startup asynchronous
Replace GUI connection startup waits with a cancellable, staged Qt transaction. Observe core endpoints, DNS resolution, TUN device readiness, and runtime survival without nested event-loop waits while preserving the synchronous plugin compatibility path.

Commit runtimes only after every required stage succeeds, reject stale generations, and cover readiness, cancellation, rollback, platform ordering, and controller integration.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-30 17:09:05 +08:00
Loren Eteval 3844a8b9aa refactor: extract profile testing service
Move latency and download-speed scheduling out of ServerTableView into an identity-safe service. Add bounded Ping execution, a dedicated adaptive Qt TCPing thread, concurrent non-blocking core startup, and subscription-scoped cancellation with stale-result rejection. Cover scheduler behavior, cancellation races, repository reconciliation, and Qt resource cleanup.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-30 12:46:43 +08:00
Loren Eteval 2ead3fe06e refactor: simplify download speed menu
Expose a single Test Download Speed action backed by the multithreaded scheduler while retaining and documenting the single-threaded API for programmatic callers. Remove the obsolete translation and cover the menu label, shortcut, and dispatch behavior.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-29 21:59:54 +08:00
Loren Eteval 3888a6140e fix: exclude unsupported Linux Qt plugins
Keep the Essentials-only standalone bundle free of unused PDF, TIFF, WebP, and EGLFS plugins whose optional or host-specific dependencies break Flatpak verification. Assert that these plugins remain absent before running the complete native dependency scan.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-29 21:43:47 +08:00
Loren Eteval 0f8a792a6f feat: add smooth theme transitions
Apply resolved themes immediately beneath a 500 ms snapshot cross-fade shared by visible top-level windows. Keep interruption, resize, shutdown, and reduced-animation paths deterministic, with real Qt lifecycle coverage.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-29 21:05:58 +08:00
Loren Eteval aafd237db2 fix: harden Flatpak dependency verification
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-29 20:20:06 +08:00
Loren Eteval e0ea8f4614 fix: preserve Qt interaction semantics
Scope all server-table shortcuts, including nested menu actions, to the focused table. Preserve profile identity, selection, current index, active state, and focus across sorting and repository moves, and make the complete custom switch track clickable.

Add real QTest coverage for keyboard and mouse dispatch, proxy mapping, shared Home and Settings state, menu lifetimes, and transient editor keyboard behavior. Document the logic, Qt integration, and small-workflow test layers.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-29 19:59:43 +08:00
Loren Eteval 4d27d5f027 fix: register benchmark baseline module
Register the dynamically executed LogManager baseline in sys.modules so dataclass processing can resolve its defining namespace. Restore any previous module entry after loading to keep the benchmark isolated.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-29 19:11:20 +08:00
Loren Eteval 2055c0a8db feat: add searchable translated UI workflows
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-29 19:11:20 +08:00
Loren Eteval 15cb2c3b01 feat: expand server organization actions
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-29 19:11:20 +08:00
Loren Eteval 2703f3db39 feat: synchronize Home network controls
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-29 19:11:20 +08:00
Loren Eteval 2846e1a8c6 fix: bundle Flatpak native Qt dependency
Build double-conversion into the Flatpak runtime so QtCore does not depend on a host library unavailable inside the sandbox. Install each finished Flatpak in CI and fail when packaged native dependencies cannot be resolved in the application sandbox.

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-29 12:05:15 +08:00
Loren Eteval 17c03c9fd5 Update project README.md
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-28 22:13:49 +08:00
Loren Eteval c9b4900a32 fix: align External Core timeout row
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-28 11:11:16 +08:00
Loren Eteval 0c65ecaf97 chore: refresh bundled Xray routing assets
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-28 09:22:03 +08:00
Loren Eteval a178172a91 fix: verify Xray asset downloads before replacement
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-28 09:21:52 +08:00
Loren Eteval aa3216f32a fix: avoid logging credential-bearing inputs
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-28 09:21:43 +08:00
Loren Eteval c03d5f255b test: isolate exit confirmation translation
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-28 07:53:40 +08:00
Loren Eteval 753c73714a docs: evolve agent guidance hierarchy
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-28 07:51:40 +08:00
Loren Eteval e1e336af49 fix: confirm exit when system tray is unavailable
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-28 07:33:15 +08:00
Loren Eteval a294619c61 Disable TUN mode in Flatpak settings
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-27 22:01:01 +08:00
Loren Eteval 7bbece2818 Update .github/workflows/deploy-pypi.yml
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-27 21:49:20 +08:00
Loren Eteval 1193eea7f2 Update Furious/Application/DesktopApplication.py
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-27 21:46:02 +08:00
Loren Eteval dd185d3a20 Harden Qt callbacks and subscription diagnostics
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-27 16:43:01 +08:00
Loren Eteval 16637ec545 Preserve runtime ownership after start failure
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-27 16:40:04 +08:00
Loren Eteval 74cbd6f4f9 docs: evolve agent guidance hierarchy
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
2026-08-27 15:34:37 +08:00
Loren Eteval 1e6c77a4bf Use dynamic translation for log page labels 2026-08-27 14:58:39 +08:00
Loren Eteval e0098f55d0 Refactor incremental log delivery and rendering 2026-08-27 14:58:39 +08:00
Loren Eteval fbd28c48d4 Implement generation-based log storage 2026-08-27 14:58:38 +08:00