Commit Graph
16 Commits
Author SHA1 Message Date
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
doyaGu d2a5d36bd2 fix(search): reject parentheses nested deeper than 64 levels
Deep nesting overflowed the stack of the recursive Pidgin parser (around
400-700 levels), an uncatchable crash. The depth is now checked on the token
stream before parsing and reported as a syntax error. Listed in PLAN 6.2 and
USAGE.
2026-10-03 08:12:34 -04:00
doyaGu 6ea0df43e3 feat: implement tags tab, board search execution and markdown export wiring 2026-10-03 07:34:34 -04:00
doyaGu e3f58ce150 feat: implement board tab with dialogs, virtualized card lists and refresh-after-write
- board: columns in id order, per-column sort via config, column width presets (240/320/480) and custom 160-720
- column header new-card and edit/delete menu; card menu delete and move-to-column
- card editor as one unit of work with dirty check and discard confirmation; nested tag picker writes new tags immediately
- schema constraint violations mapped to typed exceptions and shown inside the modal
- dialog service with owner stack so nested modals center on their parent and get FlowDirection
- repository: filtered GetCards, CountCards; view-model tests
2026-10-03 03:33:25 -04:00
doyaGu 433f204c81 feat: apply ui flow direction to modal windows and guard code-behind resources usage 2026-10-03 02:59:47 -04:00
doyaGu 6743e1572e feat: add workspace open-failed page and tighten launch argument rules 2026-10-03 02:58:43 -04:00
doyaGu cde9e8e20c fix: align markdown export escaping and time format with plan 2026-10-03 02:56:18 -04:00
doyaGu 4b56297135 feat: write app.json only when changed and fall back per invalid field 2026-10-03 02:54:27 -04:00
doyaGu bb4f96a9c5 feat: drop created-at card sort and add card display ordering 2026-10-03 02:52:28 -04:00
doyaGu 27b507e439 feat: tighten search grammar and use unicode case folding 2026-10-03 02:50:52 -04:00
doyaGu 632339ea42 feat: make column title and tag name uniqueness case-insensitive 2026-10-03 02:44:46 -04:00
doyaGu 33757f6cbc chore: migrate to net10.0 and Microsoft.Data.Sqlite 10.0.12 2026-10-03 02:43:39 -04:00
yyc12345 22a0f61cb5 feat: add search parser, sql compiler and markdown export 2026-10-02 22:32:33 +08:00
yyc12345 941e22c7ff feat: add models and workspace repository layer 2026-10-02 22:12:38 +08:00
yyc12345 c2ee02c209 feat: add storage foundation and i18n resources 2026-10-02 22:05:12 +08:00
yyc12345 a5edad4aad chore: reorganize project and add test project 2026-10-02 21:44:40 +08:00