lbl
|
cd5b4431dc
|
feat: add unified Tauri desktop client and secure web access
|
2026-08-22 04:09:44 +08:00 |
|
lbl
|
0ccd045e78
|
feat(vnt-web): 新增 /api/version,顶栏版本号不再依赖组网状态
|
2026-08-22 01:38:57 +08:00 |
|
lbl
|
39a4e60d39
|
feat(vnt-web): 配置变化提示与停止交互优化
- /api/info 新增 config_changed:与启动时的配置快照对比,启动后配置被修改(或文件缺失/解析失败)时实例卡片显示「配置发生变化」徽章,重启后自动消失
- 停止操作增加「停止中」中间态:徽章脉冲提示、按钮区禁用,实例真正停止后卡片渐隐消失,失败时自动恢复
- 停止/重启/移除确认弹窗优先显示配置名称,兜底文件名
|
2026-08-22 01:27:39 +08:00 |
|
lbl
|
7513465b61
|
refactor(vnt-web): 前端重构为 Vite+Vue3+Pinia 工程并重新设计 UI
- 单文件 index.html 拆分为 vnt-web/ui(pnpm+Vite+Vue3 SFC+Pinia+Tailwind v4),构建产物输出到 static/
- UI 重新设计:浅色简洁风(可切换深色模式)、顶部导航、新增总览仪表盘首页
- 自定义弹窗/toast/确认框替换全部原生 alert/confirm,交互与过渡统一
- 响应式布局:移动端汉堡导航,表格与卡片自适应
- 实例卡片移除日志按钮;启动组网默认选中第一个配置
|
2026-08-22 00:53:51 +08:00 |
|
lbl
|
292d54fbc3
|
feat(vnt-web): 支持同时启动多个组网配置
- 后端实例状态从全局单槽改为按配置文件名隔离的 HashMap,每个实例持有
独立的状态机、启动日志与任务组管理器
- 启动/停止/重启/信息/对端/路由/启动状态接口均按 file_name 维度隔离,
新增 GET /api/instances 实例列表与 DELETE /api/instance 移除已停止实例
- 启动前冲突检测:device_id 相同(同服务器同组网范围内)或 tunnel_port
显式相同则拒绝启动
- vnt_current_config.txt 改为每行一个配置名,重启后自动恢复所有运行中实例
- 前端重做为多实例模型:实例卡片列表、按实例隔离的启动日志弹窗、
peers/routes 顶部实例切换器、配置列表运行状态标记、已停止实例可移除
|
2026-08-21 21:31:48 +08:00 |
|
lbl
|
061135fb95
|
fix(vnt-web): save_config 强制 .toml 后缀
问题:list_configs 只列出 *.toml 文件(service_http.rs:812),而
save_config 对文件名不做后缀校验,可保存出列表中不可见、无法通过
Web 界面再次选择的配置文件。
修复:新增 normalize_config_file_name——无扩展名时自动补 .toml,已是
.toml 保持不变,其他扩展名直接拒绝并返回错误提示。
测试:新增 test_normalize_config_file_name 覆盖补后缀/保持不变/拒绝
.txt/.json 三种情况,cargo test -p vnt-web 4 个测试全部通过。
|
2026-08-21 03:11:14 +08:00 |
|
lbl
|
ca72f2b3d4
|
修复 Web 状态机在启动中停止时卡死
- 启动任务(含注册重试循环)此前是裸 tokio::spawn,stop 打不断:
服务器不可达时点击停止,状态永远卡在 Starting 或显示 Running 的死网络。
现在保存 JoinHandle,stop/restart 时先 abort_start_task 中断它,
defer 守卫负责把状态迁移到 Stopped
- 清理任务此前 spawn 在自己所等待的 task_group 里,形成自引用等待,
网络自行停止时永不返回;改为在任务组外等待
- 顺带修复 TaskGroup::wait_all_stopped 的丢失唤醒竞态:
notified() 先 enable 注册再检查条件
- 补充 Starting 状态停止迁移、任务自然结束唤醒两个测试
|
2026-08-20 22:21:54 +08:00 |
|
lbl
|
bd79844849
|
修复 Web 静态资源目录穿越
static_handler 此前直接 join 未归一化的 URI 路径,
curl --path-as-is .../../../ 可读取进程权限内任意文件。
改为逐组件校验:仅允许 Normal/CurDir 组件,拒绝 ..、根路径、盘符。
补充路径校验单元测试。
|
2026-08-20 22:16:01 +08:00 |
|
lbl
|
7d481560e3
|
规范依赖管理并适配 rand 0.10
- tcp_ip 从 git 依赖切换为 crates.io 0.2(IpStackConfig 改用 builder)
- 公共依赖收拢到 workspace.dependencies 统一版本
- 移除 release profile 的 panic=abort(避免 vnt-jni 中止宿主 JVM)
- vnt-jni 升级 edition 2024(no_mangle 改为 unsafe(no_mangle))
- vnt-ipc 显式声明 tokio features
- 适配 rand 0.10:random_range 移至 RngExt,choose_multiple 改名 sample
- 修复 clippy 警告(type_complexity/collapsible_if/ptr_arg)
|
2026-08-20 20:58:07 +08:00 |
|
lbl
|
12f7eed8a5
|
记录具体路径的丢包率
|
2026-02-28 18:56:11 +08:00 |
|
lbl
|
2aa423062e
|
支持设置端口
|
2026-02-28 17:49:11 +08:00 |
|
lbl
|
5a31ad89f4
|
jni
|
2026-02-24 18:31:40 +08:00 |
|
lbl
|
4708ed2b16
|
注册失败时重试
|
2026-02-24 16:08:18 +08:00 |
|
lbl
|
b4301a8106
|
v2
|
2026-02-10 18:20:39 +08:00 |
|