Repository navigation
Releases: billowsand/gongwen
Release list
公文助手 v0.9.8
公文助手 v0.9.8
本版本集中在应用内输入法的词表:初始基础词表纳入版本管理、随包携带并按公文口径清理了一遍口语与冗余词;「输入法词表」页按实际维护习惯重做成快速操作(就地编辑、批量移除、撤销、直接改码);「公文词表」审阅默认跳过输入法已经能输入的同名词,不再重复确认。
输入法:基础词表
- 安装包不再缺初始基础表。初始词表
quan.txt纳入版本管理(.gitattributes按字节存取),打包脚本统一把它复制为runtime/ime/base.txt,所有平台随包携带同一份;首次运行优先用户目录已有的ime/base.txt,没有才用随包这份,旧版导入的音形表仍可迁移。 - 剔除口语词条。删掉 2,130 条编码行,涉及 1,664 个口语化的多字词(聊天应答与语气词、方言口语、亲属口头称谓、拟声象声、网络俚语、表情符号)与 59 个粤、吴方言单字;单字表、公文常用词、专业术语与成语典故保留。
- 按公文口径再清理 5,798 个词。用本机小模型对 40,970 个多字词逐个判定是否收进公文输入法,模型判删 6,800 个,再人工逐批复核救回 1,208 个(政务、法律、经济、军事、医疗、农林、环保、网信与计算机术语、成语典故、标点排版术语、单位与企业平台名、地名姓氏等),最终删除 5,798 个词、移除 6,605 行,全表 57,874 → 51,269 条(单字 12,304 / 双字 25,605 / 三字 3,240 / 四字 9,000 / 四字以上 1,130)。两个「全表下限」测试的阈值相应由 55,000 降到 50,000,仍能挡住误截断。
- 维护侧拆成五个分表。
assets/fuma/quan/下按字数分为单字、双字、三字、四字、四字以上五份,quan.txt由scripts/merge-ime-tables.py合并生成(UTF-16 LE + BOM + CRLF);加载器与打包脚本不变,随包仍然只有quan.txt一份。基础词表统一为这一份正式来源,macOS 不再优先mabiao.txt(只作旧机后备)。
输入法词表页:改为快速操作
按实际维护习惯重做,取代原先的五个标签、常驻右侧详情与独立体检摘要:
- 只留「词条」与「检查」两个常用页,整页是虚拟滚动的表格。查码、导入来源启停、构词规则、最近 20 次修改记录与「同步公文词表」收进「更多」;候选顺序与查码在行尾「…」按需打开,不再占常驻侧栏。
- 一个搜索框认文字或编码:纯字母与
?按编码前缀/通配查,其余按文字包含查;来源下拉框常驻,码长、字数、重码等折叠进「更多筛选」,默认不显示已屏蔽词。 - 就地编辑与批量操作:双击文字或编码直接改,Enter 保存、Esc 取消;复选多条可「移除所选」,或按 Delete 移除。个人词直接删除,其他来源的词只在个人层屏蔽,切到「已屏蔽」可恢复。
- 检查页不再「审核后再应用」:编码不符规则的词可直接「改用建议码」,也可双击手改,多条建议一次处理;冗余与失效记录逐项清理;多码与重码只提示、不认定为错误;「忽略」只对本次运行有效,可「重新显示」找回。
- 导入与导出各走各的菜单:普通导入直接导入有效词条、无效行明确提示跳过;更新基础表与恢复个人备份先看覆盖范围再确认;文件保存失败不丢弃预览。导出默认给生效词表,也能导出当前筛选或个人设置备份。
- 新增本次运行的撤销:点提示旁「撤销」或按 Ctrl+Z 撤回最近操作,批量移除与批量处理各按一次撤销;首次加词也能撤销;输入框内 Ctrl+Z 仍用于撤销正在输入的文字。撤销最多保留 20 次并按快照总量裁剪,退出后仍可从「更多 → 修改记录」恢复个人层历史;基础表更新会清空本次撤销栈。
- 加词窗简化:默认只显示文字、编码与「添加 / 连续添加」,输入文字自动出码、手改编码也行;逐字码、其他可能码、已有候选与「设为该码首选」展开放进「候选与更多选项」。
- 修正界面帧尾清掉本帧 dirty 标记、导致保存或撤销后结果与检查不重算的问题;词表页
Ctrl+N加词,Ctrl+F不再被稿件快捷键提前吃掉。
公文词表:不再重复审阅输入法已有的词
- 默认隐藏输入法里已经能输入的同名词,按完整文字判断(不要求编码相同,简码也算),基础表、个人词条与已启用的导入表都参与判断,已屏蔽或停用的不算;「待确认」等概况统计同样排除这些词。勾「显示输入法已收录词」可临时查看,隐藏不等于拒绝、不改原有审阅状态,完整码表导出不受影响。
- 先过滤再截断:列表上限截断在去重之后发生,避免前 500 条全是已有词时把后面的新词挡掉;「接受列出的全部」只作用于当前可见列表。在输入法里增删词、启停来源或撤销后,回到本页自动更新。
编辑器
- 源码区空稿提示语跟随正文排版:不再按界面默认字体与行高贴在行框顶端,改为复用 Markdown 排版与对齐逻辑按正文原点排一遍,字号、字面、主题、源码与对照两种模式都是同一副样子;空目录面板图标的悬停提示共用同一句文案。
文档
- 使用帮助第 17 章「公文词表与输入法」:补「默认隐藏输入法已收录词」的口径与开关,重写「输入法词表页」一节为「词条 / 检查 / 导入…导出… / 更多」与撤销规则,加词窗、查码入口、同步公文词表的位置全部按新界面改写;设置章与常见问题同步。
- README:输入法一节改按新界面描述(快速增删改、就地编辑、批量移除、撤销、检查直接改码、更多菜单),硬数字同步为约 25.2 万行 Rust、2337 项自动化测试。
质量检查
- 两平台 CI 门禁(格式、clippy、2337 项自动化测试)全部通过。
- 新增覆盖:公文词表去重的独立来源集合(屏蔽 / 启停 / 来源重名 / 自己同步)、先过滤后截断与受影响统计、「接受列出的全部」只取可见列表;快速表格的就地编辑、批量移除与撤销栈;空稿提示语在六个主题 × 两种模式下与正文的字面、字号、基线、左缘逐项比对。
- 词表侧按真实词表跑了三个 ignored 测试(往返完整性、四码首选命中率、全表体检),全表条数下限同步下调到 50,000。
下载
- Windows x64 安装程序
- Linux ARM64 Debian 软件包(兼容 GLIBC 2.28 / Ubuntu 20.04)
各安装包均附带 SHA-256 校验文件。
公文助手 v0.9.7
公文助手 v0.9.7
本版本的核心是富文本粘贴转 Markdown:起草页 Ctrl+V 把 Word / WPS / 网页 / Excel 复制来的富文本和多行纯文本直接转成公文助手 Markdown,编号、标题、列表、文框、图片各归各位;版式预览对横页附件同步切横纸,使用帮助改为一篇研究报告、按研究报告的版式排印。
粘贴:富文本与多行纯文本一键转 Markdown
- 第一期:接管
Ctrl+V。剪贴板里有 HTML(Word / WPS / 网页 / Excel 富文本)时自动转成公文助手 Markdown,只有多行纯文本也走同一管线;Ctrl+Shift+V始终原样粘贴,智能粘贴后可一键「改为原样粘贴」,块级与行内粘贴都是同一个撤销点。HTML 解析按容错口径做,不认识的花样降级而不是粘坏。 - 第二期:结构还原。点分编号(1 / 1.1 / 1.1.1…)认到四级标题,ASCII 罗马数字(I. / II. 成组才认)与字母编号(A. / (A)/ (a))接最浅层级,全角罗马数字(Ⅰ–Ⅻ)当最浅一层;孤立的一行「3.2.1 技术路线」和小数(1.5亿元、1.1倍)都不算编号,原文编号跳号(一、→三、)会报告并重新编号。样式标题按插入点所在章节整体定级,稿子里不再冒出
#;句中粘贴压成一行行内文字(表格除外),只保留加粗等行内格式。列表整理成紧凑两级,白头件与呈批件不收列表、自动拆成段落。导入旧材料与「整理结构」走同一套编号规则,导入结果逐字未变。 - 第三期:研究报告认文框,AI 侧栏材料保留表格。网页的
<aside>、Word 的「文本框表格」、带边框或底纹的容器在研究报告里认成文框(首段加粗短标题作名称,取不到写「专栏」并在状态栏提醒);AI 侧栏的大段粘贴成为临时材料时保留管道表,不再散成制表符,闸门照样拿材料全文核对,三条红线不受影响。 - 第四期:图片随文字入库。剪贴板里的本地图片(data: / file:)随粘贴入库、原位插图,取不出的图留注释不阻断;网络图片一律不下载。宽高都不超过 32 像素的跟踪像素、图标与隐藏图略过,单行内容只在确有可入库图片时才接管——「复制一个词」不再变成块级粘贴。
- 验收修正:点分编号不误删日期与数量(「10.1 国庆假期安排」「1.2 个百分点」保住了),行内粘贴保住字段分隔空格,文框名称不再吃掉标题里的字,会议议程拉平成一级连续编号,复制的现成 Markdown 粘进 AI 侧栏原样保留。
- 已知边界:只复制一张图片时剪贴板里没有文字、粘不进来(先存文件再插图);Word 公式待真实样本再单独做。
版式与排版
- 版式预览同步附件自动横页:预览对每份附件调用与导出相同的横页判定,判定为横页的附件整张纸切成横页几何(225mm 版心、左边距 35mm、上边距 28mm),并按 210/297 等比压缩到与竖页同宽,整篇预览共用一个缩放级别;表格按横版心列宽重排,附件标题仍按竖版心断行,与导出 PDF 一致。
- 修复公函 PDF 版记抄送与印数换行排版。
- Markdown 编辑器各主题垂直对齐统一。
- 修复稿纸中 Markdown 标题偏上的问题(v0.9.6 回归)。
研究报告
- 使用帮助改为一篇研究报告:
assets/help/的一篇研究报告就是全部帮助(docs/help 副本删除),应用内直接用研究报告预览排、「生成 PDF」走研究报告 Typst 链,帮助不再有自己的渲染器;手册目录、发布技能与技能包同步。 - 预览认代码围栏:研究报告预览识别代码围栏,行内代码里的引用与公式按字面排,不再误当公式与文献。
- PDF 只给有表题的表编号,代码不再排连字与全角括号。
文档
- README:新增「粘贴即转换」(编号定级、跳号报告、句中粘贴、图片入库、
Ctrl+Shift+V原样粘贴);硬数字同步为约 25.1 万行 Rust、2325 项自动化测试。 - 使用帮助:第 6 章「编辑器」随四期补粘贴转换(点分编号、跳号提醒、按章节定级、两级列表、句中粘贴、文框、侧栏材料表格、图片入库)与已知限制。
安全
- 升级
ctutils0.4.3 → 0.4.4,修掉当日发布的 RUSTSEC-2026-0385(const fn掩码生成与 32 位目标上u128比较的常量时间问题;经 digest 传递依赖引入,项目不直接调用受影响函数,随补丁版升级消除)。
质量检查
- 两平台 CI 门禁(格式、clippy、2325 项自动化测试)全部通过。
- 新增覆盖:富文本粘贴四期的夹具测试(编号方案、章节定级、文框候选、材料表格、图片入库与跟踪像素略过),「整形后的列表经导出解析器读回仍是两级」的往返测试,横页附件预览的版心压缩对照测试。
下载
- Windows x64 安装程序
- Linux ARM64 Debian 软件包(兼容 GLIBC 2.28 / Ubuntu 20.04)
各安装包均附带 SHA-256 校验文件。
公文助手 v0.9.6
公文助手 v0.9.6
本版本把打印收进程序自己:Windows、macOS、麒麟上是同一个对话框,从选打印机到页面预览、双面与手动翻面、按打印机记偏好,再到进度与取消;稿件包换成 .gwx 并登记了文件类型与文档图标,程序已开着时双击交给已开的窗口;主题默认跟随系统明暗、缩放改为预设档位。另有一轮安全加固:unsafe 用法收敛、崩溃面与资源上限、接口路径穿越与无上限响应一并堵上。
打印:三平台同一个应用内打印对话框
- 第一期:选打印机、份数、页码范围。打印机清单带默认标记与状态(就绪 / 暂停 / 脱机 / 缺纸),默认选上次用过的那台;份数与「逐份打印」,页码支持全部、当前页或自定义(如
1-3,5,中文逗号、顿号、全角数字也认,8-表示到末页),底部算出大概要几张纸。Windows 由 DEVMODE +CreateDCW建设备上下文,按实际大小与纸张方向出图,修掉缩印约 4% 与横向附件被缩到七成的问题;macOS 与麒麟经 CUPS。PDF 查看器支持Ctrl/⌘P。 - 第二期:双面、颜色、纸张、纸盒、缩放。选中打印机后后台查能力(Windows 用
DeviceCapabilitiesW,CUPS 解析lpoptions -l,不解析会被翻译的句子),对话框按打印机名缓存,只画能用的选项:没有双面单元的长边 / 短边置灰,单色机固定「黑白」,纸盒为空置灰。缩放分「实际大小(公文推荐)」与「适合纸张」,后者供纸型与版面不一致的外来 PDF 用。 - 第三期:按打印机记偏好、进度与取消、手动双面。双面、颜色、纸张、纸盒、缩放按每台打印机分别记住,优先级是「用户动过的 > 文档默认值 > 这台打印机的偏好 > 打印机默认」,且只填用户还没动过的控件。打印中对话框不关,显示「正在送第 3 / 12 页…」与「取消」,页数多可「转到后台」;CUPS 结果带任务号回报在状态栏。手动双面让没有双面单元的打印机也能打双面:先打正面,按提示把整叠翻面放回,再点「继续打印反面」,奇数页会提示先取出最后一张,「反面倒序出纸」按打印机记住。
- 第四期:页面预览与按稿件给默认值。对话框左侧按所选纸张的比例画出纸页并摆当前预览页,按实际大小换算毫米(放得下居中、放不下退回适合纸张),横页自动转向;纹理复用 PDF 标签已渲染的页,不为预览另起渲染线程,还没渲染的页显示占位并提示回到 PDF 滚动到该页。打开按双面排了页码的稿件或送批材料合并件时默认长边双面,整份横排默认短边;并给五条公文提醒(双面排却选单面、送批材料选单面、整份横排选长边、版面有红色却选黑白、所选纸张不是 A4 却用实际大小),只提醒不拦打印。
- Windows「打印机首选项…」:打开驱动自己的设置窗口(装订、打孔、水印等驱动独有选项),设过之后双面、颜色、纸张、纸盒四行以首选项为准并置灰,旁边「恢复」可以清掉,换打印机时自动清掉。
- 起草页功能区新增「打印…」:只按当前覆盖策略导出一份 PDF,排好后自动在应用内打开并弹出同一个对话框,不用先导出、再切到 PDF 标签去点打印。排版失败时不会打开对话框,状态栏说明「PDF 没有排出来,无法打印」;本机没有打印服务时按钮置灰。
- 打印对话框代码拆成
src/print/模块文件夹(dialog.rs超 2000 行按约定拆分);首选项逻辑去掉#[cfg(windows)],改为运行时按print::HAS_DRIVER_PREFERENCES决定画不画按钮,所有平台都可测。
稿件包:.gwx 后缀、文件类型登记与单窗口转交
- 稿件包改用
.gwx后缀,保存框删掉后缀时自动补上;明确手写.zip的仍然保留,批量导出 PDF 仍是.zip,包内格式不变、旧.zip照常导入。 - 安装即登记文件类型:新增
.gwx文档图标(48 px 及以下用无字版),Windows 安装包在 HKCU 登记「双击用公文助手打开」并显示图标、卸载时清除,升级包同样生效;Linux 增加application/x-gongwen-packageMIME 定义、desktop 声明MimeType并接收%F,deb 与 tar 包都装 MIME 定义与图标,verify-deb-install.sh逐项核对。 - 程序已开着时不再另开窗口:配置目录
instance.lock独占锁 + inbox 收件目录(不开端口、不加依赖),后起进程把路径写成请求后退出,主实例每 300 毫秒取请求、唤到前台并把稿件包送进导入队列;收件目录里超过 10 分钟的请求启动时丢弃,锁不可用时照旧开独立窗口,--new-window跳过检查。 - 启动参数与拖放进窗口的稿件包统一走
receive_import_package:先复制到缓存目录暂存再排队,前一个处理完自动弹下一个;窄屏单页详情时模态框照常绘制。
界面与主题
- 主题默认跟随系统明暗:浅色系统用 Claude 奶油、深色系统用复古暗,系统切换深浅模式时界面主题、公文纸面与应用图标跟着换;设置页与菜单「外观主题」都能开关,手动点选任一配色即改为手动选择。
- 界面缩放改为预设档位:80% / 90% / 100% / 110% / 120% / 150% / 175% 点选即用,旧配置里手填的自定义比例仍显示为选中档位。
- 稿纸主题收紧顶栏与纸签排布(顶栏高度 30、标题居中改为应用身份、稿名只留在纸签),输出区在宽窗下左右分栏;便签主题下的 AI 助手侧栏重新协调配色;预览栏的窄栏排版与空状态文字修好。
安全与稳定性
- unsafe 用法收敛:全 crate 默认
#![deny(unsafe_code)],仅四个 FFI 模块在声明处放行;Win32 句柄与剪贴板改用 RAII 守卫,每块unsafe写 SAFETY 注释;去掉用切片首地址相减反推偏移的写法。 - 崩溃面:用户数据可触发的
unwrap/expect/unreachable!改为错误返回或降级,锁中毒不再连带崩溃,修掉兜底分支在while循环里跳过自增导致的死循环。 - 资源上限:新增
src/file_limits.rs,读用户交来的文件先卡体积并限量读取;压缩包按实际解压字节累计上限,插图与同步导入共用单张图片上限。 - 外部调用:调外部进程传绝对路径并加
--,SQL 的表名走白名单,Windows 保留设备名;数据接口地址里的路径变量拒绝./..路径段(防模型被提示词诱导借规范化访问同主机的其他路径),单篇 PDF 编译改用tempfile随机独占目录,模型 / embedding / rerank 的响应体限 32 MB、流式单行限 16 MB、出错响应只读 64 KB;接口密钥原子写。 - 依赖侧升级 rustls、rustls-webpki、webpki-roots、quinn-proto 到修掉公告漏洞的小版本,CI 增加 RustSec 依赖漏洞扫描并补
checks: write权限。
文档
- README:「应用内直接打印」改写为应用内打印对话框的实际能力(选项、预览、按打印机记偏好、进度取消、Windows 实际大小出图与驱动首选项、起草页「打印…」);「同事间共享」补
.gwx文件类型登记与已开窗口时的转交;硬数字同步为约 24.6 万行 Rust、2251 项自动化测试。 - 使用帮助:11 章「打印」整节重写为四期后的对话框说明(打印机与状态、份数与逐份、页码、双面与手动翻面、颜色、纸张、纸盒、缩放、公文提醒、驱动首选项、页面预览、打印中、起草页「打印…」入口、按稿件给的双面默认值);02 / 20 章补主题跟随系统明暗与缩放档位;「ZIP 稿件包」改称「稿件包(.gwx)」并写明双击、拖放与旧版互传。
- 安装指南:补
.gwx文件关联与单窗口转交说明,打印依赖一段改为与三平台统一对话框的现状一致。 - 手册副本同步:
assets/help/(编进二进制的正文)与docs/help/此前在 02 / 11 / 20 三章上分叉——docs 侧有本版内容而二进制内的副本是旧的,本版已同步为逐字一致;章节口径仍是CHAPTERS25 条 = 正文 22 章 + 附录 3 篇。
质量检查
- 两平台 CI 门禁(格式、clippy、2251 项自动化测试)全部通过。
- 打印对话框的默认值、公文提醒、纸张换算、手动双面分轮与任务号提取都是纯函数并各配单测;
single_instance有真起子进程的跨进程锁与转交测试;安全侧新增模板注入回归测试。
下载
- Windows x64 安装程序
- Linux ARM64 Debian 软件包(兼容 GLIBC 2.28 / Ubuntu 20.04)
各安装包均附带 SHA-256 校验文件。
公文助手 v0.9.5
公文助手 v0.9.5
本版本把导入补成一条完整的链:旧稿里的标题、列表、图片一并带进来(EMF / WMF 矢量图转成高清 PNG),导入端新增清洗分区;写作侧支持独立列表下缩进子项;导出侧新增可编译的 Typst 包;另补上检查更新、首启示例稿、界面缩放与数据安全三件套(配置损坏兜底、崩溃日志、一键备份恢复)。主题精简为六套,egui 升到 0.36.2,两平台 CI 恢复全绿。
导入:文档里的图片与版式都带得进来
- Word 等文档里的内嵌图片会被取出入库:此前解析时只留下 alt 文本(Word 里通常为空),图片导入后悄悄消失。现在 PNG / JPEG(及 GIF / BMP / WebP)按文件头识别后原样入库,同一份字节只存一次;段落里的图拆成独立段,标题、表格、列表里的图挪到块后;alt 留空,免得研究报告把自动替代文字编成图题。
- EMF / WMF 矢量图转成 PNG:Visio 图、旧版 Office 图表与剪贴画在 Word 里以图元文件存放,此前只能在原位留注释。新增
src/metafile.rs,emf-core(WMF 转交wmf-core)转 SVG,再用画 Mermaid 的 resvg 与随包字体光栅化;图里的字体名按名字归到方正黑体 / 公文仿宋 / 方正书宋,缺字再按字形回退;画布留白后渲染、再裁掉空白边,统一放大到长边约 2400 像素。解析失败或画面为空时原位留注释写明原因,转换包在catch_unwind里,坏图不让程序崩。 - 取不出的图不阻断导入:TIFF、SVG、链接到外部的图片在原位留
<!-- [图片未导入:原因] -->,导出不印,状态栏汇总张数;写图片失败不阻断导入。PDF 里的图片仍取不出来。 - 导入端按版式还原标题与列表(确定性处理,不调用模型):段首「一、」「(一)」取第一句或冒号前短语作标题,其余作正文;「1.」「(1)」按版式定性转标题或列表,「①」一律转列表;Word 自动编号与带编号的标题样式按编号重排层级;开头像公文标题的段落升成一级标题;单独一行的「附件」「附件N」加标题改成附件标记;纯文本按一行一段读,拿不准的段落原样保留。
- 导入端新增结构清洗:CJK 与数字间空格、半角标点、全角数字、目录 / 链接 / 内联锚点 / 脚注 / 代码围栏 / 分隔线,以及表格列数、
<br>与空表头一并规范化;「第X章 / 节 / 部分」「1)」「字母编号」等层级补齐,标题多行与「(征求意见稿)」后缀处理,附件同行 / 折行标题与说明行、文首版头与文末版记剥离,「一是 / 二是」枚举拆行加粗、「第X条」加粗、无编号短标题加粗,并按实际用到的层级压紧、避免跳级。 - PDF 导入增加并段修复:按加粗编号、主送冒号、附件 / 抄送、落款 + 日期、列表短句重切段落;txt 按有无空行区分「一行一段」与「折行文本」;
.md导入复制正文引用的图片。 - 新增「清洗」功能区:公文编号与 Markdown 编号互转、去 Markdown 标记、清全部编号,以及空格 / 标点 / 转换残留 / 表格清理与一键整理。
- 真实公文导入样例回归:8 份 docx / txt / pdf 样例(通知、请示、办法、带标题样式的方案、Word 导出 txt、折行 txt、讲话稿反例、两页 PDF)各配一份
.expected.md完整对照,样例可用generate_samples.py重新生成。
写作与排版
- 独立列表支持一层缩进子项:独立列表项下面比它多缩进两格写的列表行,认作这一项的子项——不另起段,按段内列表的编号样式接在父项后面(
1.主要任务:①完善制度;②强化督查。)。解析器按缩进把连续列表行分成父项与子项,子项编号记入generated_prefixes,预览、导出(Typst / Word)、花脸稿据此还原版式;子项的末尾标点另成一组统一,父项原样保留(引出子项的冒号不动),最后一个子项落父项那一级的标点;研究报告 Word 与 PDF 共用同一套正文解析,起草页回车续写也支持缩进子项。设置里的「一级列表(段内)/二级列表(独立)」改称「段内列表/独立列表」。 - 修复内置英文模式仍输入中文标点的问题;中文标点补上「
\\出顿号」(微软拼音等通行约定),半角模式原样输出符键。
导出
- 新增可编译的 Typst 包导出:包里是模板、
doc.json与数据(插图 / Mermaid / 公式 SVG /references.bib)打成的 zip,不含字体;解压后typst compile gongwen.typ(研究报告research.typ)即可编译。模板的字体角色同时接受字符串与数组。
界面与体验
- 锤子主题的公文预览加便签纸面装饰:双线页框、四角收口、顶部轻压暗与柔和投影;预览、呈批件与电话记录单共用同一套纸底绘制,装饰只用于屏幕预览,不进入导出。
- 界面主题精简为六套(Claude 奶油、MDEX 纸墨、锤子稿纸、北欧、复古暗、MDEX 夜墨):移除曝光浅、拿铁、复古浅、德古拉、东京夜;旧配置里的这些主题名仍能反序列化,统一回退到 Claude 奶油。
- 界面缩放 80%–175%:设置页拖完立即生效,不影响导出的公文版式;高分屏字太小或窗口装不下两栏时先调这里。
- 首次启动自动载入两篇示例稿(一篇公函、一篇白头件),可直接改可删,预览直接成篇。
- 关于窗新增「检查更新」:后台线程查 GitHub releases/latest(5 秒超时、走系统代理设置、地址可在设置页改),结果内联展示,离线优雅降级。
数据安全与设置
- 数据安全三件套:配置解析失败不再静默丢配置(原文件改名留底
config.json.损坏-<时间戳>,启动弹模态提示);上次异常退出的崩溃日志从状态栏一行字升级为启动模态框,可复制路径、可打开日志目录;设置页新增「数据备份」分区,一键全量导出 ZIP(排除日志与瞬态文件、WAL 检查点后打包)、校验后恢复(当前目录改名留底、条目名净化防 ZipSlip、关闭 SQLite 连接、解压失败回滚、恢复后引导重启)。 - 自动保存间隔做成真配置:默认 120 秒、限 30–600,设置页可调即时生效。
- 修复备份一致性与任务互斥问题,补齐更新检查的唤醒路径。
工程与依赖
- 依赖升级:egui / egui_extras / egui_kittest 0.36.2(egui_dnd 同步 0.17.0)、zip 4.6.1 → 8.6.0(calamine、docx-rs、anydoc、rust_xlsxwriter 一并统一)、rfd 0.15.4 → 0.17.2(Linux 变体改走 xdg-portal + wayland)。完整测试 2049 项通过,68 张样张重新生成、66 张与升级前逐像素一致。
- 拆分六个超大文件为模块(纯代码移动):
export/docx.rs(2492 → 734 行)、preview/research.rs(2883 → 1183 行)、draft_page.rs(3082 → 720 行)、theme.rs(3288 → 805 行)、app/manuscript_ui.rs(3838 → 407 行)、models.rs(4264 → 996 行),各自按功能域拆出子模块并保留原有引用路径。 - 修复随包许可证缺失:
nucleo-matcher仍是直接依赖,其 MPL-2.0 许可证文本此前被误删,会让打包直接失败,已恢复。 - post-commit 钩子兼容 bash 3.2,空数组展开不再触发
unbound variable;修复 macOS 词表打包与 Windows 原有词表的兼容问题;DMG 打包在iconutil失败时继续并省略图标声明。
文档
- README:补上导入图片与版式还原、清洗功能区、备份恢复、检查更新、示例稿、界面缩放与独立列表子项;硬数字同步为约 23.8 万行 Rust、2157 项自动化测试。
- 使用帮助:19 章补内嵌图片与 EMF / WMF 转换的说明,06 章补列表子项写法,07 章补「清洗」分区,20 / 21 章补备份恢复、崩溃日志与配置损坏留底;
assets/help与docs/help两处副本逐字一致,25 章 = 正文 22 + 附录 3 的章节口径不变。 - 技能包(
gongwen-markdown)逐条对齐解析器:SKILL.md 改成自足版(输出契约、逐文种骨架、八个高频错误的正反例、落笔前自查),四份参考文档与八个文种模板重写,评测脚本增加跨厂商模型矩阵与重复跑次;评测报告补到 v5 最终数字(五轮主矩阵 97.2%,条件 B 18/18)。
质量检查
- 两平台 CI 门禁(格式、clippy、2157 项自动化测试)全部通过。
- 修复源码缩略图测试的误报:该断言原以「块的底边不低于视口上沿」判断越界,随包字体度量下滚动边界上的半行会差零点几像素而误红;判据改为「越界的行数不超过一行」,产品行为不变(块由
painter_at裁剪)。
下载
- Windows x64 安装程序
- Linux ARM64 Debian 软件包(兼容 GLIBC 2.28 / Ubuntu 20.04)
各安装包均附带 SHA-256 校验文件。
公文助手 v0.9.4
公文助手 v0.9.4
本版本打磨锤子稿纸主题的观感与源码视图布局,给普通公文加上横页排版;并修掉序号表、插图与长稿页数统计上的几处毛病,两平台 CI 恢复全绿。
界面:锤子稿纸按原图重校,源码视图收进一张稿本
- 锤子稿纸按锤子便签原图重新校准配色:渐变顶栏改为暖烟草棕、底板改浅蜂蜜桦木、纸面抽成奶油色调常量,正文与标题的墨色加深到约 8.7:1 的对比度;顶栏与顶栏面板之间去掉分隔线。
- 源码模式的目录、正文与缩略图共用一张稿纸卡片:目录空时收成只留图标的窄栏,标题层级加左侧标记,缩略图去描边并在锤子主题下淡化;顶栏纯图标按钮常态不再描边(悬停 / 按下改半透明白底与黑底),「菜单」按钮改用融入栏底的米白图标与文字;输出分区取消「文件导出 / 存放位置 / 最近导出」三组小标题,回到单行命令,组间只留短分隔线。
- 源码目录全主题统一:236 宽的目录布局、当前章节左侧标记与低对比侧栏不再只给锤子稿纸,侧栏配色随主题深浅,无标题时收成窄图标栏;行号改为按 galley 行首基线对齐、字号与正文一致,行距加宽时字形、下划线与逻辑基线一起下移,贴合稿纸横线。
排版与导出
- 普通公文新增「横页排版」:要素表单勾选后整份文件(含附件)排成横向 A4、左侧装订——版心 225×156mm、上下 28 / 26mm、订口 37mm、翻口 35mm,双面时镜像,页码单面居中、双面奇右偶左。PDF 仍落成竖向纸张加
/Rotate 90(双面打印选短边翻转),Word 走横向页面设置,预览纸张横放并按横向纸宽计算缩放与冻结层,三处一致。开关未勾时不写入快照,旧稿校验值不变。 - 序号表的分组行整格排楷体(
(一)重点工作那一行),字号不变。判定口径单一来源:必须同时满足序号表、非表头行、首列、跨度铺满整行;普通表格里整行合并的「合计」之类不受影响。公文 PDF(Typstkai标记)、研究报告 PDF(vendor mdx 同名标记)、预览(table_cell_font走FONT_KAITI)与 Word(楷体_GB2312 / FZKai-Z03)四条渲染路径同源。 - 插图按文件头识别格式:Typst 原先按扩展名定格式,PNG 存成
.jpg就解码失败,研究报告的插图尺寸也探不到;两支模板与 mdx 的尺寸探测都改成先读字节、由文件头定格式。 - 公文序号表的预览列宽与 PDF 对齐:序号列内容宽固定为两字,表头不再折行。
性能
- 页数改为按需计算:状态栏的页数只在点它时才跑一次完整定稿排版,不再随停笔 650 ms 自动触发。实测三百多页的长稿此前这一次排版要 +543 MB 堆、峰值 818 MB(Windows 堆释放后还不还给系统),现在停笔不再占用;正文、要素、字体、编号、词表任一变化仍把旧页数作废、退回「未算」,但不自动排队重排。悬停说明写明按需计算的代价,这一行加了手型光标。
质量检查
- 两平台 CI 门禁(格式、clippy、2023 项自动化测试)全部通过。
- 修复 CI 报红:序号表分组行与主题预览两处新增测试依赖随包字体度量,却漏了「本机没有
runtime/fonts(CI)时跳过」的守卫,使两平台 CI 失败;按仓库既有惯例补上守卫,本机有字体时仍照常断言。 - 本版新增的关键测试:公文与研究报告排版数据的
kai标记、Word XML 的楷体字体名(含数据行负例)、is_group_cell的四个条件、扩展名写错仍能出 PDF、页数统计「输入变化只作废不调度」等。 vendor/mdx补上此前遗漏的Cargo.lock,避免--locked构建漂移。
文档
- README:自动化测试数同步为 2023 项。
- 使用帮助:02 章补「页数按需计算」与锤子稿纸配色、源码目录布局的说明,05 章补「横页排版」选项,06 章补序号表分组行排楷体;
assets/help与docs/help两处副本逐字一致,25 章 = 正文 22 + 附录 3 的章节口径不变。 - 各章的界面截图仍是上一版的界面,将在后续版本重截。
下载
- Windows x64 安装程序
- Linux ARM64 Debian 软件包(兼容 GLIBC 2.28 / Ubuntu 20.04)
各安装包均附带 SHA-256 校验文件。
公文助手 v0.9.3
公文助手 v0.9.3
本版本把「AI 问什么、答完怎么落地」抽成一套通用的人机决策模块(待决事项、事实冲突、多选取舍、证据取舍、方案比选、自主步骤中途提问),公文表单要素随之由 AI 打点:动笔前按标准词库出题与给建议、采纳才写表单;单位词库的全称改为各自维护,界面新增第十一套主题「锤子稿纸」,要素里的单位下拉框支持汉字 / 全拼 / 首字母检索。
人机决策:问什么、答案怎么改流程
- 挂起出口统一,答案能改变流程:清单确认、多选题、证据取舍、方案比选都走同一个挂起出口(决策形态随挂起交给界面,界面按形态画卡片);技能流程里的
when条件支持取值比较({ var: x, eq: 值 }/{ var: x, in: [值…] }),选择题的答案能决定下一步走哪,技能校验会检查写法。旧会话里挂着的大纲确认读回时自动补成可修订的清单确认。 - 待决事项:正文里还留着「【待核实:…】」时,侧栏顶上一行「正文里还有 N 处待核实 · 逐条填写」,点开把占位列成题(一批 4 道,与交付后的缺口题同一套,其余答完再列);答完 AI 把答案写进所在段落,仍以对照当前正文的提案交给你确认。正文自列出之后改过,这批回答不落地,按现在的正文重新列一遍;有没答的题、没处理的提案或正在跑的一轮时不列。
- 事实与材料对不上时给候选:来源不明的数字、日期在材料或资料里写着别的值时,题干直接问「按哪个写?」,选项里多一条「按材料:15项」(出处是资料时写成「按《题名》:…」)并附出处里那句话的摘录。只有一个候选时推荐它,几个候选说不准就推荐先「改为待核实」。材料之间互相打架的不做。
- 多选取舍:清单确认卡片可以逐条勾选(默认全勾,不能改字、不能让 AI 重列),勾中的项按原值落地;多值要素(主送、抄送、呈报领导)与清单取舍都走它。
- 证据取舍:政策研究报告在大纲确认后先按整份大纲检索一轮,查到三份以上资料时逐份列出(附摘录),勾掉的不再进证据包,之后的逐章检索与补缺口也不会再找回来;你
@引用的文章不参与取舍。证据编号顺带改成只增不减,剔掉资料后再并入不会撞号。 - 方案比选:新算子
compare让模型出 2–4 个整段候选并排显示(去空、去重、去编号前缀、限 600 字,带了出处里没有的日期数字文件名的版本直接丢掉),挑一个或自己写,不设推荐项;只剩一个直接用。政策研究报告拟题名用它——拟三个不同角度的题名请人挑,题名只进 AI 工作稿,不回写文档要素。 - 自主步骤中途提问:声明了
ask.choice的技能(自由任务)里,自主步骤可以停下来问一次:一次最多 3 题、一步最多问 2 次,提问即结束本轮,答完从头重跑这一步并附上一轮进度;问题过长、选项不是 2–4 个、问到密级文号签发人成文日期这类授权要素或问文种的整批打回。
公文要素:动笔前出题与建议,采纳才写表单
- 动笔前接入要素抽取:先核对要求与材料里写没写主送、抄送、发文单位、承办单位、联系人、呈报领导、落款单位。写明且唯一对上标准词库的直接进建议卡;没写、或写了对不上的出成选择题,选项全部由程序给——材料里对上的名称排前面标推荐,人员只列承办单位的人;字段题单独占名额,不再挤掉六要素的「何时」「何法」,也不会让「何人」被漏问。
- 要素建议卡(挂在侧栏这一轮卡片上):采纳(多值按词库顺序写入;发文单位采纳时机关代字按表单规则带出)、全部采纳、替换(表单里已有别的值、与材料不一致时不参与全部采纳)、撤销(按采纳前的整表快照还原,连续采纳要倒着撤,采纳后表单又动过就不让撤);建议生成后表单改过要点「仍然采纳」,词条被删或文种不适用则不让采纳;交付提案时还有未采纳的建议会点名提醒。写表单只有
element_fields::apply_field一条路径,AI 自己永远不改。 - 授权类要素永远不出题、不建议:密级与保密期限、文号、份号、签发人、成文日期、版记印发机关与印发日期只由人在表单里填。描述类扩到发文单位、落款单位、呈报领导、承办单位、联系人、联系电话:单位与人员必须是标准词库里的词条,标题与附件说明取自材料原文,值都注明出处。
- 开关拆开:
elements: false只关六要素检查;新增fields: false整个关掉表单要素(不抽取、不出题、不出建议卡);field_questions: 0只出建议不出题。 - 复函自带「要素抽取」节:主送填来函落款署名的发文机关,来函抬头(通常是本单位)不填进主送;来函
@进来或整段粘贴即可,无需改代码。 - 第一期的地基:新建
src/element_fields.rs——字段登记表(中文名、适用文种、必填、读值函数)与统一写值入口,表单的发文单位、主送、抄送、呈报领导、落款单位、承办单位下拉框全部改走这条路径,与 AI 建议采纳是同一条代码路径。
单位词库:全称各自维护,代字随发文单位联动
- 单位的规范名与对外名各自维护全称,层级只用于排序、筛选与重复前缀省略,不再上溯拼接上级名称;主送、抄送按输入顺序显示,只有连续单位的共同上级能证明前缀归属时才省略前缀。
- 公函机关代字绑定当前发文单位(联合发文取主发文单位),表单里改为只读展示;单位未维护代字时清空,不再沿用上一个单位的文号。
界面:第十一套主题与要素检索
- 锤子稿纸(Smartisan)明色主题:灰棕渐变工具栏、浅木纹底板、横线稿纸与拟物页签,源码与对照模式都支持,成为第十一套主题。木纹每帧只生成可见的那部分——被不透明卡片整片盖住的列与段不再绘制,露出的纹线与整幅绘制逐点一致;对照模式两栏不再各铺一层。
- 单位选择框支持检索:汉字、无声调全拼、拼音首字母、简称、别名与层级编码都能过滤,多音字按逐字匹配推进,多关键词取交集;检索不改变选中值、词库顺序、主送 / 抄送互斥与统一写值路径。筛选结果每帧不再整体克隆(下拉框开着时不再每帧重建索引与结果)。
提示词与模型接入
- 起草提示词的附件写法统一:各文种从旧写法(
# 附件1+## 附件标题)统一为「每份附件前<!-- [附件] -->+# 附件正式标题」;有附件区段时不得手写附件说明,附件编号与附件内标题编号都不得手写;白头件 / 红头呈批件明确大节用##标题、编号由程序给;输出契约与行文规范对齐(直接引语与历史材料保留原日期表述);清掉 Word / LaTeX 残留。 - 要素抽取提示词两轮修订(DeepSeek V4 Flash 与 MiniMax M2.7 联机实测 14/20 → 20/20、17/20 → 20/20):格式示例改用真实字段名并写明它只是示例;单位完整名整个摘取、只截取职务部门尾缀;摘录对不上词库时,把摘录里包含的词库名称排进候选(「市应急局办公室」能一键选到「市应急局」)。
- OpenCode Go 接入:普通补全、流式补全与原生工具调用共用
gongwen-assistant/<版本>User-Agent 与x-opencode-session(只对 opencode-go 预设的服务商发送),侧栏任务、追问、历史压缩与检查点续跑使用会话 UUID;补齐 OpenCode Go 预设并简化密钥配置,标识不写入配置文件、重启换新。 - 修正模型上下文估算与手工窗口继承:新版 DeepSeek 的窗口规模表按版本先于系列兜底匹配,手动窗口加到 512k / 1024k;选技能等辅助步骤用复核模型(未配置时沿用起草),沿用起草时继承起草窗口;超长报错写出实际模型名。
- AI 输入框:长文本布局修复(输入区随内容增高、上限窗口高度的四分之一,底栏标签区单独滚动);一次粘贴超过 2000 字或 30 行时收成「粘贴材料 · N 字」标签,作为标明来源的材料并入本轮请求,不再把输入框撑爆。
文档
- README:硬数字按本版重新数(约 22.7 万行 Rust、2013 项自动化测试),内置技能数更正为十五个,新增「问清楚再动手,答案能改变往下怎么走」一节,补单位下拉框可检索,红线 2 的要素清单与来源口径(单位与人员取自词库、标题与附件说明取自材料原文)按现状改写。
- 使用帮助:13 章补多选题目卡、待决事项与事实冲突候选、粘贴材料标签,09 章「存疑清零」补侧栏「逐条填写」入口;顺手改正两处过期说法——视图「五种」→ 四种(
content.rs摘要与 07 / 08 / 20 章的三处交叉引用)、主题「十套」→ 十一套(02 章摘要与手册目录)。assets/help与docs/help两处副本逐字一致,25 章 = 正文 22 + 附录 3 的章节口径不变。
质量检查
- 两平台 CI 门禁(格式、clippy、2013 项自动化测试)全部通过。
- 本版新增的关键测试:要素建议卡的采纳 / 全部采纳 / 替换 / 撤销 / 过期检测 / 词库与文种校验 / 撤销倒序(
ui_tests)与Event::FieldSuggestions通路(engine_tests);要素抽取的分类表逐行断言、授权类拦截、旧会话反序列化兼容;决策形态随挂起、旧会话补形态;多选取舍的勾选落地与编号只增不减;木纹剔除后「露出部分与整幅绘制逐点一致、被盖住的不生成」;单位前缀省略与代字联动;检索不改变选中值。 - 另有
#[ignore]联机用例可用真实模型复现提示词结论:要素抽取 8 样本(公函 ×4、电话通知、白头件、红头呈批件、复函)与起草 9 文种场景。
下载
- Windows x64 安装程序
- Linux ARM64 Debian 软件包(兼容 GLIBC 2.28 / Ubuntu 20.04)
各安装包均附带 SHA-256 校验文件。
公文助手 v0.9.2
公文助手 v0.9.2
本版本是一轮以「审校别乱报、纸面别变形」为主的修订:文档级审校规则按文类逐条收紧并第一次在界面里可查,政策研究报告的大纲可以反复迭代打磨,电话记录单与研究报告 PDF 的排版缺陷修掉,界面主题精简到十套,Windows 侧多了一种几 MB 的增量升级包。
审校:按文类收紧规则,并第一次能查到它们
- 文档级规则按文类逐条重定适用范围:此前一批规则对所有文种一视同仁,于是研究报告的「产业发展:趋势与对策」这类正常标题被当公文标题报必错、电话记录单的标题与材料副标题也被误判。现在标题标点、称谓、句末这三类规则各自划定适用范围:研究报告、电话记录单、会议议程不再套用一般公文正文的全部规则,直接引语(「……」)里出现的请示结语、相对日期与汉字年份属于照录原文,不再拿本稿的规则去改。改动依据逐条写进了
docs/proofread-rule-audit.md。 - 新增可查阅的规则目录:「校对词表」页展开「文档规则与要素校验」,每条文档规则都能看到编号、名称、依据、适用文类、触发条件与级别,并附一个试验区——粘一段正文进去,立刻看这条规则命中在哪儿、命中在哪里。要素与模板校验另列分组说明。
- 风格提示可按文类启停:破折号、强制词、「进一步」与开篇表态这类属于风格偏好的规则,默认关闭,可按模板明确选用。词表组的启停仍只作用于词表,不会连带关掉文档规则。
- 附测试:新增
proofread_rules::regression_tests(238 行)锁住逐条收紧后的适用判定,避免以后再被改回去。
政策研究报告:先拟题名,大纲可反复打磨
- 动笔前先拟具体题名:标题栏留空或只写了「研究报告」这类文种名时,先按写作要求拟一个具体题名出来。它只写进 AI 工作稿供全文使用,不回写文档要素里你填的标题;模型给出通用名或多行输出都判为无效。
- 大纲支持提示词迭代:列完大纲后,除直接在手改,还能填一句修改要求(如「加一章风险分析」「把第二三章合并」)让 AI 重排。确认前可以反复迭代,AI 每次都在你当前这份大纲(含已做的手工改动)上改,不会退回最初那版。优化结果先放在折叠区里给你看,不直接覆盖你手上的文本,满意再点「使用这份优化结果」。
排版:电话记录单与研究报告 PDF 的四处修复
- 研究报告 PDF 的段落与列表转换修复:普通段落与列表改由
export/typst/research_body.rs复用预览的同一套转换,编号排版随之一并修正。随包方正字体只有 ①~⑩,⑪~⑳ 改用数字与圆圈绘制,不再依赖本机补充字体而静默缺字;生成编号统一留四分之一字间距并与后文相连,不会孤悬在行尾。 - 电话记录单预览版式与纸面高度校准:格内文字按导出的垂直居中布局,批示标题水平居中;正文最小高度在排字前设置,避免预览从已到达的光标位置再次追加整段高度,短稿纸张保持 A4 而不被表格撑成两倍高。回归测试直接断「建议到承办栏的距离」与纸高。
- 紧致分页并支持页尾标题单挂:页尾出现的标题不再被算作正文里的第二个标题(附件标题同理),审校定位也不再指到页尾那处。
界面主题:精简到十套
- 主题由十四套精简为十套(明色五:Claude 奶油、曝光浅、拿铁、复古浅、MDEX 纸墨;深色五:德古拉、北欧、复古暗、东京夜、MDEX 夜墨)。移除了天青、淡紫、浅绿与森野四套。旧配置里写了已移除主题的会自动回落到默认主题,不会因为读不到而打不开设置页。
- 复古浅与 MDEX 夜墨的公文纸面重做:复古浅改用浅米纸(承接它自己的米黄界面),MDEX 夜墨改用灰绿墨纸,纸边、悬停底色与投影随纸面搭配。MDEX 夜墨显式选「深色纸面」时仍用灰绿墨纸,选「白纸黑字」才回到纯白纸纯黑正文。
- 修复 AI 引用弹窗与其它浮层的冲突,以及窄窗口下的自适应布局。
智能体与稿件库
- 起草模型可调思考深度:「AI 管理 → 模型服务 → 文字起草」新增思考深度(沿用服务端 / 低 / 中 / 高 / 最高)与参数格式。默认不发额外参数,由服务端自己决定;程序按服务商自动在
reasoning_effort与reasoning.effort两种写法间选择。只对文字起草生效——复核、独立复核与逐句复核的降级重试一律清空深度。 - 清理 AI 正文提案里的内部痕迹:交付的正文不再带出
[@K2]这类工作稿内部的来源标识与模型的思考标记;文献库中真实存在的键仍按文献保留,工作稿本身不受影响。 - 词库外单位改用分词切分:关键事实清单里词库外单位的正则本是贪婪的,会把句首整段汉字吞成一个「单位名」(如「人类决策者可能因认知局」)。改用 jieba 词性切分,以机构后缀结尾的名词向前合并名词、代词、区别词与多字动词,遇到副词介词连词即停,「中华人民共和国财政部」这类含虚词的名字能完整保留。
- 删除稿件不再因快照无法解码而失败:删稿只取正文用于孤儿图片清理,刻意不解码快照——一份读不出来的旧快照(比如旧版本遇到新文种)不该把删除也挡在门外。单篇与批量删除都改了。
打包:新增增量升级包
- 新增
scripts/package-upgrade.ps1:按新旧两份SHA256SUMS.txt做差,只把哈希变化或新增的文件放进安装包。字体等资源没改动时不必重打一遍完整包——65 MB 的包里绝大部分是runtime/fonts,实测 2.1 MB 即可完成升级。基线里有而新版里没有的文件与目录写成[InstallDelete]片段在安装前删掉。 - 升级模式与完整包同 AppId、同卸载日志,但不整目录删除
{app}\runtime(否则没携带的字体会被删掉)、不重建快捷方式,并在目标目录没有已安装程序时中止——升级包不能用于全新安装。
文档
- 修掉使用帮助两副本的不一致:
f9a04e5只改了assets/help/(新增第八种文种「电话记录单」的相关表述),0bf9953只改了docs/help/20-settings.md(复古浅与 MDEX 夜墨的纸面说明),两侧因此漂移。本版把纸面说明补进assets/help/(它由include_str!编进二进制,缺了就是应用内看不到),并以assets/help/为准同步docs/help/,两副本重新逐字一致。 - 主题套数与规则条数在文档里全面改正:14 套 → 10 套、21 条文档级规则 → 20 条(19 条正文规则 + 1 条导出日期核对)、代码行数与测试数更新到实际值。涉及 README(主题一节、「文种、导出与平台」表、结构一节)、「开箱即用」、
docs/manual.md与src/help/content.rs的章节摘要、assets/help/02-ui.md与20-settings.md、以及设置页「AI 技能包」那段界面文案(src/app/settings.rs,原先写着「七种文种」)。 - 使用帮助补齐本版新功能:13 章写清「先拟题名 → 列大纲 → 逐章写」的完整步骤与大纲迭代的用法;14 章新增「文字起草 · 思考深度」一行,说明只对起草生效、复核会清空。
- 校对词表 155 条、导入 24 种格式两个硬数字经重新核对未变;
docs/install.md关于发布包口径(两种包、macOS 与 Linux AMD64 不再发布)与release.yml实际行为一致,无需改动。 - 界面截图不需重截:本轮的界面改动限定在主题配色与局部布局,主题样张图展示的四套(Claude 奶油、东京夜)外观未变。
质量检查
- 两平台 CI 门禁(格式、clippy、1916 项自动化测试)全部通过。
- 本地
cargo fmt --all -- --check、cargo clippy --locked --all-targets -- -D warnings、cargo test --locked --all-targets均通过(1916 通过、0 失败、46 忽略)。 - 新增的关键测试:审校规则收紧的逐条回归(
proofread_rules::regression_tests)、电话记录单预览的纸高与间距断言、研究报告样张的段落列表与编号排版(research_sample_tests)。
下载
- Windows x64 安装程序
- Linux ARM64 Debian 软件包(兼容 GLIBC 2.28 / Ubuntu 20.04)
各安装包均附带 SHA-256 校验文件。
公文助手 v0.9.1
公文助手 v0.9.1
本版本是 v0.9.0 智能体工作台之后的一轮打磨:研究报告多了一套终端风模板与暗场 / 白图配色,界面主题补上 MDEX 纸墨与夜墨两套直角终端风格并把总套数提到十四套,技能详情页的工作流程改用横向流程图,动笔前的确认题按决策依赖分层先问文种。
研究报告:终端风模板与暗场白图配色
- 新增「研究终端」模板:在要素页「封面信息」里与「经典研究报告」二选一(模板与配色随稿件及版本保存,旧稿件自动使用经典版式)。参考 vividdraft 的图纸视觉语言——细网格、页框、元数据栏、无衬线中文配等宽西文(方正黑体 + JetBrains Mono,缺字回退方正书宋,同样走随包字体);章节、目录、摘要、图表、文框、公式与文献的语义和编号一律沿用研究报告,不换一套规则。
- 两套配色:暗场阅读(深底、浅字、青色标注、琥珀强调)与白图打印(白纸、墨字、朱红强调),控制预览与 PDF;Word 走白图适配样式,保留可编辑正文、目录字段与公式,版面以 PDF 为准。模板与文件类型相互独立:项目类继续突出阶段条,研究类显示署名,外文翻译保留原题。
- 重做研究终端的目录与章节版式:目录用部分编号栏、圆形章号、缩进节号与页码引线;部分独占一页,显示所属章节及起始页并以线刻大编号收尾;章首页把圆形章号与大标题并排、节号放入方框。部分明细自动从正文生成,附录单独编号;连续预览中的目录可点击定位正文。
- 统一各级编号框与引用卡片:终端正文里包括
1.1.1、1.1.1.1在内的节号统一放进细线编号框;普通>引文与> [!名称]文框共用浅底卡片、细边框与首尾角标——普通引文不编号、出处靠右,文框保留原名称并各自编号、标题靠左、类型签牌靠右,卡片内继续支持公式、列表与交叉引用。
界面主题:MDEX 纸墨与夜墨
- 新增两套终端气质主题:MDEX 纸墨(米白底、墨黑字与终端绿)与 MDEX 夜墨(暖墨底与鼠尾草绿),各自配套一套应用图标(任务栏与开始菜单按主题切换)。主题总数由十二套增至十四套(明色八、深色六)。
- MDEX 统一为直角细线界面:外壳取消圆角与投影,浮起元素改为直角加细描边;工具条与预览对照区简化——对照区保留原生分隔线与调宽热区,中间三个小点只提示它可以拖动。公文纸面的「跟随主题」不受影响:纸墨落到宣纸白、夜墨落到檀黑棕,两套纸面照旧。
- 这些改动只作用于 MDEX 两套主题,其余十二套的界面外观与既有截图一致。
技能管理:工作流程改为横向流程图
- 技能详情页的「工作流程」改画横向流程图:把
SKILL.md里实际写的步骤转换成 Mermaid 渲染,主流程与子流程都横向排,子流程点开单独一张,图形按可用宽度等比缩小。节点、连线与透明背景跟随界面主题,不再用文档图表那套配色;换主题或改屏幕缩放时清一次内存纹理缓存。图上看到什么,跑起来就是什么,不生成装饰性假数据。 - 修复技能流程卡片的换行与条件说明布局(长条件不再把卡片撑变形)。
AI 侧栏与动笔前问答
- 动笔前问答按决策依赖分层:定文种单独一批先问,答完再按定下的文种出方向题与六要素题。原来两批挤在一起,选了「切换为研究报告」后面几题仍在问公函的致函对象、回复时限;现在换了文种会在同一张卡片里按新文种重新选技能、从头跑,旧检查点一并删掉。黑板记下定下的文种,等回答时若在要素区改了文种,这批题作废、回答不落地;当前文种与前提不符时旧澄清作废重问。同批里方向题与要素题话题重叠的只留要素题。
- 修复 AI 侧栏被长阶段提示撑宽:卡片顶行的耗时占右侧、阶段提示在剩余宽度里截断(悬停看全文);侧栏内容改画在不回报尺寸并裁剪的子 Ui 里,宽度只由用户拖动决定,不再出现左半截被正文区盖住。
文档
- README:主题一节由「十二套」更新为「十四套」并点出 MDEX 纸墨与夜墨;「开箱即用」新增「研究报告两套模板」一条(模板视觉语言、暗场 / 白图配色、Word 走白图适配、旧稿件自动沿用经典版式);代码行数(20.9 万 → 21.2 万)与自动化测试数(1832 → 1852)更新到实际值。
- 使用帮助:08 章「研究报告」补模板与配色两节、终端目录与章节版式、编号框与引用卡片规则(随对应提交同步);13 章「AI 侧栏与技能」补动笔前先单独问文种的分层问答(随对应提交同步);14 章「AI 管理」新增一条讲技能详情页的横向工作流程图;02 章与 20 章的主题套数由十二套更新为十四套(明色八、深色六)。
docs/manual.md与src/help/content.rs的第 02 章摘要同步为「十四套主题」;theme.rs/chrome.rs里随套数走样的注释一并更正。assets/help/与docs/help/两副本逐字一致(排除可编辑图源docs/help/diagrams/)。- 界面截图不需重截:本轮的界面改动均限定在 MDEX 两套新主题内,其余主题外观未变。
质量检查
- 两平台 CI 门禁(格式、clippy、1852 项自动化测试)全部通过。
- 本地
cargo fmt --all -- --check、cargo clippy --locked --all-targets -- -D warnings、cargo test --locked --all-targets均无输出、无失败(0 失败 44 忽略)。
下载
- Windows x64 安装程序
- Linux ARM64 Debian 软件包(兼容 GLIBC 2.28 / Ubuntu 20.04)
各安装包均附带 SHA-256 校验文件。
公文助手 v0.9.0
公文助手 v0.9.0
本版本把 AI 重新设计成一个能干活的智能体工作台:右侧 AI 侧栏按技能干活,数据接口以 OpenAPI 为中心并能用「用例 + 一句话」证明模型调得对,智能体内核完成工具契约、提案逐块接受、用量留痕与检查点续跑四期加固。三条红线一条没松——AI 依然不能直接写正文、依然碰不到公文要素、产物落地前照样先过三道确定性闸门。
AI 侧栏与技能:从输入框到智能体
- 技能成为干活的单位:一个技能是一份
SKILL.md(流程 + 参数 + 工具 + 各步提示词)。内置十二个技能覆盖起草、修改、审核三类;输入框敲/选技能、敲@引用文章(按技能references:声明当证据 / 基准稿 / 材料 / 来函);会话随稿件保存,可直接追问「再短一点」。 - 自主步骤:流程里写
- step: agent,模型自己决定调哪个工具——读正文、检索知识库和稿件库、算日期数字、改工作稿、记结论——程序执行每一次调用并在过程里留一行;优先用服务端的原生工具调用,不支持时退回文本协议。 - 确认题改成结构化输出:澄清题走 json_schema,端点不支持时退回文本约定。
- 在左侧 Markdown 区展示 AI 工作稿:起草过程看得见,工作稿与正文分区对照。
- 标准词库补职能任务与个人简介:人员与单位各有职能描述,供 AI 分配任务时参考;单位树支持同级拖拽排序。
- 动笔前先问清六要素:按文种清单问时限、对象、联系人;确认题附 AI 建议写法并带上所在小节与整句;按回答修订由 AI 把答案写进所在段落,闸门不过才直接替换;查不到的依据类缺口由 AI 写成概括表述。
- 侧栏说「把 AI 工作稿提交到正文」时弹写入确认卡(不再交给模型自己决定);写作风格档案可从指定稿件学习,起草与改写时按文种与场合自动选用。
提案逐块接受(内核加固第 2 期)
- 审阅窗里逐块取舍:每个变更块旁新增「不要这处」按钮(悬停「排除这处改动,接受时保留原文」),点过变「恢复这处」、整块变灰并挂「保留原文」标签;有排除时底部主按钮变成「接受其余 N 处」。
- 关键事实变化清单随排除实时变短:被排除块带来的变化不再列出也不再要求勾选;勾了核对项之后清单又变了,勾选自动作废要重勾。
- 排除组合造出清单之外的关键事实变化会被拦下,提示恢复部分排除或让 AI 重做。
- 合并后的正文重新过闸门:要素校验重跑,版式估算按合并结果重算,被排除块里才有的版式问题不跟进来。
- 落地后卡片状态变成「已写入正文(排除 N 处)」,会话记录写明「排除了 N 处改动」,写入确认卡摘要追加「(已排除 N 处,只写入其余改动)」。
工具契约与结构化输出(内核加固第 1 期)
- 内置工具与数据接口共用一套参数契约:参数带类型与 JSON Schema,必填、多余、类型、枚举、数组元素、对象必填各一层校验,不合格不发请求;错误连同参数签名与正确示例回给模型让它改一次。
- 工具多时两级访问:可用的工具超过 24 个(或接口超过 12 个)时,模型改用
tool_search/tool_call先搜后调,界面上会多一行「找工具:…」。 - 自主步骤的过程里多了三行:「找工具:…」「模型要调「X」:无此工具,已拒绝」「自主步骤调用 X 没有做成:…」。
用量、留痕与备用模型(内核加固第 3 期)
- 每轮卡片末尾记用量:「模型调用 N 次 · 约 输入 X / 输出 Y token · 用时 M 分 S 秒」(「约」只在有估算时出现,token ≥1000 缩写成
1.2k,用时含挂起答题前那段、续跑时累加)。 - 提案卡留痕:卡片抬头下写「技能 · 模型 · 证据 K1–K3、K7 · 时间」,记不到写「未记录模型」、没引用证据写「未引用证据」;侧栏卡片、审阅窗顶部、左侧工作稿顶部都出现,接受或放弃后仍随会话保留。
- 备用模型:AI 管理页的「模型服务」里,文字起草与文字复核各可配一行「备用模型(可不选)」;主模型不可用时自动改用并当场说明「主模型 X 不可用(…),本次改用 Y」。已经开始吐字后出错、点停止、上下文溢出都不切换;辅助角色(澄清、核对、自主步骤)优先用复核备用,无则沿用起草备用。
- 知识库页显示检索耗时:「N 篇 · N 块 · 最近一次检索 3.6 秒」。
- 流式用量读取并记住字段降级;服务端不返回用量时按字符估算。
检查点与崩溃续跑(内核加固第 4 期)
- 引擎每一步成功后自动把检查点存进稿件库(挂起答题也算一步);「已中断 / 已停止 / 失败」三种卡片上多一行「可接着跑:已完成 某某步骤 · 时间」与三个按钮 接着跑 / 从头重来 / 丢弃。
- 从这里重跑:折叠块里折叠列出这一轮存下的检查点,每条右侧一个「重跑」;正文在那一步之后改过就整轮拒绝并说清原因,给出「接着跑 / 从头重来」两个出路。
- 恢复只有一个入口:「答完题接着跑」与「崩溃后续跑」最终调同一个函数,闸门、定稿、提案只有一份;只读区(授权要素、日期)按界面当前值重灌,发起时说的话、锁的选区、引用的文章、写法风格沿用本轮原值。
- 保留策略为「首 + 近 5」共 6 份;单份超 512 KB 时证据包只留最近 20 条并标「证据已省略」;写盘失败不中断流程,只在卡片说明区留一句「检查点没存上:…」。
- 审阅窗第 4 期修复:崩溃续跑比对技能指纹、路径列坏了不拿序号顶替、重跑提示给字数。
数据接口:以 OpenAPI 为中心(工作台三期)
- 中心格式:一个服务一份 OpenAPI 文件(存配置目录
apis/,可在 Postman / Apifox 打开);支持导入 OpenAPI 3.0 / 3.1、Swagger 2.0、Postman 集合与环境、cURL,导出为 OpenAPI(不带密钥与本机环境地址但带用例与期望)。旧的apis.json首次打开自动按服务器分组迁移、原文件留成.bak(无提示)。 - 接口用例:每个接口配一组「用例 + 期望」,五种期望(不为空 / 至少几条 / 等于 / 包含 / 有字段)用 JSON 指针写;「全部 N 条用例跑一遍」逐条实测并留记录,也可「AI 编几条用例」。
- 运行记录:状态片显示「用例 5/6 通过 · 时间」「配置改过,需重测」等;记录只存结论与一句原因,不存返回内容与参数值。
- 说一句话让 AI 调:一句用户问法 → 模型挑接口、填参数;选对且校验过了可把参数锁定后「存为 AI 用例」,「全部 N 条 AI 用例跑一遍」记正确率,「AI 出几个问法」生成候选问法。判定口径是接口选对 + 写明的参数对 + 调用成功。
- 只查询的接口才给 AI 调:会改数据的接口发前要人工确认,不参加「全部跑一遍」也不给 AI 调;「只查询」这个勾程序与模型只能往严的一边改。
- 界面减负:列表按服务器分组、密钥按服务共用一把 Key、详情页收敛为三个页签(接口说明 / 试一下 / 技术配置)、多行输入限高。
模型服务商管理
- 模型地址与密钥收进「模型服务商管理」(预设模板 + 提供商卡片);「模型服务」按功能(对话 / 向量 / 重排)选模型;旧内联地址字段随启动自动迁移。
- 模型选择器按用途过滤(对话 / 向量 / 重排);知识库文档列表改为紧凑表格,修复长标题挤掉删除按钮;数据接口页与技能管理重设计。
界面与交互
- 统一模态确认框:关闭稿件与退出汇总、稿件批量删除与导出 PDF 与 ZIP 密码、精确移动、知识库导入与删除确认、归档确认、ZIP 导入预览与待处理合并、版本切换、提交与回退、关闭确认全部改用模态;模态统一收走背后焦点并停用快捷键。
- 按钮与控件:关闭确认、版本提交与 AI 提案按稳定标识绑定操作对象;小按钮去掉竖向内边距避免被行高裁切;浮层列表(交叉引用、词库下拉、快速查找、标题聚焦)改用统一的滚动高度设置。
- 顶栏右端新增快捷查找与换肤按钮;起草页支持导入电子版 PDF。
其他
- 研究报告文献引用改为上标,新增叙述式
@key平排。 - 送批材料清单支持拖拽排序与内联提交版本。
- 忽略本机接口测试记录(
*.txt)。
文档
- README:AI 一节整节重写为「重做成能干活的智能体」——技能、逐块取舍、接着跑、用量留痕、OpenAPI 数据接口、模型服务商化,配上逐条落地的三条红线;同时把代码行数(14.1 万 → 20.9 万)、自动化测试数(1386 → 1832)、文档级规则数(25 → 21)与平台徽章(去掉已不发布的 macOS)更新到实际值。
- 使用帮助:12 章(AI 的边界与保障)补逐块取舍、采纳即自检、末尾新增「用量、留痕与接着跑」;13 章(AI 侧栏与技能)扩写提案审阅窗的逐块取舍、新增「接着跑:崩了也能续」与「卡片上还多三行信息」、自由任务补工具契约与两级访问、会话补备用模型;14 章(AI 管理)模型服务补两行备用模型、数据接口整节按 OpenAPI 为中心重写;18 章补检索耗时;21 章补
apis/与三个 json 的数据目录与备份清理;术语表补数据接口 / 接口用例 / AI 用例 / 只查询 / 两级访问等词条;删掉一份无人引用的孤立图。 assets/help/与docs/help/两副本逐字一致(排除可编辑图源docs/help/diagrams/)。
质量检查
- 两平台 CI 门禁(格式、clippy、1832 项自动化测试)全部通过。
- 修 clippy 1.99 新增的
chunks_exact_to_as_chunks(ui_snapshot三角形循环改用as_chunks)。 - 旧版本检查点、提案合并、模型用量降级等关键路径补齐了回归测试。
下载
- Windows x64 安装程序
- Linux ARM64 Debian 软件包(兼容 GLIBC 2.28 / Ubuntu 20.04)
各安装包均附带 SHA-256 校验文件。
公文助手 v0.8.1
公文助手 v0.8.1
本版本把「引用」这件事做到底:正文里的《名称》(发文字号)本身就是引用,不再需要插标记、粘富文本,并能靠新建的公文登记簿按名称与文号当场比对;研究报告的文献引用重做,下拉即选、预览与 PDF 逐条一致。字体侧,公文仿宋/楷体换成 GB2312 非汉字合成字体,研究报告西文统一 Termes。
公文引用:正文纯文字 + 登记簿
- 引用就是正文里的普通文字:《名称》(发文字号)即引用本身。移除
{{公文:UUID}}标记、文末gongwen-reference快照定义与富剪贴板;合并、同步、导出、花脸稿不再对引用特判,稿件从此是纯 Markdown。 - 确定性识别:书名号后紧跟可规范为「代字〔年份〕序号号」的括号即认作引用;只有名称的,须与稿件库或登记簿中某份无文号文件同名才算,
(试行)「(征求意见稿)」之类不算。年份写成[2026]、(2026)也认。 - 新增公文登记簿:把本机发过的公文连名称、文号、正规写法攒在一起(含更正前写法),按文号与名称实时比对来源,提示写法不规范、与来源不一致、来源已变与未登记。
- 引用面板改版:列表只显示插入后的样子;本篇引用按文件合并,给出一键处理。源码编辑框给引用画虚线(有问题画橙色),悬停卡片可改规范写法、改来源写法、登记或打开来源。
- 校对新增引用写法必改规则(
RULE-CITATION-NUMBER),规范写法是确定的,给一键改法。AI 闸门与事实锁定按规范写法保护引用名称与文号,AI 改动引用即整条丢弃。
研究报告:文献引用重做
- 新增
export::bibliography:biblatex 解析.bib,hayagriva 按 GB/T 7714—2015 顺序编码制排著录(与 Typst 同库同样式),按内容缓存。 - 「文献引用」下拉照交叉引用的版式重做:已引 / 未引两组带计数,行内序号、作者年份、题名、文献类型,悬停显示整条著录;可搜索、键盘选行、勾选多条插成一组
[@a; @b],光标在已有引用里时并入那一组;底部提示缺键、.bib出错行与缺参考文献区段。 - 预览排出参考文献表:排在参考文献区段标题下(无该区段则全文末尾),序号与著录和 PDF 一致。源码里
[@key]画虚线,缺键橙色,悬停弹出著录卡。 - 文档要素参考文献栏显示条数与引用统计、
.bib出错行,支持重新读入;审校报告.bib解析错误及行号。
字体:国标字面对回纸面
- 公文仿宋、楷体改用合成字体
GWFangSong.ttf(公文仿宋)与GWKai.ttf(公文楷体):汉字与全角标点取方正仿宋_GBK / 方正楷体_GBK,GB2312 里的全部非汉字(西文、数字、①–⒇、弯引号、破折号、省略号等 443 个字形)取仿宋_GB2312 / 楷体_GB2312,度量与方正原版一致。名字表由scripts/rename-merged-fonts.py改成新名,免得与本机装的方正原版撞名。 - 正文、表格、仿宋标题、列表编号、主送机关、括号楷体的西文数字都由字体本身给出国标字面,不再挂
GWFangSongLatin(移除);页码数字仍走宋体字面。段内列表编号由解析器标出,「(1)」「(1)」这类编号不再被当成括号注释排成楷体四号(PDF 与预览一致)。 - 研究报告西文与数字一律 TeX Gyre Termes:章 / 节 / 部分标题、目录章条目、图表题标签、文框标题、封面黑体字与小标宋大标题用 Termes Bold,正文、页码、列表序号、表头用 Regular。楷体改用公文同一支 GWKai。纸面预览新增 Termes 研究报告字体族,不再受设置页页码字体影响;公式预览的汉字回退改为方正书宋,与导出一致。
- 随包 runtime(
gongwen-runtimev0.8.1)去掉 FZFangSong、FZKai、GWFangSongLatin,加入 GWFangSong、GWKai;runtime/SHA256SUMS.txt、runtime README、五个打包脚本与release.yml的字体存在性检查同步。
起草页与界面
- 候选区空时不再占位:没有条目时整个面板不画,编辑区底缘不留空条;第一条候选移入后面板与状态栏入口同时出现。状态栏右侧图标随展开状态翻转,悬停文案带条数,只在源码 / 分栏两种有源码编辑框的模式下出现。
- 移除「输出 → 导出设置」入口:按钮只会跳到设置页且不选中分区,看到的还是上次停留的位置;剩余设置项通过设置页左栏导航即可,多一个定位错的入口反而误导。同步移除
DraftAction::OpenSettings。 - 浮层里的列表筛少后长不回原高度(修):egui 浮层按上一帧尺寸给内容留地方,滚动区取剩余空间与
max_height的较小者,内容一变少浮层就跟着变矮、再也撑不回去。新增theme::popup_scroll把最小滚动高度也设成max_height;设置页字体下拉改用dropdown_button+Popup,避开 ComboBox 自带、从外面改不了的滚动区。快速查找、标题聚焦编辑一并改用。 - 交叉引用与词库下拉的滚动列表改用
theme::popup_scroll。
打包与维护
- 修 Inno Setup 安装包脚本的废弃架构标识与不认识的消息名:
.iss用 6.3+ 的x64compatible取代已废弃的x64(消除 ISCC 告警),ChineseSimplified.isl删掉 6.5 前才有的FileExists/ExistingFileNewer。本地打 Windows 包需 Inno Setup 6.3+。 - runtime 的 CI / release tag 跟到
gongwen-runtimev0.8.1。
文档
- README:补本版两项用户可见能力的宣发口径——「文稿管理」新增公文引用自动识别与公文登记簿,「开箱即用」新增研究报告文献引用(
.bib、GB/T 7714—2015 顺序编码制、已引/未引下拉、预览与 PDF 一致);自动化测试数 1374 → 1386。 - 使用帮助:06 章(编辑器:引用识别与悬停卡片)、07 章(功能区:引用面板改版与登记簿)、08 章(研究报告:文献引用下拉、参考文献表与悬停卡)、19 章(稿件库:登记簿位置)、02 章(界面:状态栏候选区入口)同步;
assets/help/与docs/help/两副本已一致。 - 手册表格分隔行统一为
| --- | ---写法(19 章此前混用两种写法),并把docs/help/b-faq.md副本对齐到assets/help/。 docs/install.md注明本地打 Windows 包需 Inno Setup 6.3+。- 技能包
skills/gongwen-markdown的「公文引用」条目同步改为正文纯文字写法。
质量检查
- 两平台 CI 门禁(格式、clippy、1386 项自动化测试)全部通过。
- 新增关键测试:公文字体配方逐处查 Typst 实排的字体、段内圈号出自正文字体、研究报告 Termes 粗细、预览字体族组成与 latin-in-cjk 取字、
font_cmap改写 cmap;引用识别与写法规则的边界(`(试行)」不算引用、只有名称须同名匹配、年份三种括号都认)。 assets/help/与docs/help/两副本逐字一致(排除可编辑图源docs/help/diagrams/)。
下载
- Windows x64 安装程序
- Linux ARM64 Debian 软件包(兼容 GLIBC 2.28 / Ubuntu 20.04)
各安装包均附带 SHA-256 校验文件。