LibreFang 发布稳定性与安全重大更新,修复了 SSRF、路径遍历、OAuth 数据逃逸、认证作用域等漏洞,并加入原子文件写入 fsync、SQLite 损坏主动暴露、并发写序列化等数据可靠性机制。新增托管配置模式和 20 分钟长音频转录功能。
474 个 PR,来自 5 位贡献者,时间范围从 v2026.7.31 至今。
此次发布是一次大规模稳定性与安全推进。我们封堵了数十个数据丢失风险点,锁死了 SSRF 漏洞,全面强化了 daemon 中的原子文件写入,并修复了大量此前静默失败或状态损坏的边缘场景。功能层面:为自托管部署带来了托管配置模式、支持长音频转录(不会再丢你 20 分钟的录音了),以及波兰语支持。性能方面:将大量阻塞 I/O 从异步 worker 中移出,并补上了姗姗来迟的 mutex poison 恢复机制——从此单个 panic 不会再让半个 daemon 瘫痪。
本版本修复了大量漏洞。我们在 skill/channel ID 中封堵了路径穿越漏洞,修复了链接上下文和 webhook 回调中的 SSRF 向量,对 OAuth 响应中的不受信任数据做了转义,并重新收紧了认证作用域,使非所有者无法探测其他 Agent 的会话。在数据层面:原子文件写入后现在会 fsync 父目录,对共享文件(如 secrets.env)的并发写入做了序列化,并验证每一条 SQLite 行解码——数据损坏会浮出水面而不是静默丢弃。凭证在导出前会统一做脱敏处理,桌面应用在卸载时也不再绕过 shell 安全机制。
影响最大的一点:我们为 daemon 中约 40 把锁恢复了 poison recovery。之前, critical section 中的单个 panic 会永久禁用功能区域(计量、路由、审计、skills、memory),影响整个进程生命周期。现在它们可以恢复并记录错误原因,所以一次bad turn不会再让你被鬼影缠身。
新的 LIBREFANG_CONFIG_MODE=managed 让你拥有 config.toml 的所有权而不是归 daemon 管理。在环境中设置它后,每一个会修改配置的 API 路由都会返回 423 Locked。与 Kubernetes ConfigMaps 或只读挂载配合使用效果极佳。API 现在还会报告配置的 SHA-256、写入状态和最后修改时间,这样你的仪表盘就可以在服务端将其渲染为只读。此外,如果你运行的是自托管 Ollama 或 vLLM,自定义 provider 可以选择加入实时模型发现——模型列表会自动刷新。
media_transcribe 现在可以分块处理录音并写入文件。你的 30 分钟录音不会再丢了——此前是 spill 阈值和 tool-result 大小上限同时触发。窗口在 Ogg granule 位置上也做了去重,所以边界处不会丢音频。.mp4 和 .mov 的转录现在也工作了(它们需要 seeking,所以会先暂存到磁盘)。
agent_send 现在默认非阻塞——返回一个 task ID 供你轮询。之前默认要求你预判委托是否会很慢并手动 opt in 到 async: true,这基本靠猜。只有在你需要同步获取答案时才用 false。
分配给 Agent 的任务现在会自动唤醒它们,无需手动触发。如果没有任何监听 task_posted 事件,任务仍会通过合成的 wake 到达其所有者。Dead trigger 不再能遮蔽真实工作。
波兰语(pl)现在是一等支持语言。我们还恢复了西班牙语和法语中缺失的变音符号(válido、déjà、¿agente no encontrado? 等),并补上了日语中缺失的错误键。
大量阻塞的文件系统和数据库工作已从 Tokio 的异步 worker 移出。配置读写、SQLite 查询、WASM 模块加载和 PDF 提取现在都运行在 blocking pool 上,所以不会卡住你的请求处理器。桌面应用 SPA 安装、agent-template 发现和 Chromium 二进制探测也全部卸载了。我们还将镜像漏洞扫描器(Trivy)卸载到每次构建时运行——目前还没有用户可见的门控(等待修复方案),但完整的 JSON/SARIF 产物会保留给 CI 审查。
链接提取之前不会递归进入列表项,页面选择器会选中第一个 <article> 而不是包含多篇文章的容器。已修复。
Windows 测试因桌面应用链接失败被禁用。现已通过 workaround 重新启用,保留了编译+链接覆盖。
包含大量空白的 Slack 消息会渲染成一堵墙一样的空白;已修复。同时修复了段落超出 3000 字符限制后被直接丢弃的问题。
Trigger cooldown 之前是按 trigger 维度而不是按 subject 维度,所以第二个不同的事件快速发生时会被丢弃。现在作用域已正确限定。
针对 OpenAI 的 gpt-image-* 模型进行图像生成时,会因 response_format 拒绝而失败。已为该模型家族移除该限制。
browser_read_page 现在会对链接做去重,并以 ⟨n⟩ 标记渲染,同时提供单独的链接表格——在密集页面上将链接载荷削减了 70–84%,且标记仍可点击。
如需了解详情,请获取完整列表。
# Binary
curl -fsSL https://get.librefang.ai | sh
# Rust SDK
cargo add librefang
# JavaScript SDK
npm install @librefang/sdk
# Python SDK
pip install librefang-sdk