sagit
7e81e1c65c
fix(panel): make self-upgrades durable and observable ( #572 )
...
Persist upgrade jobs and progress across backend restarts; preserve Compose identity and database mounts, isolate backups, and fail safely on uncertain recreation. Add frontend recovery handling and lifecycle/permission regressions.
2026-11-09 20:24:03 +08:00
sagit
a784350eaf
fix(monitor): unify realtime state and ignore stale requests ( #571 )
2026-11-09 18:21:18 +08:00
sagit
fadc2b6c12
fix(relay): authenticate endpoints and fail closed on missing routes ( #569 )
...
* fix(relay): authenticate endpoints and fail closed on missing routes
* fix(tunnel): retain chains until receiver replacement is acknowledged
* docs: record final relay security review and validation
2026-11-08 23:46:18 +08:00
sagit
46bfb86c1b
fix(user): revoke tunnel access when disabling users ( #568 )
...
Revoke tunnel grants and pause each forwarding entry without self-healing missing services. Continue healthy nodes and other forwards after failures, aggregate pending nodes for retry, and show persistent partial-disable feedback.
Related: #562
2026-11-01 18:03:07 +08:00
Sebastian Luo
dd3ed4e284
fix(frontend): keep node id when upgrading from list view ( #567 )
...
In list view, the per-node upgrade button set upgradeTargetNodeId and then
called openUpgradeModal("single") without an id, which resets the target to
null. handleConfirmUpgrade then matched neither branch, so "确认升级" sent no
request and the modal stayed open. Pass node.id the same way grid view does.
Co-authored-by: Sebastian Luo <sebastianluo@Sebastians-MacBook-Pro.local >
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 18:18:20 +08:00
sagit
d9303032ca
feat: support username-free passkey login ( #564 )
2026-09-30 21:12:18 +08:00
sagit
861d61239a
feat: support secure passkey login ( #561 )
...
Add WebAuthn passkey enrollment and login for issue #536 , with trusted origin configuration, user verification, single-use challenges, and documented deployment and recovery behavior.
2026-09-30 19:23:10 +08:00
sagit
129fa0aa4c
fix(frontend): constrain service monitor records modal ( #557 )
2026-09-24 16:12:03 +08:00
sagit
b4c2989285
Merge branch 'main' into codex/issues-548-549-traffic-units
2026-09-24 15:38:49 +08:00
sagitchu
5d60c4fbe1
feat: support adaptive traffic units and precise quotas
2026-09-24 15:33:53 +08:00
sagitchu
62c56e0a79
feat: add mode-specific wallpapers and installer regression coverage
2026-09-24 14:59:52 +08:00
sagit
5041c722c9
fix: harden license lifecycle ( #547 )
2026-08-13 09:25:05 +08:00
sagit
0e24b53a5b
fix: preserve license state across panel upgrades ( #544 )
2026-08-11 17:04:20 +08:00
sagit
538e64ffc0
Fix modal scroll position jumps ( #542 )
...
Preserve page scroll positions while Radix modals acquire focus and forward the dialog overlay ref correctly.
2026-08-07 22:38:02 +08:00
sagit
9e6f80019d
feat(monitor): show backup nodes in topology ( #538 )
2026-08-03 14:14:01 +08:00
sagit
cbe2fc492e
feat(monitor): show backup tunnel latencies ( #535 )
...
Closes #508
2026-08-03 10:15:22 +08:00
sagit
e112d81697
fix: bound and configure tunnel quality probes ( #533 )
...
Closes #528 and #532 .
2026-07-31 15:37:26 +08:00
sagit
11a27d3c67
feat: add per-rule traffic reset ( #526 )
...
Reset only the selected forwarding rule's displayed upload/download usage without affecting user totals, tunnel quotas, historical statistics, nftables baselines, or running services.
Closes #523
2026-07-10 17:05:20 +08:00
sagit
82f6047506
fix(forward): split proxy protocol directions
...
Closes #520
2026-06-21 21:03:47 +08:00
sagitchu
a599f383f5
feat: add nftables forwarding mode
2026-06-01 19:47:26 +08:00
sagitchu
abf13bdac9
fix: close remaining security remediation gaps
2026-05-14 11:10:06 +08:00
sagitchu
bd13477fa3
fix: stop caching sensitive configs in browser
2026-05-14 00:34:52 +08:00
sagitchu
106a30bf9d
fix: tighten websocket auth and client cache handling
2026-05-14 00:24:56 +08:00
sagitchu
465815cf34
fix: harden auth, config access, and backups
2026-05-13 23:53:06 +08:00
sagitchu
25dfb84324
fix: panel self-upgrade helper not recreating containers
...
- Add --force-recreate --remove-orphans to docker compose up so helper
actually replaces running containers with newly pulled images
- Add upgrade.log file for post-mortem debugging when helper fails
- Add pre-flight validation for docker-compose.yml and .env
- Fix "立即升级" button permanently disabled by relaxing the disabled
condition so auto-check on click can fire
2026-05-07 19:51:18 +08:00
sagit
5ebd4c2a91
feat: add panel self-upgrade workflow ( #492 )
2026-05-06 17:58:01 +08:00
sagitchu
5d22d4cb06
fix: refine advanced settings layout
2026-05-04 17:25:58 +08:00
sagitchu
cdcdfd8ff0
fix: use custom probe targets for diagnostics
...
Move custom probe target controls into the tunnel advanced settings and reuse the configured target in tunnel diagnosis output.
2026-05-02 14:23:51 +08:00
sagitchu
0f3242bf11
fix: reject raw probe target whitespace
2026-05-01 23:54:31 +08:00
sagitchu
d97d91801d
fix: reject leading zero probe IPv4
2026-05-01 23:50:41 +08:00
sagitchu
727ef56c67
fix: improve probe target form feedback
2026-05-01 23:46:56 +08:00
sagitchu
a40150b136
fix: type tunnel probe target payloads
2026-05-01 23:42:21 +08:00
sagitchu
a923ec4785
fix: validate probe target port input
2026-05-01 23:39:14 +08:00
sagitchu
42c5492c1d
feat: add tunnel probe target UI
2026-05-01 23:36:14 +08:00
sagitchu
e5acc49186
feat: show current best exit state
2026-05-01 13:30:46 +08:00
sagit
3f3159aafd
Add best exit selection ( #486 )
...
* docs: add best exit selection design
* feat: add best exit selection
2026-05-01 08:12:17 +08:00
sagitchu
023be27287
feat: add monitoring retention controls
2026-04-28 11:41:07 +08:00
sagitchu
bd27b94909
fix: omit per-IP speed payload for users
2026-04-27 23:34:35 +08:00
sagitchu
a5a500bc0f
feat: add per-IP limit controls
2026-04-27 23:17:02 +08:00
sagit
9f19d5fe15
fix: send valid announcement update payload
2026-04-27 15:34:47 +08:00
sagit
2ca3849917
fix: apply proxy protocol and max connection settings
2026-04-27 10:54:25 +08:00
sagit
a625884d61
fix: remove unwanted hover underline from forward advanced settings ( #473 )
...
* fix: remove forward advanced settings hover underline
* fix: clear frontend lint warnings
2026-04-26 19:12:38 +08:00
sagit
799bb66fe5
feat: add local remote address toggle ( #472 )
2026-04-26 16:30:05 +08:00
sagit
3f374df724
fix: 保留用户/规则高级设置并增强节点运行时恢复 ( #468 )
...
* fix: 用户编辑时 maxConn 字段未正确回填
- User 接口添加 maxConn 类型定义
- handleEdit 中回填 maxConn 值
- normalizeUserItem 添加 maxConn 字段处理
解决编辑用户时最大连接数显示为 0 的问题
* fix: 保留转发设置并增强节点运行时恢复
2026-04-25 18:12:13 +08:00
sagit
9b923a2d0b
fix: remove duplicate maxConn input in user form ( #467 )
2026-04-24 21:56:46 +08:00
sagit
d9f28f53c7
style: move advanced settings to bottom and optimize UI ( #466 )
2026-04-24 19:10:36 +08:00
sagit
1d08a1ccfc
fix: ensure page refresh to login page upon logout ( #465 )
2026-04-23 20:43:27 +08:00
sagit
db25ba2cbe
style: move maxConn and speed limit inputs to advanced settings accordion ( #464 )
2026-04-23 20:29:52 +08:00
sagit
a498067261
fix: properly initialize maxConn in forward rules ( #463 )
...
* fix: initialize maxConn in forward creation and edit forms
* fix: add maxConn to Forward interface
2026-04-23 20:23:18 +08:00
sagit
b5922dccf2
fix: include maxConn when submitting forward forms ( #462 )
...
* fix: frontend missing maxConn setting during forward creation
* docs: check off plan
2026-04-23 20:11:20 +08:00