Skip to content

v1.0.89

Choose a tag to compare

@github-actions github-actions released this 07 Sep 08:46
· 33 commits to main since this release
89241a2

变更 / 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/react 16 的 peer 本就含 ^19)。源码改动只有类型面:@types/react@19 去掉了全局 JSX namespace,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 builddist/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 ci ERESOLVE,「Web tests」与「QA gates」在装依赖那一步就红——与 #115(只抬 react 侧)是同一个结构性问题的另一半。.github/dependabot.yml 的 npm 面新增 react 组(react / react-dom / @types/react / @types/react-dom 四个字面名,不带通配),与 #245vite-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 步绕过(只需做这一次):

  1. 在 Finder 里右键点击 .pkg 文件 → 选「打开」;
  2. 弹窗里再点一次「打开」;
  3. 如果 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, run install.ps1 — see docs/WINDOWS.md.
  • Linux: download ZelinAIAssistant-*-linux.tar.gz, unpack, run bash 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