Skip to content

Mingbird v2.1.4

Choose a tag to compare

@Gustor-Wang Gustor-Wang released this 11 Oct 09:52
· 2 commits to main since this release

鸣鸟 Mingbird v2.1.4

🇨🇳 中文在上 / English below.

让历史会话真正可续聊——此前载入旧对话继续聊天会触发上下文超限错误且压缩机制失灵,取回的历史还是被压缩改写过的残缺版。测试 569 项全绿(560 + 9 新增)。

修复

  • 续聊不再「上下文爆炸」:三环根因同修——①token 估算对中文系统性低估(1 字按 1 token,实测 1.5~2),超限请求被放行;②超限类错误("prompt is too long")落入只重试不压缩的错误路径,重试到死;③压缩级别只升不降,上下文回落后二次增长永远不再压缩。现在:估算按中文 2 token/字校准(宁可高估=提前压缩,安全方向);超限类错误立即强制 L3 压缩后重试;上下文回落到 60% 以下时压缩级别重新武装。
  • 历史取回完整:压缩/硬复位此前就地改写消息、改写后被存盘——取回的历史是被截断/摘要过的版本。新增完整转录层(<会话>.transcript.jsonl),每条消息发生时原样追加,压缩只作用于模型上下文;GUI 历史从转录渲染,强杀任务也能取回完整记录。
  • 运行中切换会话防护:任务跑着时点别的会话,运行中的任务会把进度存进切走的会话(串档);现在运行中禁止切换,先停止或等完成。

English

Makes history conversations truly resumable — resuming an old chat used to hit context-overflow errors with compaction never firing, and the history you got back was the compacted, mutilated version. Tests: 569 green (560 + 9 new).

Fixes

  • Resume no longer "explodes the context": three stacked root causes fixed — ① the token estimator systematically under-counted Chinese (1 char = 1 token; real tokenizers use 1.5–2), letting oversized requests through; ② overflow errors ("prompt is too long") landed in a retry-only path that never compacted, retrying to death; ③ the compaction level only ratcheted up, so a context that regrew after shrinking was never compacted again. Now: the estimator counts Chinese at 2 tokens/char (over-estimating = compacting early, the safe direction); overflow-class errors immediately force an L3 compaction and retry; and compaction levels re-arm once the context falls back below 60%.
  • History restores completely: compaction and hard resets used to rewrite the message list in place, and the rewritten (truncated/summarized) version was what got saved. A full transcript layer (<session>.transcript.jsonl) now appends every message as it happens — compaction only touches the model's working context; the GUI renders history from the transcript, and even a killed task leaves a complete record.
  • Guard against switching conversations mid-run: clicking another conversation while a task runs would make the running task save its progress into the conversation you switched to. Switching is now blocked while a task runs — stop it or wait.

Install / 安装

Windows:下载 Mingbird-v2.1.4-CN-Setup.exe(中文)或 Mingbird-v2.1.4-EN-Setup.exe(English),双击安装。需要 Ollama 或任何 OpenAI 兼容本地服务;2~9B 小模型核显即可跑,全程数据不出本机。
Windows (EN): download Mingbird-v2.1.4-CN-Setup.exe (Chinese UI) or Mingbird-v2.1.4-EN-Setup.exe (English UI) and run the installer. Requires Ollama or any OpenAI-compatible local server; 2–9B models run on integrated graphics, and your data never leaves the machine.

macOS / Linux(实验性):下载 mingbird-v2.1.4-macos-arm64.tar.gz / mingbird-v2.1.4-macos-x64.tar.gz / mingbird-v2.1.4-linux-x64.tar.gz,解压后运行 LocalAgent。系统语言自动识别(中文系统直接显示中文;英文系统输出自动跟随英文。也可在可执行文件旁建 app_lang.txt 写 zh/en 强制)。
macOS / Linux (experimental, EN): download the tar.gz for your arch, extract, run LocalAgent. System language is auto-detected (English systems get English output); you can also force it by placing an app_lang.txt (zh/en) next to the executable.

From source:pip install -r requirements.txt → python agent_gui.py(Python 3.12 推荐)。 / From source (EN): pip install -r requirements.txt → python agent_gui.py (Python 3.12 recommended).