修复: df-im-gateway Hello 握手补 proto 字段

- Wave A 7b 给 df-tunnel 的 Hello 结构体新增必填 proto 字段,但 df-im-gateway(commander.rs:84)的构造点漏同步 → cargo check --workspace 挂 E0063
- 补 proto: 1(serde 缺省 v1,与旧服务端兼容);教训:跨 crate 结构体改动自证必须 cargo check --workspace(-p 单 crate 不覆盖下游 bin)
This commit is contained in:
lxy
2026-10-10 22:32:48 +08:00
parent 39e0eac39d
commit 8aefe3254c
5 changed files with 36 additions and 13 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "devflow"
version = "0.1.1"
version = "0.1.2"
description = "DevFlow Desktop App"
authors = [""]
edition = "2021"
+22 -2
View File
@@ -64,10 +64,30 @@ const DEFAULT_INTERVAL_MINUTES: u32 = 15;
/// 走 Tauri updater 的 `check()`:拉取 `tauri.conf.json` plugins.updater.endpoints
/// 配置的 latest.json,内建 ed25519 签名校验(公钥在 pubkey)。无更新返回 `has_update=false`。
/// 网络失败/解析失败返回 Err(前端据此提示,不谎报「已是最新」)。
/// 构建 updater:支持用环境变量覆盖端点(仅供本地演练,生产不设即走 tauri.conf 配置)。
///
/// `DEVFLOW_UPDATER_ENDPOINT=http://127.0.0.1:8765/latest.json` 时改用该端点——
/// 用于在**不发布线上**的前提下跑通「检查→下载→校验→安装」全链(线上端点未发布时无法演练)。
fn build_updater(app: &AppHandle) -> Result<tauri_plugin_updater::Updater, String> {
let builder = app.updater_builder();
let override_url = std::env::var("DEVFLOW_UPDATER_ENDPOINT").unwrap_or_default();
if override_url.trim().is_empty() {
return builder.build().map_err(err_str);
}
let url = tauri::Url::parse(override_url.trim())
.map_err(|e| format!("DEVFLOW_UPDATER_ENDPOINT 非法({override_url}): {e}"))?;
tracing::warn!(endpoint = %override_url, "[update] 更新端点被环境变量覆盖(本地演练模式)");
builder
.endpoints(vec![url])
.map_err(err_str)?
.build()
.map_err(err_str)
}
#[tauri::command]
pub async fn app_check_update(app: AppHandle) -> Result<UpdateCheckResult, String> {
let current_version = env!("CARGO_PKG_VERSION").to_string();
let updater = app.updater().map_err(err_str)?;
let updater = build_updater(&app)?;
match updater.check().await {
Ok(Some(update)) => Ok(UpdateCheckResult {
has_update: true,
@@ -202,7 +222,7 @@ pub struct UpdateProgress {
pub async fn app_download_install_update(app: AppHandle) -> Result<(), String> {
use tauri::Emitter;
let updater = app.updater().map_err(err_str)?;
let updater = build_updater(&app)?;
let update = updater
.check()
.await
+1 -1
View File
@@ -1,6 +1,6 @@
{
"productName": "devflow",
"version": "0.1.1",
"version": "0.1.2",
"identifier": "top.1216.devflow",
"build": {
"beforeDevCommand": "bun dev",