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