yyc12345 62a3c96dc0 feat(m5): gui shell
- AppServices composition root: owns config, global workspace registry
  (app.db), platform path comparer and the LRU workspace connection pool;
  configuration persisted once at shutdown and services disposed
- AppDataPaths centralizes app.json / app.db locations; AppConfig gains
  a DefaultLanguage constant
- MVVM shell: MainWindowViewModel hosts SidebarViewModel and the current
  content page (welcome / workspace / localized failure state), mapping
  typed open failures to ResX messages
- SidebarViewModel: persistent workspace list with name-asc, name-desc
  and recently-updated sorting (selection persisted), open-project folder
  picker and initialize confirmation via Interaction<TInput,TOutput>
  handlers registered by the view; workspace entries open/remove
- Pages (welcome, workspace, message), dialogs (settings, about, confirm)
  with their view models; settings/about opened from the window
- App startup applies configured culture (RTL flow direction) and theme
  before the main window; forwarded IPC commands activate the window and
  switch workspace from the launch path
- Full UI text sourced from ResX in both en and zh-Hans; no hardcoded
  strings, theme colors via ThemeDictionaries
2026-10-02 18:02:22 +08:00
2026-10-01 16:44:18 +08:00
2026-10-02 18:02:22 +08:00
2026-09-29 20:16:52 +08:00
2026-09-29 20:16:52 +08:00
2026-09-29 20:16:52 +08:00

YKanBan

My personal used local/offline kanban.

WIP.

S
Description
A personal, local/offline kanban board.
Readme MIT
1.1 MiB
0 Stars 1 Watchers 0 Forks
Languages
C# 98.2%
Inno Setup 1%
Shell 0.8%