Skip to content

v2.3.0-beta.3 (Build 26F01)

Pre-release
Pre-release

Choose a tag to compare

@tuyangJs tuyangJs released this 20 Jun 15:39
  • YAML 存储 API 扩展

    • 新增 yaml_set_str / yaml_get_str:强制字符串类型存储与读取
    • 新增 yaml_get_all:读取整个 YAML 文件内容
    • 新增 yaml_has:检查指定路径是否存在
    • 新增 yaml_delete / yaml_clear / yaml_delete_file:路径删除、文件清空、文件删除
    • 新增 yaml_keys:列出指定路径下的所有 key
    • 新增 yaml_len:返回数组长度或对象 key 数量
  • YAML 路径语法增强

    • yaml_get / yaml_set 支持数组下标语法 [N]
    • yaml_get 支持两阶段查询:buffer 不足时返回所需字节数(含 NUL)
  • 窗口事件拦截

    • drag-drop Enter 事件支持同步拦截,宿主返回非空指针拒绝拖拽
    • drag-drop Drop 事件支持同步消费,宿主返回非空指针表示已处理
    • Over / Leave 保持异步通知
    • 无回调注册时行为不变(兼容现有逻辑)
  • IPC 通信优化

    • invoke 与广播消息共用发送路径,减少重复封装
    • 前端消息入口收敛到统一 dispatcher,取消多入口分发
    • 高频小事件合并发送:微任务批处理 flush,减少调度开销
    • 外部 jade.invoke / jade.on 调用方式不变,旧消息形态继续兼容
  • NTP时间获取

    • 新增 jade_ntp_now API,获取当前网络时间戳(UTC毫秒),北京时间需+8H
    • 支持传入自定义 NTP 服务器地址;传 NULL/空串时回退到内置服务器列表
    • 指定服务器时单次查询超时 3 秒,失败返回 -1(不回退内置列表)
  • 修复 YAML 中间节点覆盖问题:非映射且非空时返回 -2,不再覆盖

  • 修复 YAML 序列化失败时清空文件的问题:失败返回 -1,不写盘

  • 修复 YAML 非原子写入:改用临时文件 + rename,Windows 下增加重试

  • 修复 YAML 无文件锁问题:使用 CreateFileW + LockFileEx

  • 修复 YAML CString NUL 截断问题:失败时返回 -1

  • yaml_get / yaml_set 返回值新增负数错误码语义

    • -1 IO 错误 / -2 类型不匹配 / -3 目标已存在 / -4 格式解析失败
  • yaml_set 自动解析数值与布尔类型,yaml_set_num / yaml_set_bool 合并到 yaml_set

  • 迁移 serde_yamlserde_yml

  • jade_ntp_now 签名变更:新增 const char* ntp_server 参数(ABI 变更,旧调用传 NULL 即保持原行为)

  • 拆分 src/ffi/c_api.rs(约 4300 行)为 src/ffi/c_api/ 下的功能子模块(lifecycle / window / tray / dialog / yaml_store / system),对外导出的 C API 保持不变

  • build.rs 头文件生成增强:按子模块扫描 FFI 函数、递归扫描事件名常量;修复 cbindgen 类型未变化时误判失败导致头文件无法刷新的问题

  • jade.invoke 路径优化,预期提升 5% ~ 20%

  • 广播消息路径收敛,预期提升 20% ~ 60%

  • 高频小事件合并发送,消息数减少约 50% ~ 90%

收益最明显的场景:多窗口广播、高频状态同步、日志/进度/拖拽类小消息、大量连续触发的 UI 事件。\n\n---\n本版本的文档参考在 beta 目录中