Repository navigation
Releases: Mazha0309/CallsignRollLog
Release list
Callsign Roll Log v3.0.3-R
产品名称统一为 Callsign Roll Log(简称 CRL)。安装标识、更新标识与数据目录全部保持不变,覆盖安装即可,无需迁移。
名称
- 窗口标题、关于页、界面文案、安装包显示名称、桌面快捷方式全部改为 Callsign Roll Log / CRL。
- Android
applicationId、macOS / iOS Bundle ID、Windows 可执行文件名、Rust crate、数据目录、存储键、数据库文件名与崩溃转储目录均未改动;在线更新与 CrashDumps 目录继续沿用原标识。
ADIF 导出(新增)
- 在 JSON 与 Excel 之外新增 ADIF 导出,可供 LoTW / QRZ 使用。
- 按主控呼号分组:单一主控导出一个
.adi,多个主控打包为 zip,每个台站一个文件。 - 写出字段:
CALL、STATION_CALLSIGN、OPERATOR、QSO_DATE、TIME_ON、MODE、BAND、RST_SENT、RST_RCVD、GRIDSQUARE(QTH 为网格时)或QTH、MY_RIG、TX_PWR。 - 字段长度按 UTF-8 字节数声明,与写入字节一致。此前中文 QTH 按字符数声明长度,会导致按字节切分的导入器错位;现已修正并附往返解析测试。
- 本地记录不保存模式与波段,导出时按 ADIF 的 MODE / BAND 枚举选择(默认 FM / 2M),并在本次会话内记住选择。
打包
- 修正 macOS 安装镜像的卷名参数引号错误,此前该步骤会导致 macOS 构建失败、整个发布中断。
本软件是浙江省业余无线电协会中继台网点名活动使用的记录软件。
OpenLogTool v3.0.2-R
OpenLogTool 3.0.2-R
本次为修复与诊断增强版本,功能与 3.0.1-R 一致,建议所有 Windows 用户升级。
Windows 崩溃修复
- 修复 Windows 上 Flutter 无障碍桥的原生崩溃:
flutter_windows.dll中0xC0000005(访问冲突、读取偏移0x48)。该缺陷在 release 构建里解引用空父节点,表现为应用被系统直接终止(Windows 事件日志 1000,无 Dart 日志)。五份现场 minidump 均指向同一位置flutter_windows.dll+0x3A9FA。 - 此前的兼容保护只覆盖 Windows 10;而崩溃集中出现在 Windows 11,恰好不在保护范围内。现已对所有 Windows 版本生效。
- 该缺陷源自 Flutter 引擎,上游尚未修复(flutter/flutter#175041、#186886、#190357)。当前做法是把语义树折叠为单个无子节点、绕开会崩的重挂载路径,属于缓解而非引擎级修复。
- 使用屏幕阅读器的用户:启动前设置
OPENLOGTOOL_ENABLE_WINDOWS_ACCESSIBILITY=1可恢复完整的 Windows 无障碍语义树(同时会重新暴露该崩溃风险)。默认关闭。
崩溃诊断
- 上次进程非正常退出后,本次启动会在诊断日志中列出各平台崩溃文件的位置,便于事后定位。
- 新增 Linux 原生崩溃报告:进程收到
SIGSEGV/SIGBUS/SIGILL/SIGFPE/SIGABRT时写出文本报告(信号、可执行路径、回溯、内存映射),存放于$XDG_DATA_HOME/openlogtool/crashes/(未设置时回退到~/.local/share/openlogtool/crashes/),无需调试器即可阅读。 - Windows 仍写入
%LOCALAPPDATA%\OpenLogTool\CrashDumps的 minidump;macOS 仍以系统.ips报告为准,应用只在启动时给出其位置。
使用与升级
- 覆盖安装即可,无需迁移本机记录。
OpenLogTool v3.0.1-R
OpenLogTool 3.0.1-R
这是 3.0 系列的正式发布。此前的 3.0.0-R 标签已撤回,请以此版本为准。
共享与协作
- 新增好友搜索、邀请、申请,以及醒目的待处理提示和实时消息更新。
- 支持多选会话共享和持续共享全部;共享会话统一进入历史会话列表,并可分类管理。
- 分开授权查看、新增/修改和删除记录。好友关系本身不会开放个人记录,也不会自动获得成员管理权限。
- 共享会话使用正常记录工作台;个人会话开启协作编辑需要所有者确认,后续新建的个人会话默认不自动开放编辑。
- 支持由负责人选择是否允许好友直接加入,默认关闭。
界面与输入
- 统一好友、协作和数据页面的分页栏;设置和词库的左右区域分别滚动。
- 改进服务器与账号设置、登录表单、扫码连接、手机返回和滚动时的输入焦点。
- 增加本机界面缩放设置,改进词库模糊匹配、必填项错误提示和共享标识对齐。
- 好友列表使用通用人物图标,不需要上传头像。
使用与升级
- 本机记录仍可独立使用,不强制连接服务器。使用新版共享功能,请配合 OpenLogToolServer 0.13.0。
- 服务端 0.13.0 增加管理员数据备份与恢复入口,以及可配置的客户端跳转地址。
- WebClient 发布包包含 update.html 和 update.js;网页更新异常时可访问同目录下的 update.html 刷新应用缓存,不清除本机记录。
- 升级前建议导出本机记录、备份服务端数据库。iOS 附件为未签名 IPA,需要自行签名安装。
OpenLogTool v2.9.4-R
OpenLogTool 2.9.4-R
本次更新主要提升高延迟网络下的协作录入可靠性,并让呼号历史候选可以安全地在协作者之间共享预览。
主要更新
- 改进协作草稿的高延迟与丢失响应恢复,减少字段冲突、重复快速保存和状态回退。
- 正在编辑呼号的书记员可将本机数据库候选临时共享给其他协作者;其他人只能预览,只有当前呼号编辑设备可以选择。
- 选择历史候选后,设备、天线、功率、QTH 和高度由服务端原子写入,并主动释放其他设备上受影响字段的焦点和租约。
- 历史复用不会带入原记录时间;候选仅短期存在,不写入数据库,也不会公开到 Live Share。
- 修复服务端 Excel 导出分页大小超出接口限制的问题,并补充跨时区的导出/导入回归验证。
- 保持旧版客户端与旧版服务端的降级兼容;建议客户端与 OpenLogTool Server
0.11.2一同升级以获得完整协作体验。
English summary
This release improves live-draft reliability on high-latency connections and adds secure cross-device preview of local callsign-history candidates. Only the device currently editing the callsign can select a candidate; affected station fields are then applied atomically without reusing the historical timestamp. It also fixes the server-side Excel export page-size limit and strengthens timezone-independent round-trip coverage.
Full Changelog: v2.9.3-R...v2.9.4-R
OpenLogTool v2.9.3-R
OpenLogTool 2.9.3-R
本次更新集中改善点名记录录入、表格操作、个人云同步冲突处理和 Excel 导出的一致性。
主要更新
- 新增独立的个人云同步冲突页面,可逐项选择保留本地或云端内容,未处理完全部冲突前不会误提交。
- 优化记录表格的搜索、分页和编辑刷新;搜索结果继续显示记录原本的序号,不再从
#1重新编号。 - 改善呼号重复检测、输入法兼容和协作草稿同步;输入停止约 700 毫秒后也会进行重复呼号检查。
- 改善下拉候选交互,支持键盘上下键与 Enter,并修复手机触摸滚动候选列表的问题。
- 为纯数字功率和高度提供快速格式建议,同时避开“低功率”“地面”等描述性内容。
- 改进个人云同步状态展示和快照兼容性,降低异常快照阻塞自动同步的概率。
- Excel 导出的文件名和抬头默认使用当前会话名;自定义表格背景色现在会正确写入工作簿。
- WebClient、Android 分架构与 Universal APK、Linux、Windows、macOS 和未签名 iOS 构建均已通过正式流水线验证。
建议配合 OpenLogTool Server 0.10.1 使用,以获得最新的个人云兼容修复、会话 Excel 导出及账户级导出样式设置。
English summary
This release improves logging and table interactions, adds explicit per-item personal-cloud conflict resolution, refines duplicate callsign detection and collaboration input reliability, fixes keyboard and touch navigation for suggestions, and makes Excel background styling behave consistently. It also ships verified Android, Linux, Windows, macOS, iOS, and Docker-ready WebClient artifacts.
Full Changelog: v2.9.2-R...v2.9.3-R
OpenLogTool v2.9.2-R
主要更新
- 点名填写:搜索结果保留原始记录序号;呼号与词库候选支持方向键、Enter 和移动端滚动;呼号停止输入约 700 ms 后检查已有记录。
- 输入与协作:纯数字功率自动补
W且不再插入空格;改善保存后表格刷新、共享草稿同步和快捷键重复提交防护。 - 会话生命周期:本地会话与服务端协作会话在严格超过 2 小时无活动后自动关闭,编辑与同步操作会续期活跃状态。
- 诊断与登录:日志改为持久化保存,支持等级过滤、搜索、复制和清空;登录失效采用被动提醒,普通断网不会清除保留的登录状态。
- 界面与发布:微调 Material 3 交互和窄屏日志界面,完善 Live Share 开源说明,并修正 Release 资产下载流程。
English summary
This release improves keyboard-first net-control logging, table and collaboration refresh reliability, and session lifecycle handling. Search results retain their original sequence numbers; autocomplete supports arrow keys, Enter, and mobile scrolling; duplicate callsigns are checked after a 700 ms pause; and numeric power values are normalized without spaces. It also adds persistent filterable diagnostics, passive authentication-expiry notices, two-hour inactivity closure for local and server collaboration sessions, UI refinements, and a more reliable release pipeline.
Full Changelog: v2.9.1-R...v2.9.2-R
OpenLogTool v2.9.1-R
中文
OpenLogTool 2.9.1-R 是自 2.7.0-R 以来的整合版本,涵盖 Web 端体验、跨平台、协作与录入效率的全面改进。
记录录入
- 弹窗编辑记录:电脑端编辑改为弹窗形式(带词库自动补全),设置里可切回表格内联编辑。
- 重复呼号流程:失焦询问是否继续添加;保存时可选"更新旧记录(保留时间)/添加新记录/取消";两个弹窗都会显示旧记录的当前列表序号(如"已在第 11 位记录过")。
- Ctrl+Enter 全局保存、呼号下拉框方向键导航、手机端下拉列表滚动修复。
- 功率自动加 W:设置开关(默认开),保存时纯数字(含小数)自动补 W;已带单位或含中文不动。
- 记录搜索:表格上方搜索框,匹配呼号/时间/RST/QTH/设备/功率/天线/高度/备注/主控;桌面表格与手机列表均支持,与分页联动。
Web 端
- 更纱黑体:Web 默认使用项目自带字体(子集化加载,首屏更快)。
- 导出修复:文件名错乱与 JSON 导出失败已修(浏览器原生下载)。
- 存储升级 IndexedDB:突破 localStorage 5MB 限制,含一次性迁移。
- PWA:可安装、离线缓存、iOS meta 完善。
- 首屏优化:wasm 构建、字体子集化、加载进度。
- URL 路由同步:页面/会话同步到浏览器 URL,后退可恢复。
- 主控屏标签页:可打开独立主控屏标签页(实时推送),也可当前标签页全屏打开;修复了打开后跳回主页的问题。
- Excel 导入接入 LLM:选择 xlsx → AI 解析成结构化记录 → 预览确认导入(LLM 启用时显示按钮)。
- 部署默认服务器:环境变量
APP_DEFAULT_SERVER_URL注入默认服务器地址(首次使用生效,可改)。
协作与云同步
- 并发新增合并:客户端与服务端同时新增的记录改为字段级合并(非必要不替换),字段冲突逐项弹窗选择;会话冲突保持手动选择。
- 错误归类修复:成员资格被撤销时明确停止同步,不再伪装成传输错误无限重试。
表格
- 分页关闭时记录全部铺开(页面滚动);分页开启时整页完整显示、高度随页大小变化;分页数量可在设置中选择(5/10/15/20/25,默认 10)。
跨平台与发布
- iOS 支持:构建产出标准 .ipa(无签名,安装需自行签名或 sideload)。
- Linux 安装包:新增 .deb / .rpm。
- 日志系统:运行日志与错误堆栈,桌面写文件、Web console,设置页可查看。
- 深色模式:全面审计与暗色表面验证。
完整变更: v2.7.0-R...v2.9.1-R
English summary
OpenLogTool 2.9.1-R consolidates everything since 2.7.0-R: web experience, cross-platform support, collaboration, and logging speed.
Record editing now uses a dialog with dictionary autocomplete (switchable back to inline editing). Duplicate callsigns get a two-step flow — blur prompt and save dialog — and both dialogs show the original list position of the existing record. Power values that are plain numbers (including decimals) get "W" appended on save, controlled by a toggle. A new search box filters records by callsign, time, RST, QTH, device, power, antenna, height, remarks, or controller on both desktop and mobile layouts.
On the web: the built-in Sarasa Gothic font is used by default (subset-loaded for a faster first paint), export bugs are fixed with native browser downloads, settings storage moved to IndexedDB, PWA install/offline support, URL sync for pages and sessions, and a controller display that opens in its own tab with live updates (fixed the bounce-back-to-home issue). Excel import is now LLM-powered with a preview step, and deployments can inject a default server URL via APP_DEFAULT_SERVER_URL.
Cloud sync merges concurrently-created records field by field instead of replacing, with per-field conflict dialogs; local membership revocation is now classified correctly instead of retrying forever as a transport error.
The table expands fully when pagination is off, matches page content when on (page size configurable 5-25, default 10). New platform support includes iOS (.ipa artifacts) and Linux .deb/.rpm packages, plus an app logging system and full dark-mode coverage.
Full Changelog: v2.7.0-R...v2.9.1-R
OpenLogTool v2.7.0-R
中文
OpenLogTool 2.7.0-R 带来现场录入与导出的多项体验改进:电脑端记录编辑改为弹窗形式并支持词库联想,重复呼号的录入与更新流程更明确,主控屏新增实时时钟,导出文件名可直接使用当前会话名。
记录编辑
- 电脑端编辑记录改为弹窗形式,弹窗内字段支持词库自动补全;可在布局设置中一键切回表格内联编辑。
- 新增"更新旧记录"保存流程:当输入的呼号已有历史记录时,保存时弹窗显示旧记录摘要,可选择"更新旧记录(保留时间)"、"添加新记录"或"取消"。
- 呼号输入框失焦时,若呼号已记录过,会询问是否继续添加;选择取消则清空呼号并回到输入框。
- 保存记录、更新旧记录与取消操作现在各自明确,不会误触覆盖。
输入与交互
- Ctrl+Enter 现在在任意控件下均可全局触发保存,不再依赖焦点所在控件。
- 呼号历史下拉框支持键盘操作:↑/↓ 高亮候选、Enter 选择、Esc 关闭。
- 修复手机端呼号历史下拉列表无法滚动的问题;点击列表内部不再收起输入法。
- 系统返回键层级改进:先收起键盘,再回到工作台页,最后才退出应用;设置面板打开子页面时返回键优先关闭子页面。
主控屏
- 主控屏新增实时时钟显示(时:分:秒,每秒刷新),窄屏下自动隐藏。
导出
- 导出设置新增"文件名使用当前会话名"开关,开启后导出文件名直接使用当前会话名;会话名为空时回落至文件名模板。
- 文件名模板新增
{session}占位符,可在模板任意位置插入当前会话名。
工程与发布
- 客户端与 Rust 核心版本统一迭代至 2.7.0-R(客户端构建号 17)。
- 修复发布流水线 Android 签名校验对新版 apksigner 输出格式的兼容,确保发布包签名指纹一致。
配套服务端
- 配套服务端更新将协作会话与个人云会话统一到会话页面,并支持离线解析访客 IP 归属地;服务端需单独升级部署。
English summary
OpenLogTool 2.7.0-R refines on-site logging and export workflows. Record editing on desktop now uses a dialog with dictionary autocomplete, switchable back to inline table editing from layout settings. When a callsign already exists in the log, saving shows a preview and lets you update the old record (keeping its time), add a new one, or cancel; losing focus on the callsign field asks whether you really want to continue adding a duplicate.
Keyboard workflows improve: Ctrl+Enter saves globally from any field, and the callsign history dropdown is fully navigable with arrow keys, Enter, and Esc. The scrollable dropdown also works on touch devices, and the system back button now steps through keyboard dismissal, workspace return, and app exit before quitting. The controller screen shows a live ticking clock.
Export gains a "use current session name as file name" switch (mirroring the existing header switch) plus a {session} placeholder in the file name template, falling back to the template when the session name is blank.
Client and Rust core versions are synchronized at 2.7.0-R (build 17), and the release pipeline now parses the new apksigner V2 Signer certificate output so signed APK fingerprints stay verified. Companion server updates are deployed separately.
Full Changelog: v2.6.4-R...v2.7.0-R
OpenLogTool v2.6.4-R
中文
OpenLogTool 2.6.4-R 汇总 2.6.0-R 至 2.6.4-R 的全部更新,重点带来可选的 AI 文字助手、协作会话自动恢复、现场录入改进,以及 Windows 和记录表格稳定性修复。本次补丁还修正了当前记录操作按钮的布局,并使一键清空恢复 RST 默认值。
2.6.4-R 修复
- 调整当前记录操作区按钮布局:“清空已填内容”在窄屏和宽屏下分别固定为 160 和 180 像素,“保存记录”自动占满剩余空间,避免保存按钮随清空按钮一起缩短。
- 修复“一键清空已填内容”将 RST 发/收直接清空的问题;本地与协作草稿现在都会恢复默认
59,同时继续保留主控呼号。
AI 文字助手与词库
- 新增可选 AI 文字助手,支持 OpenAI Responses、旧版 OpenAI 兼容 Chat Completions 和 Anthropic Messages 协议,可自行配置 Base URL、API 密钥及模型名称;文字助手与语音识别分别配置,关闭时不会发起相关模型请求。
- 设备、天线、QTH、高度和功率停止输入约 300 毫秒后,可显示一条需人工确认的快速规范建议,不会自动覆盖已有内容。
- 新增词库 AI 识别和整理工具,可从聚合后的历史字段发现候选词条,并逐项确认新增、重命名或合并;不会向文字模型发送完整日志、备注或时间。
- 改进 DeepSeek、MiMo 等模型的关闭思考、空响应解析、分批处理和截断重试。
- 强化 QTH 保护规则,避免建议擅自删除城市、区县、机构、建筑、站点或地标等详细信息;重复新增会安全跳过,多个旧词可归并到同一规范词条。
- 新增 AI 语音识别配置指南。
协作与现场录入
- 登录后自动恢复当前账户可见但本机尚未安装的协作会话,重启应用或更换设备后无需逐个重新加入;单个异常会话不会阻塞其他会话恢复。
- 当前记录新增“一键清空已填内容”,并保留主控呼号;协作模式采用原子同步,服务端拒绝操作时不会误清空本地界面。
- 修复协作保存后新记录和已重置草稿显示滞后、离线队列状态不及时,以及草稿同步期间表单未及时重建的问题。
- 将共享草稿写回安排到当前帧之后,避免 Windows 调整窗口和输入法回调期间重入原生文本连接,并稳定宽窄布局切换时的页面状态和输入焦点。
稳定性修复
- 修复保存、更新、删除或协作对账后,下方已保存记录表格可能继续显示旧数据、必须重启应用才刷新的问题;表格现在按新数据投影重建,并按记录 ID 稳定对应行。
- 缓解 Windows 10 调整窗口大小或最大化时由 Flutter 无障碍语义树触发的原生崩溃;Windows 11 行为保持不变,需要屏幕阅读器时可通过
OPENLOGTOOL_ENABLE_WINDOWS_ACCESSIBILITY=1恢复完整语义树。 - Windows 原生崩溃会在
%LOCALAPPDATA%\OpenLogTool\CrashDumps生成 minidump,方便后续诊断。
配套服务端
- 配套服务端更新将协作会话与个人云会话统一到会话页面,管理端可按账户查看全部会话、个人会话详情及分页日志,协作所有者也可从 WebUI 关闭自己的协作会话。服务端需单独升级部署。
工程与发布
- 构建环境升级至 Flutter 3.44.7 / Dart 3.12+,客户端与 Rust 核心版本统一迭代至 2.6.4-R(客户端构建号 16)。
- 新增一键版本迭代命令和 CI 版本一致性校验;
android/local.properties不再作为版本来源或纳入 Git。 - 加强协作恢复、草稿清空、Windows 兼容保护和记录表格即时刷新的回归测试。
English summary
OpenLogTool 2.6.4-R rolls up all changes from 2.6.0-R through 2.6.4-R. It adds an optional, review-first AI text assistant with OpenAI Responses, legacy Chat Completions, and Anthropic Messages support; inline field normalization; and AI-assisted dictionary recognition and cleanup.
Version 2.6.4-R also fixes the current-record action layout: Clear fields keeps a compact fixed width while Save record fills the remaining space. Clearing fields now restores both RST values to 59 for local and collaboration drafts instead of blanking them, while continuing to preserve the controller callsign.
The release also restores account-visible collaboration sessions automatically, adds an atomic clear-fields action that keeps the controller callsign, and fixes delayed collaboration draft and saved-record table updates. Windows 10 resize and maximize stability is improved with an accessibility compatibility guard and native minidump capture.
OpenLogTool now uses Flutter 3.44.7, synchronizes the Flutter and Rust versions at 2.6.4-R, and includes a one-command version bump plus CI consistency checks. Companion server updates are deployed separately.
Full Changelog: v2.5.0-R...v2.6.4-R
OpenLogTool v2.6.0-R
中文
OpenLogTool 2.6.0-R 新增可选的 AI 文字助手,在保留人工确认流程的前提下,为点名记录填写和本地词库维护提供快速规范建议。文字助手与语音识别分别配置,不启用时不会发起相关模型请求。
- 支持 OpenAI Responses、旧版 OpenAI 兼容 Chat Completions 和 Anthropic Messages 协议,可自定义 Base URL、API 密钥及模型名称。
- 设备、天线、QTH、高度和功率停止输入约 300 毫秒后可显示一条快速规范建议,不会自动覆盖已有内容。
- 增加词库 AI 工具,可从聚合后的历史字段识别候选词条,或整理现有词库;所有新增、重命名和合并操作均需逐项确认。
- 词库处理采用分批请求和输出截断重试,兼容 DeepSeek、MiMo 等模型的关闭思考模式,并改进空响应及旧版 Chat 协议解析。
- 强化 QTH 安全规则,禁止建议擅自删除城市、区县、机构、建筑、站点或地标等详细信息。
- 修复多条建议指向同一目标词条时的冲突;重复新增会安全跳过,多个旧词可归并到同一规范词条。
- 增加 AI 语音识别配置文档。模型密钥仍仅保存在本机安全存储中;词库分析不会上传完整日志、备注或时间字段。
English
OpenLogTool 2.6.0-R adds an optional AI text assistant for fast, reviewable field normalization and local dictionary maintenance. Text assistance is configured separately from speech recognition and makes no model requests while disabled.
- Supports OpenAI Responses, legacy OpenAI-compatible Chat Completions, and Anthropic Messages with configurable base URLs, API keys, and model names.
- Offers one quick normalization suggestion after roughly 300 ms of inactivity for device, antenna, QTH, height, and power fields without overwriting existing content.
- Adds reviewed dictionary tools that can discover candidates from aggregated historical fields or organize existing dictionaries; every add, rename, and merge remains user-selected.
- Batches dictionary requests, retries truncated output, disables reasoning for supported DeepSeek and MiMo models, and improves empty-response and legacy Chat parsing.
- Preserves detailed QTH information by rejecting suggestions that remove administrative areas, institutions, buildings, stations, or landmarks.
- Makes repeated dictionary targets safe: duplicate additions are skipped and multiple legacy terms can merge into one canonical entry.
- Adds an AI speech-recognition configuration guide. Credentials remain in on-device secure storage, and dictionary analysis does not upload complete logs, remarks, or timestamps.
Full Changelog: v2.5.0-R...v2.6.0-R