Commit Graph
39 Commits
Author SHA1 Message Date
yenharvey 1657e93c6f ci(android): Gradle 跑在 JDK 21 上
runner 缺省的 JDK 25 超出 Gradle 8.14 支持的范围,Android job 一启动就失败。
2026-10-22 10:39:38 +08:00
yenharvey 9b2acacae0 ci(android): CI 编 Android,发版出签名的 APK
ci.yml 加 android job 编 debug APK,Kotlin 与 Gradle 以前没有任何检查。
release.yml 加 android job:带产品数据出 arm64 APK,签名后 apksigner 验过才上传;v 标签连 Android 一起发,单发用 android-v。
APK 的 versionName / versionCode 改从 core/Cargo.toml 算,发版门禁同样核对它;0.3.0 起 Android 与桌面同号,成熟度用「预览版」标注。
.qj 不再设 noCompress,APK 从 225 MB 降到 95 MB,只多在首次启动解压时花几秒。
README、译本与用户文档把 Android 从「需从源码构建」改成下载 APK;发版文档补签名密钥的生成与 Secrets。
2026-10-22 10:01:35 +08:00
yenharvey a20a38acaf docs(user): 用户文档按用户要做的事重新分组
功能越加越多,原来按早期设置页搭的结构塞不下:几个大页(按键、拼音方案、主题)越写越长,同一功能散在几页。
现在分为开始使用、打字、学语言、个性化、AI 服务、各平台、隐私与帮助、进阶八组,一个功能只在一页讲全,别处一句话加链接。
配置键名、文件路径、文件格式只放进阶组,其他页只写「设置 → 某页 → 某项」,面向普通用户不出现实现词。
设置程序的 ⓘ 链接表、各 README、issue 模板与代码注释里指向旧页面的链接一并改到新地址。
2026-10-21 20:06:25 +08:00
yenharvey 4a5d60952b build: 安装包与数据包不再带含章·知微
三个桌面平台都是有含章·通变就不加载知微,而通变一直随包,知微从来用不上,白占 53MB。
用户自己放进数据目录 models/hanzhang-zhiwei/ 的仍然认。data-fetch 兼容还带着知微的 data-v7。
2026-10-21 15:06:25 +08:00
bfxh c7027872fe ci: 加 rustdoc 文档门禁,并修掉它报出的文档断链与裸标签 (#738)
RUSTDOCFLAGS=-D warnings 跑 cargo doc,core 与 windows job 各一处;修掉 main 上公开文档链私有项、断链、裸 HTML 标签与跨 cfg 断链。
2026-10-21 09:30:14 +08:00
bfxh 141c231b44 ci: 加 shellcheck 门禁,并给 shell 脚本钉死 LF (#737)
CI 此前只对 4 个 Linux 脚本做 bash -n;shellcheck 只报 warning 及以上。.gitattributes 让 *.sh 始终以 LF 检出,避免 CRLF 让 shebang 失效。
2026-10-21 09:29:48 +08:00
dependabot[bot] 29e6b6ceeb build(deps): bump dtolnay/rust-toolchain from e2a55d2ffb04f378e9626c28d38b36d230d1e12f to 683b588c487a69d01f6c6ddf40f036ff682cc2c8 (#725)
Bumps [dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain) from e2a55d2ffb04f378e9626c28d38b36d230d1e12f to 683b588c487a69d01f6c6ddf40f036ff682cc2c8.
- [Release notes](https://github.com/dtolnay/rust-toolchain/releases)
- [Commits](https://github.com/dtolnay/rust-toolchain/compare/e2a55d2ffb04f378e9626c28d38b36d230d1e12f...683b588c487a69d01f6c6ddf40f036ff682cc2c8)

---
updated-dependencies:
- dependency-name: dtolnay/rust-toolchain
  dependency-version: 683b588c487a69d01f6c6ddf40f036ff682cc2c8
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-20 20:32:47 +08:00
yenharvey 806ba6b078 ci(deps): audit 先忽略 zip 8.6 的三条公告
RUSTSEC-2026-0367/0368/0369 都在 zip 的解压接口上,9.0 才修;zip 是 candle-core 带进来的,我们只用它读模型文件、不解压压缩包。audit.toml 变了也触发 audit。
2026-10-19 16:06:14 +08:00
yenharvey 2e1a23ac55 ci: Fcitx4 依赖等 Fcitx5 测试跑完再装
26.04 上装 fcitx-libs-dev 会把 fcitx5 卸掉,原来放在开头装,Fcitx5 的测试其实跑在没装 fcitx5 的环境里。
2026-10-19 15:48:40 +08:00
bfxh 1262ef8c33 ci: Linux job 也编 Fcitx4 壳并跑它的 CTest (#690)
Fcitx4 壳与 Fcitx5 共用 connection.cpp,此前没有任何检查编它。
2026-10-19 15:43:16 +08:00
bfxh 55d330659a ci: 加依赖许可证与来源检查(cargo-deny)(#689)
许可证白名单逐条放行,git 依赖只认登记过的 cosmic-text fork 且必须钉 rev。
2026-10-19 15:36:35 +08:00
bfxh 0221efa189 ci: 加 Ubuntu 22.04 容器 job (#693)
文档写明支持的最老发行版此前没有 CI 覆盖。
2026-10-19 15:36:31 +08:00
bfxh 7ec9a9eb69 ci: macOS job 钉 macos-26,与发版同一个 runner (#691)
macos-latest 会随 GitHub 漂移,CI 与发版构建不在同一个环境。
2026-10-19 15:35:55 +08:00
yenharvey f8b1167434 chore: 合并 main 到 refactor/render-engine
- 菜单编号:macOS 设置 5、符号面板 6;Windows 符号面板 7、旧版设置 8
- Linux 打包带上设置程序与 hicolor 八档图标
- 用户文档里的设置指路改成新设置的页名,内容取 main 的
2026-10-15 15:20:10 +08:00
dependabot[bot] f6d1c1ed5e build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.2 (#610)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.2 to 7.0.2.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/ea165f8d65b6e75b540449e92b4886f43607fa02...cf430e030ddbb5b0abf93d22962f4752f3646cd9)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-14 23:08:31 +08:00
dependabot[bot] 1b047472ad build(deps): bump dtolnay/rust-toolchain (#611)
Bumps [dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain) from 7e38f4b43b4db5c8dd498af069a4f6196df1d067 to e2a55d2ffb04f378e9626c28d38b36d230d1e12f.
- [Release notes](https://github.com/dtolnay/rust-toolchain/releases)
- [Commits](https://github.com/dtolnay/rust-toolchain/compare/7e38f4b43b4db5c8dd498af069a4f6196df1d067...e2a55d2ffb04f378e9626c28d38b36d230d1e12f)

---
updated-dependencies:
- dependency-name: dtolnay/rust-toolchain
  dependency-version: e2a55d2ffb04f378e9626c28d38b36d230d1e12f
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-14 23:08:26 +08:00
yenharvey f325ddad78 feat(settings): 换掉旧设置程序,旧版留一个版本作回退
- macOS:设置程序作为独立 .app 装进 Qingjian.app/Contents/Applications,菜单「设置…」打开它,包里没有时退回旧版;原偏好设置改名「旧版设置…」
- Windows:qingjian-settings.exe 换成新程序(状态条齿轮、开始菜单「青简设置」),旧 WinUI 程序改名 qingjian-settings-legacy.exe,开始菜单「青简旧版设置」,互斥体与窗口标题分开以便同时开
- Linux:安装与预编译包带上 qingjian-settings 与应用菜单项
- 新程序:Windows 不弹控制台、嵌图标、只开一个;日志另写一份到输入法日志目录,按天留 7 天;随包数据按各平台安装布局找
- 测试 config_keys 离屏点遍每页控件,写了的键用输入法的 Config 读回核对;补上「英文模式也给候选」漏掉的 ⓘ
- ⓘ 点了打开官网文档对应的一段,测试核对锚点在 docs/user 里真有、行在那页上真有 ⓘ
- 用户文档按新的页重写设置一页,各处「偏好设置 → 通用」这类指路改成新页名;contributing「控件面原生」一条改为设置程序自绘
2026-10-12 10:07:26 +08:00
yenharvey 0c06fccc32 build(windows): Server 的 uiAccess 改成缺省不带,签过名才打开
签名还在申请,没签名的 exe 带 uiAccess=true 起不来(「从服务器返回了一个参照」);
build.rs 原先缺省带,直接 cargo build --release 出来的 Server 跑不起来。发版与 build.ps1 本来就显式设 0,不受影响。
2026-10-10 14:01:20 +08:00
bfxh 8ca99a5ce4 ci: 各 job 加超时,Linux 测试失败时上传诊断构件,补装 fcitx5 与发版一致 (#525) 2026-10-10 11:32:05 +08:00
dependabot[bot] 24b08ac292 build(deps): bump dtolnay/rust-toolchain from 02cb101ec7c40f2c49e1d9714d64511d8e1b74de to 7e38f4b43b4db5c8dd498af069a4f6196df1d067 (#409)
Bumps [dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain) from 02cb101ec7c40f2c49e1d9714d64511d8e1b74de to 7e38f4b43b4db5c8dd498af069a4f6196df1d067.
- [Release notes](https://github.com/dtolnay/rust-toolchain/releases)
- [Commits](https://github.com/dtolnay/rust-toolchain/compare/02cb101ec7c40f2c49e1d9714d64511d8e1b74de...7e38f4b43b4db5c8dd498af069a4f6196df1d067)

---
updated-dependencies:
- dependency-name: dtolnay/rust-toolchain
  dependency-version: 7e38f4b43b4db5c8dd498af069a4f6196df1d067
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-10 09:55:38 +08:00
yenharvey b6c68352a5 chore(release): 合并主线并准备 0.1.5-beta.1
合并三平台共用发布流程、更新检查和最新输入改动,接入含章模型的数据打包与安装路径。保留已确认的 beta 更新日志和网盘入口,修复未发布节阻断发布索引的问题。
2026-09-29 12:31:24 +08:00
yenharvey a41d1cf82a feat: 接入含章·通变与知微模型
接入含章·通变的拼音解码、整句重排与词图兜底生成,扩展 macOS、Windows 和 Linux 的模型加载路径。模型文件按正式标识归档,保留旧用户目录回退,并同步数据打包、评测记录和用户文档。
2026-09-29 12:02:00 +08:00
yenharvey 26c613c8ae feat(release): Linux 预编译包、三平台共用一个 Release、网盘链接
- Linux:apps/linux/scripts/package.sh 在 Ubuntu 26.04 上打 qingjian-<版本>-linux-x86_64.tar.gz(Server、Fcitx5 插件、产品数据、install.sh),与源码安装共用 files.py 的清单与校验;Linux 版本号对齐 0.1.4-dev
- release.yml:v<版本> 标签发三个平台,prepare 建草稿 → 各平台并行打包上传 → publish 合并摘要与构建信息后转正;有平台失败就停在草稿;单平台补丁仍可用 macos-v / windows-v / linux-v 标签
- CHANGELOG 版本标题下的「网盘:」行进 releases.json 的 mirrors 字段,GitHub Release 说明放在最前
2026-09-24 10:10:02 +08:00
yenharvey 795a0c70d2 feat(update): 检查更新(只提示)与版本索引的 ed25519 签名
新 crate qingjian-update:读官网的 releases.json、验签名、按平台 / CPU / 渠道挑比当前新的版本,结果写 update.json;
[update] check / channel 配置;macOS 输入法菜单、Windows 任务栏「中 / 英」图标的右键菜单与两端「关于」页提示,
点开下载页,不下载不安装;-dev 本地包不检查(QINGJIAN_UPDATE_VERSION 可顶替版本号来测)。
发版侧 tools/release-sign 给索引签名,release.yml 没配 QINGJIAN_INDEX_SIGNING_KEY 时门禁失败。设计见 docs/design/update.md。

macOS 菜单里「有新版本」这一行必须放在普通条目那一组:放在最后一条分隔线之后时 IMK 每次按键都新建会话、打不了字
(对照构建逐个验过,见 update.md)。
2026-09-23 16:56:17 +08:00
dependabot[bot] 854081d2c9 build(deps): bump dtolnay/rust-toolchain (#201)
Bumps [dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain) from 6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 to 02cb101ec7c40f2c49e1d9714d64511d8e1b74de.
- [Release notes](https://github.com/dtolnay/rust-toolchain/releases)
- [Commits](https://github.com/dtolnay/rust-toolchain/compare/6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772...02cb101ec7c40f2c49e1d9714d64511d8e1b74de)

---
updated-dependencies:
- dependency-name: dtolnay/rust-toolchain
  dependency-version: 02cb101ec7c40f2c49e1d9714d64511d8e1b74de
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-22 09:14:51 +08:00
BROX_Lighters. 2b2902d70b feat(linux): 接入 Rust Server 与 Fcitx5 默认候选面板 (#90)
Linux 第一阶段:Rust Server + 薄 Fcitx5 插件 + 用户目录安装,候选窗用 Fcitx5 自带面板。
目前只支持源码安装、手动启动 Server;自绘候选窗、自动启动与打包在后续阶段。
2026-09-20 15:49:20 +08:00
yenharvey 5fe018cb08 chore(release): 安装包改名、渠道改成更新渠道、索引加 schema_version 与 cpu
为接入 Homebrew 自建源 / WinGet 与软件内检查更新做准备:安装包文件名固定为
qingjian-<版本>-<平台>-<cpu>[-setup].<扩展名>;CHANGELOG 与 releases.json 的 channel 表示更新渠道,
0.1.3 标 stable,带预发布后缀的版本由 release.yml 标成 GitHub 预发布。
2026-09-17 15:36:01 +08:00
yenharvey 59312c5cad build(release): 产品数据改成不可变的 data-vN Release,仓库锁文件钉版本
滚动覆盖的 data Release 让老提交自编译拿到新数据、CI 只按 Release 自己的 SHA256SUMS 自校验。
现在 data-bundle.sh 发新号并写 tools/release/data.lock,data-fetch.sh 按锁文件下载校验,CI 与自编译同一条路;
build-info.json 多记 data_tag。老 data Release 冻结不删。
2026-09-16 17:53:45 +08:00
yenharvey f81a737e16 Windows:安装包并排装 32 位 TSF DLL,修 32 位应用无法输入
企业微信 / WPS / 32 位 QQ 这类 32 位进程加载不了 64 位 DLL,切到青简后聚焦即静默回退到别的输入法。
- build.ps1 多编一份 i686 DLL;qingjian.iss 并排装 qingjian_tsf-<版本>-x86.dll,用 SysWOW64 的 regsvr32
  注册(写进 WOW6432Node 给 32 位进程),升级 / 重装 / 卸载清理都带上。
- .cargo/config.toml 给 i686 目标同样开 crt-static;CI(ci.yml + release.yml)加 i686 target 与一个 32 位 check。
- CHANGELOG 与 installer/README 各补一条。

Closes #76
Closes #13
2026-09-16 09:39:09 +08:00
yenharvey b77c076c30 仓库:官网文档只随发版同步(删 docs 工作流、bump-website 去掉 docs 模式);加 PR 模板 2026-09-13 20:57:16 +08:00
yenharvey c9d48f9a01 发版数据:本地整句模型改成上传单文件 model.qjm,CI 两个 job 下载放 data/model
data-bundle.sh 三件套比 .qjm 新就调 pack-model.sh 重打、原样上传 model.qjm 并删旧的 qingjian-model.tar.gz;
release.yml 下载校验后 mv 到 data/model/,build-info.json 记 model_sha256;docs/notes/release.md 同步
2026-09-12 17:08:05 +08:00
dependabot[bot] 8a2474caf0 Bump Swatinem/rust-cache
Bumps [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) from 63fed3e2fecf6f7b51dc6f043341b79ef82a9ae7 to 6323deb102c322ba6fcbdcafc7e3dddab59af2b6.
- [Release notes](https://github.com/swatinem/rust-cache/releases)
- [Changelog](https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md)
- [Commits](https://github.com/swatinem/rust-cache/compare/63fed3e2fecf6f7b51dc6f043341b79ef82a9ae7...6323deb102c322ba6fcbdcafc7e3dddab59af2b6)

---
updated-dependencies:
- dependency-name: Swatinem/rust-cache
  dependency-version: 6323deb102c322ba6fcbdcafc7e3dddab59af2b6
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-12 13:11:24 +08:00
yenharvey ed156c64fd CI:三平台 job、actions 钉 commit、--locked、最小权限、发版门禁(标签在 main 上、数据按 SHA256SUMS 校验)、Dependabot + cargo audit;钩子加禁装饰性分隔注释与 pre-push 测试
- ci.yml:core(Linux 全量)/ macos(IMK 壳)/ windows(Server、TSF DLL、Settings)三个 job,Windows 代码以前在 Linux 上只是被 cfg 跳过;
  Windows job 设 QINGJIAN_UIACCESS=0(没签名的测试二进制带 uiAccess manifest 起不来,os error 740)
- 第一次在 Windows 上跑测试就抓到一个:TSF 日志的 days_from_civil 把 719468 加成了减,1970-01-01 算成 1438936(只用来比大小,功能没受影响)
- release.yml:secrets 不放顶层 env、有没有配由第一步算成输出;merge-base 门禁;产品数据 SHA256SUMS 校验并记进 build-info.json 的 data_sha256;docs.yml 同样钉 commit、只读权限
- bundle.sh / build.ps1 的 cargo build 加 --locked
- .githooks/pre-commit 拒绝 // ==== 这类只做视觉分组的分隔注释(与 unuvojo-server 同一条规矩),.githooks/pre-push 跑全 workspace 测试
- 正式版前欠的(数据不可变 tag + 锁定、安装包内容验证、cargo deny、fuzz / Miri)记进 todo 与 release.md
2026-09-12 13:05:57 +08:00
yenharvey b1835f5231 版本号:发版之间带 -dev(mac 0.1.2-dev、win 0.1.0-alpha.2-dev),本地与 CI 中间构建一眼能与线上包区分
- 发版提交去掉 -dev 再打标签,标签后只改 Cargo.toml 到下一个 -dev;-dev 版本没有标签与 Release,release.yml 两个 job 拒绝带 -dev 的版本
- bundle.sh:Info.plist 与 pkg 文件名保留完整版本,pkgbuild 与 distribution.xml 只认数字点号、用去掉后缀的 PKG_VERSION(已实际打包核对)
- Windows 设置程序的构建标识在工作区有改动时加 +,与 mac 一致
- 规矩写进 CLAUDE.md 与 docs/notes/release.md
2026-09-12 12:18:53 +08:00
yenharvey 3e153b21cd Windows 发版:release.yml 加 windows job,0.1.0-alpha.1 内测版
- release.yml 认 windows-v* 标签:下载产品数据 → 装 Inno Setup 7.1.0(与开发机同版本,钉死 jrsoftware/issrc
  的 GitHub Release 并核对 SHA-256)→ build.ps1 打安装包 → 建 Release;两平台共用 publish-releases-json.sh
  生成 releases.json 并覆盖到 GitHub latest(顺带修了只认 v* 标签漏掉 macos-v* 的问题)
- build.ps1 优先用 Program Files 里的 Inno Setup 7,PATH 上的 6(CI 镜像自带、不带简中翻译)退居其后;
  QINGJIAN_ISCC 可直接指定
- 没有代码签名证书:QINGJIAN_UIACCESS=0 让 Server 不嵌 uiAccess(没签名的 exe 带 uiAccess 起不来);
  在开发机上按 CI 条件跑过 build.ps1 + 静默安装,Server 能启动、数据全部加载
- Inno 的 VersionInfoVersion 只认数字,预发布后缀去掉再传;releases_json.py 认 -Setup.exe
- 三个 Windows crate 版本 0.1.0-alpha.1;CHANGELOG 加内测版说明;docs/notes/release.md 加 Windows 发版一节
2026-09-11 20:50:56 +08:00
yenharvey b84bfd5c3f 各平台壳版本号独立:发布标签加平台前缀,脚本改读 app 包版本
apps/* 是各自独立发布的产品,版本号不该跟 workspace 或彼此同步(macOS 修的 bug
不该让 Windows 涨版本)。mac 到 0.1.1、win 还在 0.1.0,光靠 v<版本> 标签会撞车。

- apps/macos 用自己的 version(0.1.1),不再 version.workspace。
- 发布标签按平台加前缀 macos-v* / windows-v*;bundle.sh 与 release.yml 都改读
  apps/macos/Cargo.toml 的包版本、按去掉 macos-v 前缀后的标签比对。
- releases_json.py 的 TAG 正则接受可选平台前缀(macos- / windows- / linux-),
  向后兼容旧的 v* 标签。
- CLAUDE.md 与 docs/notes/release.md 记下该约定与新的打标签方式。
2026-09-11 19:35:01 +08:00
yenharvey 969a73b5dd docs.yml 可手动触发:随时让官网重建 2026-09-08 18:04:28 +08:00
yenharvey e342fb49e0 发版后让官网重新构建:往官网仓库推一个小提交(Cloudflare 按提交自动构建,没有构建钩子)
release.yml / docs.yml 改调 tools/release/bump-website.sh,写官网的 src/content/upstream.json(版本标签、文档提交号)并推送;QINGJIAN_WEB_TOKEN 改为对 qingjian-web 有 Contents: write 的 PAT。
2026-09-08 17:54:11 +08:00
yenharvey 7a2ccc7691 v0.1.0:首个版本
青简(Qingjian):用 Rust 写的拼音输入法,候选词旁多一条正在学的那门语言的译词,一次只学一种。
核心引擎平台无关(crates/),macOS 输入法(apps/macos)已可用,CLI 测试工具(apps/cli),
产品数据生成工具(tools/),设计文档、计划与用户文档在 docs/,发版流程见 docs/notes/release.md。
2026-09-07 19:17:46 +08:00