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>
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>
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>
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>
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>
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>
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>
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>
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>
Extend the Qt lifetime skill with packaged-build ownership hazards,
native destruction probes, binding-specific diagnostics, and review
guidance for distinguishing real regressions from unavailable protected
counters.
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
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>
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>
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>
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>
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>
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>
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>