sagitchu
5cc91710c9
fix: clear recovered order load errors without hiding save warnings
2026-11-10 08:26:49 +08:00
sagitchu
2c8ca78923
fix: distinguish uncertain reorder transport results
2026-11-10 08:20:19 +08:00
sagitchu
229af5dbca
feat: add server-backed user and limit drag ordering ( #575 )
2026-11-10 08:19:55 +08:00
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
c794586cc7
fix(security): require patched Go and Node.js runtimes ( #566 )
2026-10-22 11:15:28 +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
2e845030de
fix: build frontend assets on native platform ( #553 )
2026-09-01 16:27:00 +08:00
sagit
2269f2e2d5
fix: include pnpm config in frontend image build ( #552 )
2026-09-01 15:48:54 +08:00
sagit
da7bef88f1
fix: harden panel updates and nftables deployment ( #551 )
...
Fix panel update deployment discovery and rollback safety, add nftables compatibility and atomic replacement, and restore reproducible frontend CI installs.
2026-09-01 15:37:33 +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
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