Skip to content

Release v1.4.1: 查找替换、AppData 配置与各平台安装包 - #5

Merged
SeaAndStars merged 25 commits into
masterfrom
dev
Nov 1, 2026
Merged

SeaAndStars merged 25 commits into
masterfrom
dev

Conversation

@SeaAndStars

Copy link
Copy Markdown
Owner

概要

  • v1.4.0:跨页查找替换、快捷输入,以及主题与标题/页脚对齐规则统一。
  • v1.4.1:可写配置统一迁移到用户 AppData;更新器增加 GitHub Release 兜底下载与 SHA256 校验。
  • 安装包:新增 Windows(NSIS)、Linux(deb/rpm/AppImage/tar.gz)、macOS(.app/dmg)打包脚本,并接入 tag Release 的 CI 自动构建与上传。
  • 文档:README 下载表与 v1.4.1 Release 正文同步安装包信息,新增 packaging/README.md。

验证

  • 6 个 RID 自包含发布,PE x64/ARM64、ELF x64/aarch64、Mach-O x64/arm64 架构校验通过。
  • Linux 安装包在 Xvfb 下实际启动,AppImage 解包运行通过。
  • macOS DMG 经 fsck.hfsplus 校验,Applications 符号链接与可执行位保留。
  • CI 工具链在 Ubuntu 24.04 实测:NSIS 3.09、rpm 4.18 交叉产出 aarch64 RPM、ImageMagick 6、HFS+ DMG 均通过;actionlint 无错误。
  • v1.4.1 Release 已回填 14 个安装包与 SHA256SUMS.txt。

发布说明

合并后 master 会触发 nightly(仅 zip);后续 tag 将额外构建并上传全部安装包。安装包未签名/未公证,macOS 与 Windows 首次打开需按 Release 说明放行。

- add SettingsViewModel load/save/verify/language/error coverage
- add UploadSettingsViewModel path injection and save/load/invalid-JSON tests
- add MainProjectsViewModel constructor path injection plus create/open/remove/
  refresh/recent-store tests
- add Tools ServerSettingsViewModel proxy/save coverage
- cover CollaborationSession root directory and small model edges
Cover settings, recent-project workflows and Tools server settings;
add path injection for testable settings/recent-store persistence.
- exercise episode/volume/special/range/chinese-numeral parsers, status ranking,
  subdirectory/key/name builders and folder scanning in UploadViewModel
- cover TranslateViewModel cancellation/helper workflows and direct file save
  without entering the UI-dispatcher-dependent open/new paths
Cover UploadViewModel parsers and safe TranslateViewModel workflows.
- add TeamWorkViewModel auto-refresh opt-out and tests for tree building,
  command wiring, stage nodes, remote file names, sanitizers, BOM/number
  helpers, file-list notifications and download guards
- add PackWindowViewModel helper tests for string paths, manifest detection,
  version-file reading, project/publish paths and folder/solution selection
Cover TeamWork tree/parsing and PackWindow helper logic.
- add SettingsViewModel latest/release/file-picker, local-version, updater-entry
  and task-state helper tests
- add MainProjects preview parsers and autosave-recovery tests; fix backup
  timestamp parsing so yyyyMMdd_HHmmss backups are actually detected
- add Translate snapshot/autosave, image path, hash, label move and text tests
- add Upload metadata tree/root creation tests
- add Tools MainWindow path/URL/transient/settings helper tests
Cover settings/projects/translate/tools helpers and fix autosave backup stamps.
…pers

- add IUiDispatcher abstraction with an Avalonia implementation (excluded as
  platform glue) and an inline test implementation, then use it in
  TranslateViewModel so new/open/save workflows run headlessly
- add translate file workflow tests (new/open/save/save-as/settings/labels)
- add pack manifest migration/upsert/version-file tests
- add PackVersionLocator folder/repo/legacy/dedup/source-project tests
- add UpdateFiles zip/delete/temp/hash edge tests and unreachable-server
  update-check coverage
Cover translate UI flows, pack manifests, version locator and file helpers.
- inject an isolated LabelFileManager into TranslateViewModel and use it from
  tests so parallel suites cannot corrupt each other's document state
- inject IUiDispatcher into MainProjectsViewModel and cover preview loading,
  navigation and missing/empty project states
- cover comprehensive Upload ScanEpisodes branches, metadata roots and
  recent-project/autosave failures
- add staged-installer cancellation/prefix/progress tests, ProgressReadStream,
  transfer-progress, localization fallback and MainWindow hash tests
- exclude platform-only updater entry/notification/download-directory code and
  remove unreachable defensive catches
Expand preview/parser/defensive-path coverage and isolate Translate state.
Make repo-root test independent of test artifacts path.
- add an in-process AList fake and cover login/mkdir/upload/list/download flows
  for UploadViewModel and the update-check manifest path
- cover Upload parser/special/volume/range branches, settings/version helpers,
  Tools client setup/load-flush failures, preview navigation and staged-installer
  cancellation/rollback paths
- remove unreachable translation/scan fallbacks and combine duplicate catch
  blocks; exclude OS-specific updater/download-directory/rollback helpers as
  platform/defensive glue
- keep the suite parallel-safe with a per-view-model LabelFileManager
Reach 100% core line coverage and cover AList upload/update flows.
- replace HttpListener with a minimal TcpListener HTTP/1.1 fake so Windows
  and macOS runners do not depend on URL ACL/HttpListener support
- skip /proc-only assertions and Windows-only updater resolution checks
- make URI space assertions OS-independent and clean a duplicate using
Make CI fake server and platform tests cross-platform.
Fix lazy directory enumeration for Windows CI.
Add cross-image find/replace window, quick input, theme preference in settings, mode segment refinements, aligned headers/footers, Ursa confirm dialog and debug devtools. Bump client version to 1.4.0 and add curated release notes.
…back

Move settings, upload, recent projects and tools config to LocalApplicationData with legacy migration and AppData priority; add GitHub release download fallback to the updater; ship updater 1.4.1 with the desktop release.
- package Windows (NSIS), Linux (deb/rpm/AppImage/tar.gz) and macOS (.app/dmg)
- build installers for tag releases and upload them to the GitHub Release
- document installers in the README and the v1.4.1 release notes
@SeaAndStars
SeaAndStars merged commit afaf771 into master Nov 1, 2026
8 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants