更新日誌

版本歷程

Zupu 的所有重要變更。

詳細更新說明目前以英文撰寫。

v0.2.0

2026-07-13

新增

  • The database now records a schema version and runs ordered migrations on startup. Opening a database created by a newer app version is refused with a clear message instead of risking damage to the data.
  • A React error boundary wraps the app, so an unexpected UI crash shows a recoverable error screen instead of a blank window.

變更

  • The app is renamed from Clan System to Zupu(族譜): new product name, window title, and installer names. Your data, settings, and clan identity are untouched, and the saved theme preference carries over automatically.
  • Backup exports are now named zupu-YYYY-MM-DD.json.
  • Custom-field reads are leaner and edits reload only the data they affect, so large families feel faster after changes.
  • Deleting a subsidy uses a clearer trash icon, and the delete-person dialog copy now matches the undo toast that follows it.

修復

  • Deleting a subsidy now asks for confirmation first.
  • Renaming a person immediately updates their name in the subsidy list.
  • The tree header shows the configured clan title instead of a fixed one.
  • Add dialogs discard their draft when closed, and the detail panel returns to the first tab whenever you switch to a different person.
  • Parent-child and marriage dialogs no longer allow linking a person to themselves; an inline error explains why.
  • Editing a person whose photo predates the current size limit no longer fails, and older backups containing such photos import correctly.
  • Export error messages are consistently in Traditional Chinese.
  • Clan settings that fail to save now show an error and keep the setup dialog open instead of closing as if the save had succeeded.
  • Audit entries with unrecognized action or scope values are shown as-is with a neutral style instead of being mislabeled as another category.
  • Inert placeholder buttons and unused selection controls were removed.

安全性

  • Backend write paths validate more input: setting keys are allowlisted, audit diffs are normalized, and photos are validated and size-limited.
  • Snapshot imports validate app settings entries and skip invalid ones, so backups from older versions always restore.
  • The relationships table now enforces non-empty parent and child ids through a data-preserving migration, and legacy schema repair plus orphan cleanup run inside a single transaction.

升級注意事項

  • Existing family.db data is preserved. On first launch the database records its schema version and rebuilds the relationships table with stricter integrity rules; all existing rows are kept.
  • Windows: the v0.2.0 MSI carries the upgrade identity of the previous Clan System installer, so installing Zupu replaces the old app in place. Close any running v0.1.4 instance before installing.
  • macOS: the app is now Zupu.app. After installing, remove the old Clan System.app from Applications — the underlying data is shared and survives the swap.
  • Download file names changed to Zupu-windows-x64.msi and Zupu-macos-arm64.dmg; the site download links already point to the new names.

v0.1.4

2026-06-12

新增

  • Undo for person deletion: the success toast offers 復原, which restores the person together with their relationships, marriages, subsidies, and custom fields after re-checking that the data is still consistent.
  • In-app toast notifications for import, export, and delete flows; errors are surfaced instead of failing silently, and native alert dialogs are gone.
  • The audit log loads 200 entries at a time with 載入更早的紀錄 to page back; audit report exports still cover the full history.
  • Importing a backup asks for confirmation in-app and shows the selected file name before anything is overwritten.
  • Backups now include the full audit log history, so the audit trail travels with the data when moving to a new machine.
  • Larger family-tree text and bigger cards; fitting the tree no longer shrinks it below 50% — past that it centers the focused person instead.

變更

  • All database access now goes through Rust commands; the webview no longer has any SQL access (the SQL plugin was removed entirely).
  • Subsidy amounts are stored as whole numbers; existing databases are rebuilt in place on first launch and legacy fractional amounts are rounded.
  • Audit log entries always record the local operator; the entry author can no longer be supplied by the UI layer.
  • The 祭祀事務 "coming soon" placeholder was removed from navigation until the feature actually exists.

修復

  • The family tree no longer rebuilds from scratch on every change: pan/zoom position is kept and the ghost-node artifacts are gone.
  • Importing a backup enforces the same relationship rules as the app (no self-links, duplicates, or ancestry cycles) and normalizes marriage records.
  • Suggested main person no longer freezes on large family trees.

安全性

  • Strict Content Security Policy for the app webview (was previously unset).
  • Removed the webview's ability to execute raw SQL against the database.

升級注意事項

  • Existing family.db data is preserved. The subsidy table is rebuilt once on first launch to store amounts as integers (record ids are preserved).
  • Backups exported by v0.1.4 include audit history; importing one replaces the local audit log. Backups from older versions still import and keep the local audit log untouched.
  • Close any running v0.1.3 app instance before installing the v0.1.4 MSI.

v0.1.3

2026-06-06

新增

  • Customizable clan title and icon: a first-launch setup dialog lets users name their clan (e.g. 黃氏宗親會) and pick an icon via emoji picker or auto first-character. The sidebar brand area is clickable to re-edit anytime.
  • New app_settings SQLite table for persisting clan identity settings.
  • App settings are included in JSON backup export and restored on import.
  • Generation guide lines on the family tree.
  • Member peek drawer: click a person in the members or subsidy view to see their detail panel without leaving the current view.
  • Tree focus-fit: the tree auto-centers on the selected person.

修復

  • Audit log correctness: partial dates, log truncation, timezone handling, and custom field audit entries.
  • First-launch setup dialog cannot be bypassed via Escape, overlay click, or close button.
  • Importing a backup now immediately refreshes the sidebar clan identity.
  • Leading whitespace in clan name no longer produces a blank icon.

升級注意事項

  • Existing family.db data is preserved.
  • The new app_settings table is created automatically on first launch.
  • On first launch after upgrade, the clan setup dialog will appear to set your clan name and icon.
  • Close any running v0.1.2 app instance before installing the v0.1.3 MSI.

v0.1.2

2026-05-08

修復

  • The 族譜 panel now clears the active person selection when the user clicks on empty canvas, so the right-side detail panel resets without needing to pick a different node.
  • Pan-drag releases on the canvas no longer trigger an unintended unselect.

升級注意事項

  • Existing family.db data is preserved.
  • No manual database migration is required.
  • Close any running v0.1.1 app instance before installing the v0.1.2 MSI.

v0.1.1

2026-05-08

新增

  • Added global search for clan members and subsidy records.
  • Added platform-native global search shortcuts: Command+K on macOS and Ctrl+K on Windows/Linux.

變更

  • The desktop window now opens maximized by default.

修復

  • Fixed database is locked errors on Windows when adding members or running multi-step database writes.
  • Moved write-side CRUD operations to Rust SQLx commands using real SQLite transactions and a single write connection pool.
  • Kept existing app-data family.db storage and preserved existing user data.

升級注意事項

  • Existing family.db data is preserved.
  • No manual database migration is required.
  • Close any running v0.1.0 app instance before installing the v0.1.1 MSI.

v0.1.0

2026-05-07

新增

  • Initial Tauri desktop app for local family-tree management.
  • People, parent-child relationships, marriages, subsidies, custom fields, and local JSON snapshot import/export.
  • React workspace with family tree, detail panel, member list, subsidy view, audit-style custom-field view, and bulk data manager.