yyc12345
|
31fc58d9c7
|
feat(m1): storage layer
- Shared SQLite plumbing: PRAGMAs (WAL/NORMAL/foreign_keys) and
user_version migrations with typed SchemaVersionException
- Workspace folder: .ykanban initialization, empty schema with
DDL-level constraints, preset column seeding (ResX-driven),
exclusive lock file with holder diagnostics
- AppData folder: app.db workspace registry (injectable clock),
app.json config store with kebab-case JSON names via explicit
[JsonProperty]/[EnumMember], nested sections, corrupt-file backup
- ResX infrastructure under Assets/Locales (en + zh-Hans) with
MSBuild strongly-typed public Resources class
- 54 unit tests: DDL constraints, migrations, PRAGMAs, lock
exclusivity, config degradation, culture-aware presets
|
2026-10-01 18:17:47 +08:00 |
|
yyc12345
|
e934eb9629
|
refactor(m0): restructure project and install dependencies
- Clean Avalonia template content (ViewLocator, greeting, empty Models folder)
- Add YKanBan.Tests (MSTest 4.4.1) to solution
- Install packages per plan version table (Semi.Avalonia, Lucide icons,
Microsoft.Data.Sqlite, Pidgin, Newtonsoft.Json 13.0.4 fallback)
|
2026-10-01 16:57:12 +08:00 |
|