修复: 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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user