Commit Graph

123 Commits

Author SHA1 Message Date
Alexandr Stelnykovych b193aab625 ui: clarify Split Tunnel config tooltips and messaging
https://github.com/safing/portmaster-shadow/issues/45
2026-05-18 17:48:29 +03:00
Alexandr Stelnykovych b51e59a1c1 feat(UI): add Split Tunnel quick-setting to app profile view
Adds a "Split Tunnel" toggle to the app profile quick-settings bar,
mirroring splittun/use per-app setting.

Shows an interference dot when:
- splittun/usagePolicy has Exclude rules (yellow)
- SPN is active and routes all traffic, fully bypassing Split Tunnel (red)
- SPN is active and partially bypasses Split Tunnel (yellow)

Dot and interference checks are suppressed when the Split Tunneling
or SPN module is globally disabled.
2026-05-13 14:50:52 +03:00
Alexandr Stelnykovych 2d5628a309 feat(UI): add Split Tunneling feature card
- Replace "Safing Support" feature with Split Tunneling in features.go,
  using a dedicated config key/scope and free package tier
- Fix feature-card component to prioritize ConfigKey over ConfigScope
  when resolving the config lookup key
2026-05-12 18:00:06 +03:00
Alexandr Stelnykovych ee2e3ef357 UI: Do not show "SPN Tunnel: connection has not been routed through the SPN"
The SPN Tunnel information is visible only when the connection has been routed through it.
2026-05-12 16:35:57 +03:00
Alexandr Stelnykovych dea008886d UI: Do not show username in the main application view
https://github.com/safing/portmaster/issues/2123
2026-05-12 16:27:15 +03:00
Alexandr Stelnykovych 192980b757 splittun: add splittun/enable config option with dynamic enable/disable
- New config.go registers the "splittun/enable" boolean option
- subsystems.ts: change ToggleOptionKey from splittun/use to splittun/enable
- Module Start/Stop replaced with enable()/disable() helpers driven by
  the config option; a callback on EventConfigChange toggles state at runtime
2026-04-30 18:18:53 +03:00
Alexandr Stelnykovych ee8cde31f6 feat: Add Split Tunnel feature (Windows PoC)
Implement initial proof-of-concept for split tunnel functionality on Windows,
allowing applications to route traffic through a designated network interface
while bypassing default system routing.

Features:
- Split tunnel module with TCP/UDP proxy infrastructure
- Firewall integration with split tunnel verdict handling
- SplitTunneling context attached to connections
- Configuration options: enable toggle, interface selection, and policy rules
- UI display of split tunnel connection details in connection info panel
- Subsystem configuration for user-level access

Windows-specific implementation:
- Uses proxy-based interface routing on Windows
- Automatic or manual interface detection and binding
- Support for IPv4 and IPv6 traffic

Note: Linux implementation is under development. SPN takes precedence over
split tunnel when both are enabled, ensuring SPN connections bypass this feature.
2026-04-24 18:04:01 +03:00
Alexandr Stelnykovych 933323d5f9 feat: add VerdictRerouteToSplitTun verdict type
Add a new verdict (value 8) for routing connections through the split
tunnel. This prepares the infrastructure for the upcoming split-tunneling
feature without implementing the full feature yet.

Changes:
- Define VerdictRerouteToSplitTun in network/status.go with String() and Verb()
- Add RerouteToSplitTun() to the Packet interface and InfoPacket stub
- Implement RerouteToSplitTun() for windowskext (v1) and windowskext2 (v2) packets
- Map VerdictRerouteToSplitTun to KextVerdict 11 in kextinterface and kext2
- Handle the verdict in packet_handler.go dispatch, connection.go, api.go,
  metrics.go and nameserver.go
- Add VerdictRerouteToSplitTun = 8 to Angular Verdict enum and update
  stats counting, filter queries and verdict CSS class

(WIP) Note: Linux (nfq) implementation not updated yet. Therefore Linux build will fail.
2026-04-17 20:48:48 +03:00
Alexandr Stelnykovych 631103a4bd Revert "Update dependencies in UI projects"
This reverts commit f1a68c9323.
2026-03-12 15:02:38 +02:00
Alexandr Stelnykovych 4a4b3eacb3 Bump version 2.1.8 2026-03-11 10:26:03 +02:00
Alexandr Stelnykovych f1a68c9323 Update dependencies in UI projects
```
cargo update
npm audit -fix
```
2026-03-11 10:13:41 +02:00
Alexandr Stelnykovych 1465fe49af feat(UI/notifications): add "in-app-only" action visibility
Actions with visibility "in-app-only" are shown in the UI but skipped
when displaying system-level notifications (Tauri/OS). Updates Go,
TypeScript/Angular and Rust projects accordingly.
2026-03-10 00:12:02 +02:00
Alexandr Stelnykovych 939010a6ef feat(interop/ivpn): show compatibility notification with persistent suppress option
When Portmaster connects to the IVPN Client, display an info notification
informing the user that IVPN connections are allowed and that DNS will be
handled by Portmaster's local resolver when configured.

The notification includes a "Do not notify me anymore" action that
permanently suppresses future notifications by writing a marker record to
the core database. The check runs before showing the notification on each
subsequent connection.

The "Reset Notification States" API endpoint (and matching UI menu item)
now also clears the IVPN suppression record alongside the broadcast states,
so all suppressed notifications can be restored at once.

- service/interop/ivpn: add notification.go with initAndShowNotification,
  isNotificationSuppressed, and suppressNotification
- service/interop/ivpn/ivpn.go: show notification on connect if not suppressed
- service/broadcasts/api.go: extend reset-state handler to also delete the
  IVPN suppression record; update endpoint name and description
- desktop: rename "Reset Broadcast State" menu item and toast messages to
  "Reset Notifications State"
2026-03-09 22:16:04 +02:00
Alexandr Stelnykovych e395dafa14 feat(UI/notifications): add ActionVisibility for conditional action display
Add a `Visibility` field to the `Action` struct allowing actions to be
hidden in the compact notification view and only shown when the user
expands the full notification (value: "detailed").

- base/notifications: add `ActionVisibility` type and `ActionVisibilityDetailed`
  constant to `Action` struct
- notifications.types.ts: expose `Visibility` field on the frontend `BaseAction`
  interface
- notification-list.component.html: filter out `detailed` actions in the
  compact list view
- generic-setting.ts: set default `Visibility: ''` on the inline UI action
2026-03-09 18:12:42 +02:00
Alexandr Stelnykovych 2d7d0323b0 feat(VisualStudio Code): add launch configurations 2025-12-17 14:08:24 +02:00
Alexandr Stelnykovych b5cb006937 Bump version 2.1.7 2025-12-09 23:35:06 +02:00
Alexandr Stelnykovych d635db77c2 Improve pause info display and error handling 2025-11-26 13:01:24 +02:00
Alexandr Stelnykovych 4913147dd5 (UI) minor update of update pause notification messages 2025-11-21 14:07:57 +02:00
Alexandr Stelnykovych 139610b99d feat(UI): enhance pause info display in system tray menu and reorganize menu item positions
https://github.com/safing/portmaster/issues/2050
2025-11-10 15:14:20 +02:00
Alexandr Stelnykovych 4d58f68fde feat(UI): enhance SPN pause menu to allow time modification while paused 2025-11-07 16:53:01 +02:00
Alexandr Stelnykovych b9cce33113 UI: Removed sources for "runtime:subsystems/" status API calls
It looks like they are not used anymore and replaced by "runtime:system/status"
2025-11-07 16:50:18 +02:00
Alexandr Stelnykovych fecb42a691 UI: update SPN pause menu items and add spnEnabled state management
https://github.com/safing/portmaster/issues/2050
2025-11-06 18:42:24 +02:00
Alexandr Stelnykovych 7709a6600c feat: pause and resume functionality improvements + UI
https://github.com/safing/portmaster/issues/2050
2025-11-05 18:36:52 +02:00
Alexandr Stelnykovych c063bda700 feat(WIP): add pause and resume functionality for Portmaster/SPN
https://github.com/safing/portmaster/issues/2050
2025-10-24 18:15:27 +03:00
Alexandr Stelnykovych 8190e66524 Merge pull request #2040 from safing/feature/2039-UI-auto-reload-connections
Feature: UI auto reload connections
2025-10-18 00:04:44 +03:00
Alexandr Stelnykovych 1ebac535af minor refactoring 2025-10-18 00:01:01 +03:00
Alexandr Stelnykovych 998865efe2 Merge pull request #2042 from safing/fix/2041-UI-crash-loading-grouped-connections
fix: UI bug: when loading grouped connections from 'future'
2025-10-17 23:51:19 +03:00
Alexandr Stelnykovych 303b26f679 npm audit fix 2025-10-17 22:36:21 +03:00
Alexandr Stelnykovych a8e84d6d28 refactor(UI): remove unnecessary reload intervals from settings 2025-10-17 22:01:24 +03:00
Alexandr Stelnykovych 2dc2193587 feat: add manual trigger for lastReloadTicker updates
Add Subject-based manual trigger to immediately update "Last reload X ago" display when search completes, instead of waiting up to 2 seconds for next interval tick.
2025-10-15 17:43:02 +03:00
Alexandr Stelnykovych ae2e1e5659 fix: UI bug: when loading grouped connections from 'future'
STR:

1. Network Activity View
2. Set "Search History" From/To dates in the future
3. Set "Group By" Domain
Observed Result:
- Infinite “Loading connections…” status.
- The UI remains unresponsive to any changes in connection filters or reload actions.

https://github.com/safing/portmaster/issues/2041
2025-10-15 17:17:47 +03:00
Alexandr Stelnykovych 54fe389c9d UI: skip auto-reload for historical data queries
https://github.com/safing/portmaster/issues/2039
2025-10-15 16:13:55 +03:00
Alexandr Stelnykovych 153768fb21 UI: Automatic reloading of the connections list
https://github.com/safing/portmaster/issues/2039
2025-10-15 15:23:11 +03:00
Alexandr Stelnykovych a66544959c Bump version 2.0.25 2025-09-05 11:17:28 +03:00
Alexandr Stelnykovych 74f549e562 Revert "ui(angular): dependency security cleanup"
This reverts commit 2893d68383.
2025-09-04 15:33:49 +03:00
Alexandr Stelnykovych 2893d68383 ui(angular): dependency security cleanup
Mitigate critical transitive vulnerabilities.
No functional app changes; runtime behavior unchanged.
2025-09-04 13:01:46 +03:00
Alexandr Stelnykovych a652c8bce3 Bump version 2.0.24 2025-08-05 16:45:14 +03:00
Alexandr Stelnykovych bf8da732b9 Bump version 2.0.23 2025-07-14 11:25:04 +03:00
Alexandr Stelnykovych 7946568b63 Bump version 2.0.22 2025-06-27 13:05:59 +03:00
Alexandr Stelnykovych d5c1a5c3f6 fix(UI): remove search highlight markup from merge profile names
https://github.com/safing/portmaster/issues/1490
2025-06-27 12:45:58 +03:00
Alexandr Stelnykovych 0c2dfbc489 Bump version 2.0.21 2025-06-20 16:35:25 +03:00
Alexandr Stelnykovych f7dd9825be (UI): Add endpoint check to TauriHttpInterceptor for non-API requests 2025-06-19 17:26:52 +03:00
Alexandr Stelnykovych 1292fd7dae Bump version 2.0.20 2025-06-09 10:26:27 +03:00
Alexandr Stelnykovych 93f87f4dc4 refactor(UI; tauri-websocket): Simplify Tauri WebSocket connection by removing NgZone dependency and adding inactivity timeout handling 2025-06-09 10:17:45 +03:00
Alexandr Stelnykovych 795d99cc12 (UI; tauri-http): Improve body handling in send_tauri_http_request for various types 2025-06-06 18:46:05 +03:00
Alexandr Stelnykovych bd12a784c2 (UI; tauri-websocket): Enhance error handling and connection management in WebSocket implementation 2025-06-06 18:45:13 +03:00
Alexandr Stelnykovych 5c46ef0d85 (UI; tauri-websocket): Enhance WebSocket connection handling 2025-06-05 14:55:51 +03:00
Alexandr Stelnykovych 2c1de8c51e Bump version 2.0.19 2025-06-03 15:59:14 +03:00
Alexandr Stelnykovych cb39e11b32 fix(UI; tauri-websocket): Enhance WebSocket connection handling with observers and improved error management 2025-06-03 14:24:29 +03:00
Alexandr Stelnykovych 774a83dc33 Bump version 2.0.17 2025-05-28 13:20:05 +03:00