sagit
101fd5805a
feat(ui): add persistent custom background image upload feature ( #415 )
2026-04-05 17:44:19 +08:00
sagit
938e9ff4fd
feat(ui): redesign with transparent liquid glass ( #414 )
...
* docs: add design spec for iOS 26 Liquid Glass UI redesign
* docs: add implementation plan for iOS 26 Liquid Glass UI redesign
* feat(ui): add liquid glass CSS variables and update root layouts
* feat(ui): update Card and Modal components to iOS 26 Liquid Glass style
* feat(ui): redesign dashboard page to Liquid Glass style
* feat(ui): redesign node management page cards and charts
* feat(ui): redesign monitor page to Liquid Glass style
* feat(ui): redesign group and panel-sharing cards to Liquid Glass
* feat(ui): redesign settings and user components to Liquid Glass
* feat(ui): redesign profile and auth pages to Liquid Glass
* fix(ui): revert to LineChart to fix compilation issues
* refactor(ui): extract dashboard user header and cleanup admin layout
* feat(ui): refine monitor page hero metrics and fix build
* fix(ui): real data for monitor hero metrics and card padding adjustments
* fix(ui): apply global card padding and fix index layouts
* feat(ui): implement liquid-glass-react for all Card components
* fix(ui): resolve liquid-glass-react rendering issues causing invisible text and broken layout
* fix(ui): native CSS liquid-glass effect replacing NPM package
* fix(ui): cleanup duplicate closing tags and complete liquid glass tables
* fix(ui): apply perfect rounded corners to list views and table headers in non-compact mode
* fix(ui): apply liquid glass styling to grouped rules view in forward page
* fix(ui): re-implement liquid-glass natively to prevent text distortion and remove package dependency
* fix(ui): remove mouse distortion and preserve proper liquid glass texture
* fix(ui): remove svg filter causing text distortion and replace with pure css liquid glass
* fix(ui): apply properly scoped border radius to table headers
* fix(ui): remove hardcoded bg-default-50/60 from TableHeader
* fix(ui): apply global liquid glass styling and transparent overlays to all modals and dialogs
* fix(ui): remove absolute/relative class conflicts hiding Dialog modales and implement pure transparent layout
* feat(ui): apply global liquid glass styling to cards, buttons, and diagnosis modals
2026-04-05 13:22:12 +08:00
sagit
ebf412b9df
fix(ui): mobile modal scroll behavior ( #412 )
...
* docs: add announcement popup design spec
* docs: add announcement popup implementation plan
* fix(ui): change modal scroll behavior to inside for mobile screens
Fixes layout issue where modal footer and action buttons are pushed off screen on mobile devices.
2026-04-04 19:34:40 +08:00
sagit
9a85363e44
feat: Announcement Popup Notification ( #411 )
...
* docs: add announcement popup design spec
* docs: add announcement popup implementation plan
* feat(api): include update_time in announcement response
* feat(ui): add update_time to AnnouncementData interface
* feat(ui): create AnnouncementModal component
* feat(ui): manage announcement modal state in dashboard hook
* feat(ui): add announcement modal to dashboard layout
2026-04-04 13:00:11 +08:00
sagit
7b9b59644e
fix(ui): restore missing UI transition animations ( #408 )
...
- Wrap `Routes` with `AnimatePresence` to enable framer-motion page transition exit animations and fix harsh route changes.
- Replace `tw-animate-css` with `tailwindcss-animate` to properly bundle transition classes (like `animate-in`, `animate-accordion-down`) under Tailwind v4.
- This restores animation to modals, accordions, and all page navigations.
- Fix accessibility warning on table cell span element.
Fixes #283
2026-04-03 20:55:43 +08:00
sagitchu
1b3ae44940
feat: show license expiry date when commercial license is activated
2026-04-03 17:37:05 +08:00
sagitchu
513591fe67
feat(ui): conditionally render brand settings inside commercial license card
2026-04-03 17:27:48 +08:00
sagitchu
b892b2640e
feat(ui): display tunnel traffic ratio in forward list
2026-04-03 16:18:01 +08:00
sagit
49ab2915ee
feat: commercial white-label support ( #403 )
...
* fix: increase updateTunnel timeout to 120s
Editing tunnel entry nodes triggers forward sync to all entry nodes.
If nodes are offline or many forwards exist, the sync can exceed
the default 30s timeout. Match the timeout used by other heavy
operations like batchDeleteTunnels.
* docs: add commercial white-label design spec
* docs: add commercial white-label implementation plan
* feat: add license activation endpoint and authorization check for commercial config keys
* feat: add frontend api and update site config state for license
* feat: conditionally hide flvx footer brand
* feat: ui settings for commercial white-label and license activation
* fix: add missing licenseActivateRequest and fix GetConfig in handler.go
* docs: add keygen.sh license integration design spec
* docs: add keygen.sh integration implementation plan
* feat: add machine fingerprint generation
* feat: add keygen.sh api client
* feat: integrate keygen into license activation endpoint
* feat: add periodic license validation job
* fix: remove accidentally leaked dash kernel test codes that caused compilation failures
* fix: correct keygen validation scope and binding logic
* feat: hardcode Keygen.sh account ID
* fix: relax strict validation matching after successful machine activation
2026-04-03 07:23:22 +00:00
sagit
8b9cdef0e4
feat: add configurable GitHub proxy settings ( #401 )
...
* docs: add GitHub proxy config design spec
* docs: add GitHub proxy config implementation plan
* feat(backend): use configurable github proxy for node upgrades
* feat(backend): use configurable github proxy for node install command
* feat(frontend): add github proxy config settings
* feat(script): support configurable github proxy in installer flows
Honor custom GitHub mirror settings across interactive and env-driven installer/update paths so script downloads match the panel configuration. Add shell regressions to lock down proxy prompting, URL recomputation, and non-interactive fallback behavior.
2026-04-01 15:59:44 +08:00
sagit
3c10727e08
feat(config): add floating save button (FAB) for issue #266 ( #400 )
...
* docs: add floating save button design spec for issue #266
* docs: add implementation plan for floating save button
* feat(config): add floating save button (FAB) for issue #266
2026-04-01 01:50:32 +00:00
sagit
87722e461c
feat(monitor): hop-by-hop latency metrics for forwarding chain ( #394 )
2026-03-29 18:59:06 +08:00
sagitchu
d128d2f657
feat: move tunnel quality monitor toggle from /settings to /config
2026-03-29 15:47:10 +08:00
sagitchu
103290ed35
fix: 节点离线时允许删除隧道关联,但禁止新增隧道 ( #342 )
...
- prepareTunnelCreateState: 更新隧道时允许已关联的离线节点,仅拒绝新增的离线节点
- syncForwardServicesWithWarnings: 离线节点跳过下发并返回警告,不再硬性失败
- applyTunnelRuntime: 所有节点类型均支持离线错误延迟处理
- 前端 validateTunnelForm: 编辑模式下跳过离线节点验证
Closes #342
2026-03-28 19:30:30 +08:00
sagitchu
e69082a596
fix(monitor): add tunnel quality detection toggle
...
Allow admins to disable real-time tunnel quality probing from settings so the monitor UI and backend probe loop stop together.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 20:08:40 +08:00
sagitchu
a353faaa71
chore: release 2.1.9-rc3 (fix service monitor stale detection)
2026-03-22 19:05:31 +08:00
sagitchu
3826cb02c0
chore: update monitor rendering and release rc2
2026-03-22 17:55:10 +08:00
sagitchu
aafdb78482
feat: node logo by distro types and official icons
2026-03-22 13:33:37 +08:00
sagit
8ebde9dca9
feat: node OS logo and UI fixes ( #367 )
...
* chore: update AGENTS.md with next release info
* feat: node OS logo, UI rate fix, and monitor trend updates
2026-03-22 05:03:04 +00:00
sagitchu
ca3a643ef7
feat: optimize node monitoring and system info
2026-03-21 18:40:28 +08:00
sagitchu
6e3d604618
feat: implement tunnel quality polling and service monitor tuning to 1s/30s intervals
2026-03-21 17:28:52 +08:00
sagitchu
bab4371ba7
fix: renewal reminder styling and position
2026-03-21 10:02:52 +08:00
sagitchu
c137bdcc63
fix: theme persistence and update version to 2.1.9-beta9
2026-03-20 23:37:35 +08:00
sagitchu
bd4e1f66cb
feat: implement theme selection and system integration
2026-03-20 22:47:49 +08:00
sagitchu
27c13d6c47
chore: release 2.1.9-beta7
2026-03-20 22:15:51 +08:00
sagit
addf8e2089
feat: implement Uptime Kuma style historic quality bars for tunnel monitor ( #355 )
2026-03-20 14:17:16 +08:00
sagit
75cd60ea3e
feat(ui): update list view tables styling for Node, Monitor, User, Tunnel, and Limit ( #354 )
2026-03-20 13:15:15 +08:00
sagitchu
ce9abf457f
fix(frontend): recharts Legend export and implicit any in monitoring
2026-03-20 12:36:48 +08:00
sagitchu
3c57a5ac84
feat: periodic tunnel quality probing and monitoring
2026-03-20 12:34:09 +08:00
sagitchu
6b1264ae90
feat: align node and user list view UI
2026-03-20 11:01:37 +08:00
sagitchu
08bc91e5c9
feat(ui): add list view for node and user pages
2026-03-20 10:00:56 +08:00
sagitchu
bc75ed745d
feat: monitor tunnel top level
2026-03-19 15:44:25 +08:00
sagit
db21ce6bb4
feat: implement monitor page list view ( #345 )
2026-03-19 13:54:12 +08:00
sagit
6458b5af00
feat: beautify monitor tab and improve user page ( #343 )
2026-03-18 22:46:02 +08:00
sagit
555039e028
feat: monitor page redesign and node card cleanup ( #340 )
2026-03-18 18:57:23 +08:00
sagitchu
58d29b440a
fix(ci): remove unused variables to fix TS build
2026-03-18 17:39:09 +08:00
sagitchu
6a3a9add08
feat: redesign monitor view
2026-03-18 17:21:39 +08:00
sagitchu
6d986524f1
fix: remaining changes in forward
2026-03-18 15:51:27 +08:00
sagitchu
92a8fed796
feat: redesign monitor page to nezha-style server grid
2026-03-18 15:48:48 +08:00
sagitchu
5972378897
fix: resolve merge conflicts and fix monitoring bugs
...
- Add missing 'uptime' field to NodeMetricApiItem type definition
- Fix WS message handling: non-UpgradeProgress typed messages now
broadcast via broadcastInfo instead of being silently dropped
- Strengthen looksLikeSystemInfoMessage heuristic to require ≥3
matching keys to avoid false positives
- Fix tab/space indentation inconsistency in admin.tsx useEffect
- Remove duplicate method declarations from merge (repository_control,
mutations)
- Update tunnel_entry_sqlite_test to use renamed Tx suffix function
2026-03-18 14:12:47 +08:00
sagitchu
455900ba41
Merge branch 'main' into opencode/shiny-falcon
...
# Conflicts:
# go-backend/internal/http/handler/mutations.go
# go-backend/tests/contract/issue313_entry_port_conflict_contract_test.go
2026-03-18 14:09:00 +08:00
sagit
ea21a7deef
fix(user): improve tunnel selector contrast in dark mode ( #336 )
2026-03-18 04:10:32 +00:00
sagit
9b98194a0a
feat(tunnel): add delete rule resolution settings ( #335 )
...
- Add backend API for tunnel delete rule resolution (allow, deny, confirm)
- Add contract tests for delete resolution endpoint
- Add frontend API types and endpoints for delete resolution
- Add tunnel delete resolution settings UI with resolution mode selector
- Support per-tunnel and global delete resolution configuration
2026-03-18 10:05:03 +08:00
sagitchu
46a60376c4
Merge remote-tracking branch 'origin/main' into opencode/shiny-falcon
...
# Conflicts:
# vite-frontend/src/pages/node.tsx
# vite-frontend/src/pages/user.tsx
2026-03-17 15:18:25 +08:00
sagitchu
9de240f034
feat(monitoring): add node/tunnel metrics, service monitors, and health checks
...
- Add NodeMetric/TunnelMetric/ServiceMonitor models and repository methods
- Implement metrics ingestion service with per-minute bucket aggregation
- Add health checker for node connectivity monitoring
- Wire node metrics from WebSocket SystemInfo messages
- Add tunnel metrics ingestion from flow upload endpoint
- Create monitoring REST API endpoints for nodes, tunnels, services
- Implement service monitor CRUD and execution (TCP/ICMP checks)
- Add MonitorPermission for non-admin access control
- Create frontend monitor page with node/tunnel/service views
- Add tunnel metrics ingestion from agent flow reports
- Include schema migration for tunnel_metric unique index
- Fix tunnel entry port conflict validation to use transaction
Entire-Checkpoint: 030821a7c8e3
2026-03-17 14:59:09 +08:00
sagit
6c7b4817f9
fix(forward): stabilize selection in non-compact grouped view
...
Prevent cascading checkbox toggles and scope select-all per tunnel group; update grouped styling to neutral gray.
2026-03-16 12:04:29 +00:00
sagit
7507507fd9
fix(forward): show all users by default in non-compact mode
...
Restore 2.1.8-beta9 admin default filtering when compact mode is off; keep compact mode focused on self.
2026-03-16 10:06:41 +00:00
sagit
ff94406945
feat(node): restore info button popover style for remark/renewal info ( #327 )
...
Restore the 2.1.8-beta9 style of displaying node remark and renewal
info via an info button (ℹ️ ) in the CardHeader with a hover popover,
instead of inline display in the CardBody.
- Add infoPopoverPlacement state and updateInfoPopoverPlacement callback
- Add info button with hover popover showing expiry reminder and remark
- Restore drag handle with touch support and responsive visibility
- Remove inline info display from CardBody
2026-03-16 11:42:23 +08:00
sagitchu
4a8c400944
fix: remove tunnel name and ratio from card view (shown in group header)
2026-03-16 10:57:56 +08:00
sagit
18e7ec94a8
fix: restore copy functionality for entry/target fields in non-compact table view and hide redundant tunnel name in grouped card view ( #325 )
2026-03-16 02:36:06 +00:00