Commit Graph
3 Commits
Author SHA1 Message Date
doyaGu c12408d2e3 fix(storage): refuse to open a workspace whose database file is missing
With .ykanban present but ykanban.db gone, opening used to create an empty
database and show an empty board without any hint. It now throws
WorkspaceDatabaseMissingException and shows the open-failed page, telling the
user to restore a backup or delete .ykanban and initialize again.
2026-10-03 08:12:53 -04:00
doyaGu 22102cd1ea fix(storage): initialize workspaces under the lock in one transaction
Follows PLAN 4.2: create .ykanban, take the lock, then build the database.
SqliteDatabase.Create writes every migration and the preset columns in a
single transaction and deletes the file again on failure, so no empty
version-0 database is left behind. WorkspaceSession.Initialize keeps the lock
into the session instead of releasing and re-acquiring it.

A lock conflict while initializing shows the lock-conflict page.
2026-10-03 08:12:35 -04:00
yyc12345 941e22c7ff feat: add models and workspace repository layer 2026-10-02 22:12:38 +08:00