Releases: Wan-ZL/zelin-ai-assistant
Release list
v1.0.98
变更 / Changes
Added
- 后台 claude 调用自带回退模型:主模型不可用时切到 Opus 5(1M),旧一代 Opus 4.8 永不登场(owner 决策 D53):此前 Fable 5.1 拿不到时,Claude Code 会静默切到它自己的备用模型——Opus 4.8。自本版起
act/llm.py给每一次 headlessclaude -p(雷达提取、分诊、判官、问答、digest、语气档)与claude --bg(派工、恢复、打回、简报)都拼上--fallback-model claude-opus-5[1m],回退是 Opus id 时子进程 env 同时钉ANTHROPIC_DEFAULT_OPUS_MODEL,让 CLI 自己伸手够到的每一个opus别名也是同一个 Opus 5。第三把模型旋钮models.fallback(config.yaml;web 设置页「模型」→「回退模型」;overrides 键models_fallback)可改成任何 canonical id 或关闭(off= 不传旗标);坏值回落出厂值而不是悄悄关掉。doctor 的claude code model行现在恒写明fallback: <id>|off;「全局默认不是 canonical id 且旋钮跟随它」只在回退接不住时才是 WARN(回退关闭,或回退本身也是会下线的别名——与设置页的告警口径一致)——回退是出厂值或 canonical id 时,别名下线那天会话落到 Opus 5 上而不是死掉。设置页「回退模型」选「自定义…」但留空 = 出厂值而不是关闭,关闭只经显式的「关闭回退」选项。新装机与 owner 本机行为一致,不再依赖个人~/.claude/settings.json。
安装 / Install
macOS
下载下方的 ZelinAIAssistant-*.pkg 双击安装。装完后菜单栏会自动出现小图标(首启弹权限设置页)。
这个安装包目前没有 Apple 开发者签名,所以 macOS 第一次会拦下它说"无法打开"。这不是故障,也不是恶意软件——用 3 步绕过(只需做这一次):
- 在 Finder 里右键点击 .pkg 文件 → 选「打开」;
- 弹窗里再点一次「打开」;
- 如果 macOS Sequoia 仍然拒绝:打开 系统设置 → 隐私与安全性,拉到底部,点「仍要打开」,输一次密码。
Download ZelinAIAssistant-*.pkg below and double-click it. The build is not yet signed with an Apple Developer ID, so macOS blocks the first open — expected, not malware. Bypass it once: right-click the .pkg in Finder → Open → Open; if macOS Sequoia still refuses, go to System Settings → Privacy & Security, scroll to the bottom, click Open Anyway and enter your password.
Windows / Linux
Windows 和 Linux 是纯 Python(无需编译)。下载对应的源码包,解压,然后从解压出的目录里运行安装脚本:
- Windows:下载
ZelinAIAssistant-*-windows.zip,解压后运行install.ps1(指南:docs/WINDOWS.md)。 - Linux:下载
ZelinAIAssistant-*-linux.tar.gz,解压后运行bash install-linux.sh(指南:docs/LINUX.md)。
Windows and Linux are pure Python (no build step). Download the matching source bundle, unpack it, and run the install script from the extracted folder:
- Windows: download
ZelinAIAssistant-*-windows.zip, extract, runinstall.ps1— see docs/WINDOWS.md. - Linux: download
ZelinAIAssistant-*-linux.tar.gz, unpack, runbash install-linux.sh— see docs/LINUX.md.
完整安装指南 / full install guide: docs/INSTALL.md · 卸载 / uninstall: bash uninstall.sh
What's Changed
Other changes
Full Changelog: v1.0.97...v1.0.98
v1.0.97
变更 / Changes
Added
- ⌘F 搜索也搜会话记录,并给只靠会话命中的卡打上紫色「命中会话」章(owner 授权代拍 D45):原生看板的搜索有第三层——后台服务一直在把每张卡的 AI 会话正文整理进
state/search_index.json,web 看板却从没读过它,于是「上次会话里提过 Chen 那张卡」按 Chen 搜不出来。自本版起 server 多一条只读的GET /api/search-index(带 ETag/304:内容没变就零传输;文件过大或不在时诚实缺席,绝不 500),web 在你键入第一个搜索字时才去拉一次,之后搜索开着期间每版看板落地重验一次。搜索规则与卡面字段同一套:多个词是 AND,每个词只要在卡面或会话正文里出现就算——「推荐信 chen」能找到标题写推荐信、只有会话里提过 chen 的那张卡。只靠会话命中的卡留在列里、计入列头「命中/总数」,章行多一颗紫色「命中会话」;卡面本就含这个词的卡不出章(章的意思是「词只在会话里」,不是「有会话」)。回收站与永久性完成不搜会话,与原生一致。
安装 / Install
macOS
下载下方的 ZelinAIAssistant-*.pkg 双击安装。装完后菜单栏会自动出现小图标(首启弹权限设置页)。
这个安装包目前没有 Apple 开发者签名,所以 macOS 第一次会拦下它说"无法打开"。这不是故障,也不是恶意软件——用 3 步绕过(只需做这一次):
- 在 Finder 里右键点击 .pkg 文件 → 选「打开」;
- 弹窗里再点一次「打开」;
- 如果 macOS Sequoia 仍然拒绝:打开 系统设置 → 隐私与安全性,拉到底部,点「仍要打开」,输一次密码。
Download ZelinAIAssistant-*.pkg below and double-click it. The build is not yet signed with an Apple Developer ID, so macOS blocks the first open — expected, not malware. Bypass it once: right-click the .pkg in Finder → Open → Open; if macOS Sequoia still refuses, go to System Settings → Privacy & Security, scroll to the bottom, click Open Anyway and enter your password.
Windows / Linux
Windows 和 Linux 是纯 Python(无需编译)。下载对应的源码包,解压,然后从解压出的目录里运行安装脚本:
- Windows:下载
ZelinAIAssistant-*-windows.zip,解压后运行install.ps1(指南:docs/WINDOWS.md)。 - Linux:下载
ZelinAIAssistant-*-linux.tar.gz,解压后运行bash install-linux.sh(指南:docs/LINUX.md)。
Windows and Linux are pure Python (no build step). Download the matching source bundle, unpack it, and run the install script from the extracted folder:
- Windows: download
ZelinAIAssistant-*-windows.zip, extract, runinstall.ps1— see docs/WINDOWS.md. - Linux: download
ZelinAIAssistant-*-linux.tar.gz, unpack, runbash install-linux.sh— see docs/LINUX.md.
完整安装指南 / full install guide: docs/INSTALL.md · 卸载 / uninstall: bash uninstall.sh
What's Changed
Other changes
Full Changelog: v1.0.96...v1.0.97
v1.0.96
变更 / Changes
Fixed
- 自动部署不再在活着的后台 claude 会话之下重启 actd——roster 上有活会话就整轮延后(CONTRACT §56.3 会话闸门,状态
deferred):2026-09-07T05:35Z live,v1.0.72 的自动部署在 P-029 派发 17 分钟后 bootout+bootstrap 了 actd,owner 正在终端里 attach 着那个会话,终端打出[worker crashed (exit 143) — respawning…] Session f40f2001 has exited(143 = SIGTERM);三天里 25 次 actd 重启,多张卡在部署时刻附近被「中断收割」。修法:scripts/auto-deploy.sh在 CI 闸门与脏树检查之后、merge --ff-only之前(以及 install_incomplete 的 install.sh 修补重跑之前)问一次 roster——新act.executor.live_session_count(),与 actd 同一个 reader、同一个 §55 稳定副本 claude(agents --json --all,不另造 parser),数kind != interactive且带pid的条目(pid = 进程活着 = 重启会打断;done 但 owner attach 着的 worker 一样算)。N > 0 →status=deferred+ add-only 键deferred_reason=sessions_running/deferred_sessions=N/deferred_since=<首次>,日志一行、不通知、HEAD 不动、exit 0,下个 interval 再问;没有时间上限(永不结束的会话是 §46/#119 收割机制的事),但连续满 6 h 日志 WARN、doctorauto-deploy行由 OK 转 WARN「更新已就绪,等待 N 个会话结束已 X 小时」、web 顶栏由次级色「新版本已就绪,等待 N 个会话结束后更新」切警告色并追加「(已 X 小时)」。roster 读不到(claude 缺失 / 超时 / 非零 / 坏 JSON)= fail closed:deferred_reason=roster_unknown,镜像私账roster_unknown_ticks计连续未知,满 3 轮后下一轮让行并在日志说明——既不静默杀会话,也不让坏掉的 roster 查询永远挡住部署。--force跳过闸门并记下会被打断的会话数;回滚不延后但日志点名它打断了几个会话。实证:launchctl bootout只 SIGTERM 该 job 自己 process group 里的进程(setsid / double-fork 的子进程都活着),live 机器上 claude worker 挂在claude daemon run之下、不在 actd 的进程组里——bootout 不是直接的信号源,法条不依赖那个机制。判例tests/integration/test_auto_deploy_session_gate.py(8 轮真 bash+git,复用既有夹具的AutoDeployFixture)、tests/test_executor_live_session_count.py、tests/test_deploy_state_deferred.py、HeaderBar.test.tsx。 - 会话闸门 review 修订(#284 review):(a)
deferred_since与roster_unknown_ticks只属于连续deferred的 episode——夹在中间的任何别的结果(refused_dirty / ci_pending / 一次跳过闸门并回滚了的--force……)都关掉它,--force的「忘掉」写入也清这四个键(修前:几秒钟前才开始的延后继承一天前的 stamp → 假「已 7 小时」WARN;--force+回滚后陈旧的 ticks 让下一个 unknown 直接算第 3 次);(b) 写明「活着」= 带pid、不看state的代价:done 但进程还在的 worker(每张待验收卡)同样挡住部署,直到 claude 回收它 / owner 验收或打回那张卡 /claude stop <id>——doctor WARN 的 fix 与顶栏文案改点名这些真实出口(顶栏「等待 N 个会话结束或验收后更新」),不再说「卡住的会话由 §46/#119 收割」;(c) 被延后的 install.sh 修补重跑保留 install_incomplete 的 token(reason=<失配 token> sessions_running)、detail 带失配说明,doctor 行与顶栏从第一轮起就是 WARN「安装未完成,修补等待 N 个会话结束」而不是 OK「更新已就绪」;actd 死了修补同样受闸(规矩没有例外),fix 写明那时只有 claude 自己回收、claude stop或--force能结束会话;(d) doctor OK 行由「vX ready」(X 是正在跑的版本)改为「deferred on v (waiting for …): 」;(e)deferred下last_incident同判(#135 规则):doctor WARN、顶栏警告色 +「上次回滚判决待处理」;(f) 6 h 阈值只剩一个真源act/lib/deploy_state.py DEFER_WARN_AFTER_S(脚本读它,env 旋钮AUTODEPLOY_DEFER_WARN_AFTER退役);(g) CONTRACT 记录闸门作答到 install.sh bootout 之间的残余窗口(不关)。判例tests/integration/test_auto_deploy_defer_episode.py(5 条 / 13 轮真 bash+git)、tests/test_deploy_state_deferred_visibility.py、HeaderBar.test.tsx新 case。
安装 / Install
macOS
下载下方的 ZelinAIAssistant-*.pkg 双击安装。装完后菜单栏会自动出现小图标(首启弹权限设置页)。
这个安装包目前没有 Apple 开发者签名,所以 macOS 第一次会拦下它说"无法打开"。这不是故障,也不是恶意软件——用 3 步绕过(只需做这一次):
- 在 Finder 里右键点击 .pkg 文件 → 选「打开」;
- 弹窗里再点一次「打开」;
- 如果 macOS Sequoia 仍然拒绝:打开 系统设置 → 隐私与安全性,拉到底部,点「仍要打开」,输一次密码。
Download ZelinAIAssistant-*.pkg below and double-click it. The build is not yet signed with an Apple Developer ID, so macOS blocks the first open — expected, not malware. Bypass it once: right-click the .pkg in Finder → Open → Open; if macOS Sequoia still refuses, go to System Settings → Privacy & Security, scroll to the bottom, click Open Anyway and enter your password.
Windows / Linux
Windows 和 Linux 是纯 Python(无需编译)。下载对应的源码包,解压,然后从解压出的目录里运行安装脚本:
- Windows:下载
ZelinAIAssistant-*-windows.zip,解压后运行install.ps1(指南:docs/WINDOWS.md)。 - Linux:下载
ZelinAIAssistant-*-linux.tar.gz,解压后运行bash install-linux.sh(指南:docs/LINUX.md)。
Windows and Linux are pure Python (no build step). Download the matching source bundle, unpack it, and run the install script from the extracted folder:
- Windows: download
ZelinAIAssistant-*-windows.zip, extract, runinstall.ps1— see docs/WINDOWS.md. - Linux: download
ZelinAIAssistant-*-linux.tar.gz, unpack, runbash install-linux.sh— see docs/LINUX.md.
完整安装指南 / full install guide: docs/INSTALL.md · 卸载 / uninstall: bash uninstall.sh
What's Changed
Other changes
- fix(deploy): defer the deploy while background claude sessions are live (§56.3 session gate) by @Wan-ZL in #284
Full Changelog: v1.0.95...v1.0.96
v1.0.95
变更 / Changes
Added
- 首次运行向导「笔记放在哪里?」这一步现在会列出 Obsidian 自己登记过的库,点一行就选中(owner 决策 D51;CONTRACT §68.5 追记):装了 Obsidian 的人不用再敲路径或开对话框——每座库一行(库名 + 路径 + 「Obsidian vault」徽章),排在「当前」行之后、「不用 Obsidian — 存成普通 Markdown 文件夹」+「选择…」之前;当前生效的笔记库就是其中一座时合成一行、预先选中。列表来自本机 server 新增的只读
GET /api/setup/vaults(读~/Library/Application Support/obsidian/obsidian.json,只回路径仍存在的库;没装 Obsidian / 文件坏了 → 空列表,向导照常只剩两行)。选中后落盘仍是原来那条PUT /api/settings/obsidiandiff-write。
安装 / Install
macOS
下载下方的 ZelinAIAssistant-*.pkg 双击安装。装完后菜单栏会自动出现小图标(首启弹权限设置页)。
这个安装包目前没有 Apple 开发者签名,所以 macOS 第一次会拦下它说"无法打开"。这不是故障,也不是恶意软件——用 3 步绕过(只需做这一次):
- 在 Finder 里右键点击 .pkg 文件 → 选「打开」;
- 弹窗里再点一次「打开」;
- 如果 macOS Sequoia 仍然拒绝:打开 系统设置 → 隐私与安全性,拉到底部,点「仍要打开」,输一次密码。
Download ZelinAIAssistant-*.pkg below and double-click it. The build is not yet signed with an Apple Developer ID, so macOS blocks the first open — expected, not malware. Bypass it once: right-click the .pkg in Finder → Open → Open; if macOS Sequoia still refuses, go to System Settings → Privacy & Security, scroll to the bottom, click Open Anyway and enter your password.
Windows / Linux
Windows 和 Linux 是纯 Python(无需编译)。下载对应的源码包,解压,然后从解压出的目录里运行安装脚本:
- Windows:下载
ZelinAIAssistant-*-windows.zip,解压后运行install.ps1(指南:docs/WINDOWS.md)。 - Linux:下载
ZelinAIAssistant-*-linux.tar.gz,解压后运行bash install-linux.sh(指南:docs/LINUX.md)。
Windows and Linux are pure Python (no build step). Download the matching source bundle, unpack it, and run the install script from the extracted folder:
- Windows: download
ZelinAIAssistant-*-windows.zip, extract, runinstall.ps1— see docs/WINDOWS.md. - Linux: download
ZelinAIAssistant-*-linux.tar.gz, unpack, runbash install-linux.sh— see docs/LINUX.md.
完整安装指南 / full install guide: docs/INSTALL.md · 卸载 / uninstall: bash uninstall.sh
What's Changed
Other changes
- feat: setup wizard lists Obsidian's registered vaults for one-click selection (D51) by @Wan-ZL in #288
Full Changelog: v1.0.94...v1.0.95
v1.0.94
变更 / Changes
Changed
- 列顶输入框敲出的多行文字,落卡时换行不再丢(owner 授权决策 D52,2026-09-06):此前 actd 铸卡前把 capture 正文的全部空白(含换行)折成单空格,多行输入框(D35)排好的列表 / 段落在 AI 扩写与 agent 派发之前就成了一行糊。现在换行保留(CRLF → LF、行内多余空格折成一个、行尾空白剥掉、行首缩进只认空格与 tab、剥掉公共缩进保留相对缩进——嵌套列表 / 贴进来的代码不走样、连续空行最多一行),进卡片「💬 需求来自」的原话、AI 扩写提案的 prompt 和直跑的派发 prompt;卡片标题仍是单行(整段折成一行、≤80 字,判重口径不变——同一段话有无换行都是同一张卡)。详情页引文段落随之逐行显示;「复制为 Markdown」的多行引文仍是同一个列表项(续行缩进到内容列)。CONTRACT §10 追记 / §41 追记修正。
安装 / Install
macOS
下载下方的 ZelinAIAssistant-*.pkg 双击安装。装完后菜单栏会自动出现小图标(首启弹权限设置页)。
这个安装包目前没有 Apple 开发者签名,所以 macOS 第一次会拦下它说"无法打开"。这不是故障,也不是恶意软件——用 3 步绕过(只需做这一次):
- 在 Finder 里右键点击 .pkg 文件 → 选「打开」;
- 弹窗里再点一次「打开」;
- 如果 macOS Sequoia 仍然拒绝:打开 系统设置 → 隐私与安全性,拉到底部,点「仍要打开」,输一次密码。
Download ZelinAIAssistant-*.pkg below and double-click it. The build is not yet signed with an Apple Developer ID, so macOS blocks the first open — expected, not malware. Bypass it once: right-click the .pkg in Finder → Open → Open; if macOS Sequoia still refuses, go to System Settings → Privacy & Security, scroll to the bottom, click Open Anyway and enter your password.
Windows / Linux
Windows 和 Linux 是纯 Python(无需编译)。下载对应的源码包,解压,然后从解压出的目录里运行安装脚本:
- Windows:下载
ZelinAIAssistant-*-windows.zip,解压后运行install.ps1(指南:docs/WINDOWS.md)。 - Linux:下载
ZelinAIAssistant-*-linux.tar.gz,解压后运行bash install-linux.sh(指南:docs/LINUX.md)。
Windows and Linux are pure Python (no build step). Download the matching source bundle, unpack it, and run the install script from the extracted folder:
- Windows: download
ZelinAIAssistant-*-windows.zip, extract, runinstall.ps1— see docs/WINDOWS.md. - Linux: download
ZelinAIAssistant-*-linux.tar.gz, unpack, runbash install-linux.sh— see docs/LINUX.md.
完整安装指南 / full install guide: docs/INSTALL.md · 卸载 / uninstall: bash uninstall.sh
What's Changed
Other changes
Full Changelog: v1.0.93...v1.0.94
v1.0.93
变更 / Changes
Fixed
- 提案卡面重新显示「怎样算办完」,待验收卡面永远显示「☐ 验收清单」(owner 决策 D43):原生看板一直把这两块放在卡面上——批准一张提案就是批准它的验收标准,验收时逐条对照的清单也该在眼前;web 移植把它们与真正的详情积木一起收进了右侧详情侧栏,卡面上一条不剩。自本版起两块以紧凑形回到卡面:最多前 3 条、其余折成一行「+N」,每条单行截断(悬停看全文),全文清单仍在「展开详情 ▸」的侧栏里;待验收卡的方框跟着 AI 评语走——评语是「建议验收」时画成 ☑(AI 判断,悬停有说明),其余情况一律 ☐;没有验收标准的卡仍给「该任务未定义验收标准,请自行判断」。验收 / 打回 / 批准按钮不多不少,卡上不长任何开合。看板两张视觉基准图随之更新。
安装 / Install
macOS
下载下方的 ZelinAIAssistant-*.pkg 双击安装。装完后菜单栏会自动出现小图标(首启弹权限设置页)。
这个安装包目前没有 Apple 开发者签名,所以 macOS 第一次会拦下它说"无法打开"。这不是故障,也不是恶意软件——用 3 步绕过(只需做这一次):
- 在 Finder 里右键点击 .pkg 文件 → 选「打开」;
- 弹窗里再点一次「打开」;
- 如果 macOS Sequoia 仍然拒绝:打开 系统设置 → 隐私与安全性,拉到底部,点「仍要打开」,输一次密码。
Download ZelinAIAssistant-*.pkg below and double-click it. The build is not yet signed with an Apple Developer ID, so macOS blocks the first open — expected, not malware. Bypass it once: right-click the .pkg in Finder → Open → Open; if macOS Sequoia still refuses, go to System Settings → Privacy & Security, scroll to the bottom, click Open Anyway and enter your password.
Windows / Linux
Windows 和 Linux 是纯 Python(无需编译)。下载对应的源码包,解压,然后从解压出的目录里运行安装脚本:
- Windows:下载
ZelinAIAssistant-*-windows.zip,解压后运行install.ps1(指南:docs/WINDOWS.md)。 - Linux:下载
ZelinAIAssistant-*-linux.tar.gz,解压后运行bash install-linux.sh(指南:docs/LINUX.md)。
Windows and Linux are pure Python (no build step). Download the matching source bundle, unpack it, and run the install script from the extracted folder:
- Windows: download
ZelinAIAssistant-*-windows.zip, extract, runinstall.ps1— see docs/WINDOWS.md. - Linux: download
ZelinAIAssistant-*-linux.tar.gz, unpack, runbash install-linux.sh— see docs/LINUX.md.
完整安装指南 / full install guide: docs/INSTALL.md · 卸载 / uninstall: bash uninstall.sh
What's Changed
Other changes
Full Changelog: v1.0.92...v1.0.93
v1.0.92
变更 / Changes
Added
- 设置页语气档案区补回「从我的消息生成/更新档案」(owner 授权代拍 D47):点一下就在后台跑几分钟的
act.voice_gen(只读 Slack 工具搜你自己发过的 100–200 条消息,按出厂模板骨架归纳出你的语气档案,旧档案先备份),按钮期间显示「生成中…」并禁用,跑完在按钮下方给出那一句结果(成功绿字 / 失败橙字,原文照抄),「当前生效」一行随之刷新;刷新页面回来也接着显示进行中。走的是既有的 inbox 动作路(voice_generate→ actd 分离起子进程 →state/voice_gen/job.json→GET /api/voice/generate-status):server 不起长进程,同一时刻只跑一份;后台没在跑(90 s 没人接手)或子进程丢了(15 分钟没回执)都会说人话并解锁按钮。设置目录里「启用语气注入」的说明不再把人指去终端。
安装 / Install
macOS
下载下方的 ZelinAIAssistant-*.pkg 双击安装。装完后菜单栏会自动出现小图标(首启弹权限设置页)。
这个安装包目前没有 Apple 开发者签名,所以 macOS 第一次会拦下它说"无法打开"。这不是故障,也不是恶意软件——用 3 步绕过(只需做这一次):
- 在 Finder 里右键点击 .pkg 文件 → 选「打开」;
- 弹窗里再点一次「打开」;
- 如果 macOS Sequoia 仍然拒绝:打开 系统设置 → 隐私与安全性,拉到底部,点「仍要打开」,输一次密码。
Download ZelinAIAssistant-*.pkg below and double-click it. The build is not yet signed with an Apple Developer ID, so macOS blocks the first open — expected, not malware. Bypass it once: right-click the .pkg in Finder → Open → Open; if macOS Sequoia still refuses, go to System Settings → Privacy & Security, scroll to the bottom, click Open Anyway and enter your password.
Windows / Linux
Windows 和 Linux 是纯 Python(无需编译)。下载对应的源码包,解压,然后从解压出的目录里运行安装脚本:
- Windows:下载
ZelinAIAssistant-*-windows.zip,解压后运行install.ps1(指南:docs/WINDOWS.md)。 - Linux:下载
ZelinAIAssistant-*-linux.tar.gz,解压后运行bash install-linux.sh(指南:docs/LINUX.md)。
Windows and Linux are pure Python (no build step). Download the matching source bundle, unpack it, and run the install script from the extracted folder:
- Windows: download
ZelinAIAssistant-*-windows.zip, extract, runinstall.ps1— see docs/WINDOWS.md. - Linux: download
ZelinAIAssistant-*-linux.tar.gz, unpack, runbash install-linux.sh— see docs/LINUX.md.
完整安装指南 / full install guide: docs/INSTALL.md · 卸载 / uninstall: bash uninstall.sh
What's Changed
Other changes
- feat: 「从我的消息生成/更新档案」 runs act.voice_gen as an inbox-driven job with busy state and result (D47) by @Wan-ZL in #279
Full Changelog: v1.0.91...v1.0.92
v1.0.91
变更 / Changes
Fixed
- 界面语言只有一把开关了(owner 授权代拍 D37):顶栏的 中 / EN、输入框
/lang zh|en、初始设置向导的语言单选、设置 → 通用「界面语言」,改哪一个都写进同一个设置值(settings_overrides.json的language),看板、系统通知、doctor 的修法句、壳的字幕悬浮窗从此说同一种语言。此前顶栏与/lang只改浏览器本地存储,设置里的「界面语言」只管后台文案——字段改了看板不动、顶栏切了通知照旧说旧语言。设置里保存后看板立刻切换,不必重开。每次打开看板都从 server 读回当前语言(浏览器本地存储只用来避免首帧闪一下),换台浏览器 / 旧标签也不会各说各话;第一次使用、谁都还没选过时,看板会把当下显示的语言记进设置一次——后台定时任务的通知不再因为没有系统语言环境而回落成英文。地址栏?lang=仍是一次性覆写(截图 / 演示用),不写进设置。设置里「界面语言」的说明句改为「看板、系统通知与修法句共用这一把开关:顶栏切换、/lang 与这里改的都是同一个值。」
安装 / Install
macOS
下载下方的 ZelinAIAssistant-*.pkg 双击安装。装完后菜单栏会自动出现小图标(首启弹权限设置页)。
这个安装包目前没有 Apple 开发者签名,所以 macOS 第一次会拦下它说"无法打开"。这不是故障,也不是恶意软件——用 3 步绕过(只需做这一次):
- 在 Finder 里右键点击 .pkg 文件 → 选「打开」;
- 弹窗里再点一次「打开」;
- 如果 macOS Sequoia 仍然拒绝:打开 系统设置 → 隐私与安全性,拉到底部,点「仍要打开」,输一次密码。
Download ZelinAIAssistant-*.pkg below and double-click it. The build is not yet signed with an Apple Developer ID, so macOS blocks the first open — expected, not malware. Bypass it once: right-click the .pkg in Finder → Open → Open; if macOS Sequoia still refuses, go to System Settings → Privacy & Security, scroll to the bottom, click Open Anyway and enter your password.
Windows / Linux
Windows 和 Linux 是纯 Python(无需编译)。下载对应的源码包,解压,然后从解压出的目录里运行安装脚本:
- Windows:下载
ZelinAIAssistant-*-windows.zip,解压后运行install.ps1(指南:docs/WINDOWS.md)。 - Linux:下载
ZelinAIAssistant-*-linux.tar.gz,解压后运行bash install-linux.sh(指南:docs/LINUX.md)。
Windows and Linux are pure Python (no build step). Download the matching source bundle, unpack it, and run the install script from the extracted folder:
- Windows: download
ZelinAIAssistant-*-windows.zip, extract, runinstall.ps1— see docs/WINDOWS.md. - Linux: download
ZelinAIAssistant-*-linux.tar.gz, unpack, runbash install-linux.sh— see docs/LINUX.md.
完整安装指南 / full install guide: docs/INSTALL.md · 卸载 / uninstall: bash uninstall.sh
What's Changed
Other changes
- feat: one language truth — header toggle, /lang, wizard and settings all write general.language (D37) by @Wan-ZL in #285
Full Changelog: v1.0.90...v1.0.91
v1.0.90
变更 / Changes
Fixed
- 看板的接管命令保持裸
claude,并把「worker 到底跑哪个 claude」写进法典(§55 第五幕 追记 2026-09-07):两次终端接管打出[worker crashed (exit 143) — respawning…] … exited (exit 1 before init)后,第一版修法想把copy_cmd的第一个词换成派发用的稳定副本路径;只读复核 live 机器(~/.claude/daemon.log、ps、auto-deploy.log)证明--bgworker 跑的是 Claude Code per-user daemon 的 binary、daemon 随登录 shell 的 claude 自我升级——终端里的裸claude才是与 worker 同源的客户端,副本是两次部署之间落后的一方,写副本进来会在整个滞后窗口里用旧客户端接新 worker。所以copy_cmd三种形不变(act/lib/dashboard.TAKEOVER_CLAUDE,判例钉住副本 / pin 都在时仍是裸词);两次事故的根因另案追查(09-07 那两条exit 1 before init发生时三份 binary 同版)。 - 投影 pass 的 roster 查询(
claude agents --json --all)改走config.resolve_claude_bin+DISABLE_AUTOUPDATER=1:act/ + server/ 里最后一处裸claudeargv,与 executor 侧同一查询、与本仓库起的每一个 claude 同一解析(§55 规则);查实它不是 daemon 的 spawner,此改动只关一致性,不关 worker binary。
安装 / Install
macOS
下载下方的 ZelinAIAssistant-*.pkg 双击安装。装完后菜单栏会自动出现小图标(首启弹权限设置页)。
这个安装包目前没有 Apple 开发者签名,所以 macOS 第一次会拦下它说"无法打开"。这不是故障,也不是恶意软件——用 3 步绕过(只需做这一次):
- 在 Finder 里右键点击 .pkg 文件 → 选「打开」;
- 弹窗里再点一次「打开」;
- 如果 macOS Sequoia 仍然拒绝:打开 系统设置 → 隐私与安全性,拉到底部,点「仍要打开」,输一次密码。
Download ZelinAIAssistant-*.pkg below and double-click it. The build is not yet signed with an Apple Developer ID, so macOS blocks the first open — expected, not malware. Bypass it once: right-click the .pkg in Finder → Open → Open; if macOS Sequoia still refuses, go to System Settings → Privacy & Security, scroll to the bottom, click Open Anyway and enter your password.
Windows / Linux
Windows 和 Linux 是纯 Python(无需编译)。下载对应的源码包,解压,然后从解压出的目录里运行安装脚本:
- Windows:下载
ZelinAIAssistant-*-windows.zip,解压后运行install.ps1(指南:docs/WINDOWS.md)。 - Linux:下载
ZelinAIAssistant-*-linux.tar.gz,解压后运行bash install-linux.sh(指南:docs/LINUX.md)。
Windows and Linux are pure Python (no build step). Download the matching source bundle, unpack it, and run the install script from the extracted folder:
- Windows: download
ZelinAIAssistant-*-windows.zip, extract, runinstall.ps1— see docs/WINDOWS.md. - Linux: download
ZelinAIAssistant-*-linux.tar.gz, unpack, runbash install-linux.sh— see docs/LINUX.md.
完整安装指南 / full install guide: docs/INSTALL.md · 卸载 / uninstall: bash uninstall.sh
What's Changed
Other changes
- fix(takeover): keep copy_cmd on the login shell's claude — the worker runs the daemon's binary by @Wan-ZL in #281
Full Changelog: v1.0.89...v1.0.90
v1.0.89
变更 / Changes
Changed
- web 看板升到 React 19(react / react-dom 19.2.x + @types/react / @types/react-dom 19.2.x,四包同 PR 落,接替 dependabot #199):#199 只抬了 react-dom 侧、#115 只抬了 react 侧,各自在
npm ci那一步 ERESOLVE——owner 关 #115 时定的是「四包同 PR 落」,这里一次落齐,web/package-lock.json重铸后零新增包(react / react-dom / 两个类型包 + react-dom 自带的 scheduler 五处换版本,@types/prop-types/loose-envify随 18 退出),npm ls零 invalid peer(@testing-library/react16 的 peer 本就含^19)。源码改动只有类型面:@types/react@19去掉了全局JSXnamespace,web/ 七个测试文件里的JSX.Element改为react导出的ReactElement(18 / 19 两版类型都成立);运行时代码零改动——仓库里没有 React 19 移除的 API(ReactDOM.render/findDOMNode/ string ref /defaultProps/ legacy context /react-dom/test-utils一处都没有),createRoot+ 顶层AppErrorBoundary照旧。核过的等价性:同一份源码分别用 React 18 与 19 build,CSS 产物逐字节相同(同 hash),六张 visual golden 在同一台机器上两版渲染逐像素一致(golden 不动、不需要 runner 刷新),playwright 非视觉 e2e(顶栏密度 / 卡片详情 / 维护横幅 / 客户端路由)全过;JS bundle 大约多出 React 19 runtime 的体积差(本树上约 +50 kB minified / +14 kB gzip;复核 = 换回 merge-base 的package.json+ lockfile、npm ci && npm run build比dist/assets/报表),与 owner 在 #115 评估时看到的量级一致。顺手钉住一条时序脆的判例:LaunchAtLoginRow.test.tsx里由桥 reject(异步、非 discrete 更新)打开的<dialog>,其showModal住在useEffect里,标题落进 DOM 与 dialog 变 open 之间隔一个 passive-effect flush,机器忙时getByRole会抢在前面(React 19 下本机 ~1/10 复现,18 下没抓到但结构同样脆)——改成findByRole等到按钮可见为止。
Fixed
- dependabot 把 react 四包成组,React 换代不再半截 bump 把 required check 带红:PR #199(只抬 react-dom + @types/react-dom 到 19)装依赖时
@types/react-dom@19的 peer(@types/react@^19.2.0)与仍在 18 的@types/react对不上,npm ciERESOLVE,「Web tests」与「QA gates」在装依赖那一步就红——与 #115(只抬 react 侧)是同一个结构性问题的另一半。.github/dependabot.yml的 npm 面新增react组(react / react-dom / @types/react / @types/react-dom 四个字面名,不带通配),与 #245 的vite-toolchain组并列,以后四包在同一个 PR 里一起解析;schedule / PR 上限 / label 不变,不匹配的包照旧单独开 PR。形状由tests/test_dependabot_config.py钉着:恰好两组、两组对已装的包互不相交(一个包命中两组时 GitHub 只算先声明的那组)、react 组正好盖住两个运行时依赖 + 两个类型包、四包在 web/package.json 里的 major 一致。React 19 本身的升级见同 PR 的 changed 条目(接替 #199)。
安装 / Install
macOS
下载下方的 ZelinAIAssistant-*.pkg 双击安装。装完后菜单栏会自动出现小图标(首启弹权限设置页)。
这个安装包目前没有 Apple 开发者签名,所以 macOS 第一次会拦下它说"无法打开"。这不是故障,也不是恶意软件——用 3 步绕过(只需做这一次):
- 在 Finder 里右键点击 .pkg 文件 → 选「打开」;
- 弹窗里再点一次「打开」;
- 如果 macOS Sequoia 仍然拒绝:打开 系统设置 → 隐私与安全性,拉到底部,点「仍要打开」,输一次密码。
Download ZelinAIAssistant-*.pkg below and double-click it. The build is not yet signed with an Apple Developer ID, so macOS blocks the first open — expected, not malware. Bypass it once: right-click the .pkg in Finder → Open → Open; if macOS Sequoia still refuses, go to System Settings → Privacy & Security, scroll to the bottom, click Open Anyway and enter your password.
Windows / Linux
Windows 和 Linux 是纯 Python(无需编译)。下载对应的源码包,解压,然后从解压出的目录里运行安装脚本:
- Windows:下载
ZelinAIAssistant-*-windows.zip,解压后运行install.ps1(指南:docs/WINDOWS.md)。 - Linux:下载
ZelinAIAssistant-*-linux.tar.gz,解压后运行bash install-linux.sh(指南:docs/LINUX.md)。
Windows and Linux are pure Python (no build step). Download the matching source bundle, unpack it, and run the install script from the extracted folder:
- Windows: download
ZelinAIAssistant-*-windows.zip, extract, runinstall.ps1— see docs/WINDOWS.md. - Linux: download
ZelinAIAssistant-*-linux.tar.gz, unpack, runbash install-linux.sh— see docs/LINUX.md.
完整安装指南 / full install guide: docs/INSTALL.md · 卸载 / uninstall: bash uninstall.sh
What's Changed
Other changes
- chore(web): React 19 (four react packages together) + dependabot react group (R-197, supersedes #199) by @Wan-ZL in #265
Full Changelog: v1.0.88...v1.0.89