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