更新日誌
版本歷程
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.