docs(06-01): complete GlobalSitesChangedMessage and FeatureViewModelBase plan

- 06-01-SUMMARY.md created with deviations and decisions documented
- STATE.md updated: progress 40%, decisions added, session recorded
- ROADMAP.md updated: phase 6 in-progress (2/5 summaries)
This commit is contained in:
Dev
2026-04-07 10:05:16 +02:00
parent 95bf9c2eed
commit a39c87d43e
3 changed files with 127 additions and 7 deletions

View File

@@ -3,14 +3,14 @@ gsd_state_version: 1.0
milestone: v1.0
milestone_name: milestone
status: completed
stopped_at: Completed 06-02-PLAN.md
last_updated: "2026-04-07T08:04:23.154Z"
stopped_at: Completed 06-01-PLAN.md — GlobalSitesChangedMessage and FeatureViewModelBase extension done
last_updated: "2026-04-07T08:04:57.041Z"
last_activity: 2026-04-07 — Roadmap created (Phases 6-9), 10/10 requirements mapped
progress:
total_phases: 4
completed_phases: 0
total_plans: 5
completed_plans: 1
completed_plans: 2
---
# Project State
@@ -43,6 +43,7 @@ Phase 6 [ ] → Phase 7 [ ] → Phase 8 [ ] → Phase 9 [ ]
| Commits | 164 | 0 |
| Tests | 134 pass / 22 skip | — |
| Phase 06-global-site-selection P02 | 8 | 1 tasks | 1 files |
| Phase 06-global-site-selection P01 | 2 | 2 tasks | 3 files |
## Accumulated Context
@@ -56,6 +57,8 @@ Decisions are logged in PROJECT.md Key Decisions table.
- Storage Visualization (Phase 9) requires a WPF charting NuGet (LiveCharts2 recommended — actively maintained, WPF-native, self-contained friendly). Wire chart data binding to the existing storage scan result model.
- Self-contained EXE constraint: charting library must not require runtime DLLs outside the publish output.
- [Phase 06-02]: MainWindowViewModel uses Func<Window>? factory for SitePickerDialog and broadcasts GlobalSitesChangedMessage via WeakReferenceMessenger on collection change
- [Phase 06-01]: GlobalSitesChangedMessage uses IReadOnlyList<SiteInfo> (snapshot, not ObservableCollection) so receivers cannot mutate sender state
- [Phase 06-01]: FeatureViewModelBase.OnGlobalSitesReceived (private) updates GlobalSites then calls OnGlobalSitesChanged (protected virtual) — separates storage from derived class hooks
### Pending Todos
@@ -67,6 +70,6 @@ None.
## Session Continuity
Last session: 2026-04-07T08:04:23.152Z
Stopped at: Completed 06-02-PLAN.md
Last session: 2026-04-07T08:04:57.038Z
Stopped at: Completed 06-01-PLAN.md — GlobalSitesChangedMessage and FeatureViewModelBase extension done
Resume file: None