sagitchu
fb798a4532
chore(frontend): refresh pnpm lockfile
2026-06-01 19:54:28 +08:00
sagitchu
a599f383f5
feat: add nftables forwarding mode
2026-06-01 19:47:26 +08:00
sagit
e1324b8c8c
fix: update dependabot vulnerabilities ( #505 )
...
* docs: add dependabot remediation design
* docs: add dependabot remediation plan
* fix: update backend pgx dependency
* fix: update frontend vulnerable dependencies
* fix: update gost quic dependencies
* fix: migrate gost dtls dependency
* fix: sync gost main dependencies
* fix: enable webtransport stream reset partial delivery
* fix: restore backend bcrypt dependency
2026-05-15 00:16:29 +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
bc8f2ec8a1
fix: use corepack prepare pnpm@10 for Docker build compatibility
...
- node:22-alpine + corepack + pnpm@11 hits ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING
- corepack enable pnpm@10 is invalid syntax; use corepack prepare + enable
- pnpm@10 avoids the build script approval issue entirely
- Verified: docker build, pnpm build, pnpm lint, go test all pass locally
2026-05-07 21:24:47 +08:00
sagitchu
ff6d46ddaf
fix: pin pnpm to v10 in Dockerfile to avoid v11 build script issues
...
pnpm v11 blocks build scripts by default and the onlyBuiltDependencies
config is difficult to set in Docker build context. Pin to pnpm@10.
2026-05-07 21:10:41 +08:00
sagitchu
73490a9be6
fix: use pnpm-workspace.yaml for onlyBuiltDependencies
...
Create pnpm-workspace.yaml inline in Dockerfile to allow
@tailwindcss/oxide build scripts in pnpm v11.
2026-05-07 20:55:42 +08:00
sagitchu
f307e7d5eb
fix: use .npmrc for pnpm onlyBuiltDependencies config
...
pnpm config set doesn't support onlyBuiltDependencies in global config.
Use .npmrc file instead.
2026-05-07 20:41:05 +08:00
sagitchu
ad33791a26
fix: approve @tailwindcss/oxide build script for pnpm v11
...
pnpm v11 blocks build scripts by default; explicitly allow
@tailwindcss/oxide via onlyBuiltDependencies config.
2026-05-07 20:24:17 +08:00
sagitchu
91d79b6b3a
fix: upgrade Node.js to 22-alpine for corepack/pnpm compatibility
...
node:20.19.0 + corepack + pnpm@11.0.8 hits ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING
2026-05-07 20:09:42 +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
sagit
c259645227
feat: implement user and forward max connection limit ( #461 )
...
* docs: add implementation plan for max conn limit
* feat: add CLimiters support for websocket reporter
* feat: add max_conn field to user and forward models
* feat: implement max conn limiter dispatching
* feat: add maxConn to user and forward CRUD API
* feat: add max conn UI to user management and forward rules
* fix: load MaxConn in get forward record and add e2e contract test for max conn limit
2026-04-23 17:35:39 +08:00
sagitchu
01b4c3e3eb
fix: add workbox-window as explicit dependency to resolve pnpm strict resolution in CI
2026-04-22 11:05:37 +08:00
sagitchu
e7c967df00
chore: migrate frontend package manager from npm to pnpm
2026-04-22 11:02:43 +08:00
sagitchu
6e60f5cfbd
fix: add visually hidden DialogTitle to resolve a11y warning and fix modal background
2026-04-22 09:21:47 +08:00
sagitchu
61dba0ae57
fix: remove trailing brace in tunnel.tsx to resolve CI error
2026-04-21 20:20:19 +08:00
sagitchu
f3d6366471
fix: increase kcp tunnel bandwidth limit and fix modal backgrounds
2026-04-21 20:16:58 +08:00
sagitchu
5107f59d94
fix: tolerate offline nodes when controlling forward services and editing tunnels
...
- controlForwardServices: skip offline nodes instead of failing entire operation,
so forward pause/resume/delete works when some entry nodes are offline
- onNodeOnline: always sync forward state on node reconnect (not just post-upgrade),
so forwards that changed status while a node was offline get synced
- add ListForwardIDsByNode repo method to sync all forwards (including paused)
- tunnel edit UI: allow deselecting already-selected offline nodes in
entry/chain/exit selectors, matching the backend's existing tolerance
2026-04-21 16:53:47 +08:00
sagitchu
431613cb6a
fix(frontend): listen to session changes so logout redirects to login page
2026-04-21 16:24:46 +08:00
sagitchu
a6b218f3ee
fix(frontend): increase sidebar background opacity to reduce grayness
2026-04-21 16:12:28 +08:00
sagitchu
d5d26d9cf9
fix(frontend): hide scrollbars on sidebar, modals, and secondary lists; fix diagnosis modal bg
2026-04-21 16:00:06 +08:00
sagitchu
30e1473f06
fix(traffic): fix flow counter inflation from TOCTOU race in agent traffic reporter
...
Replace read-then-subtract pattern in collectAndReport with atomic
swap-to-zero to eliminate race where AddTraffic increments counters
between snapshot and clearReportedTraffic, causing residual traffic
to accumulate indefinitely and inflate user flow counters.
Also add defensive check in processFlowItem to skip AddFlow when
forward no longer exists, and send DeleteService to clean up orphaned
agent services.
2026-04-21 14:32:08 +08:00