Files
Sharepoint-Toolbox/.planning/STATE.md
Dev a39c87d43e 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)
2026-04-07 10:05:16 +02:00

3.1 KiB

gsd_state_version, milestone, milestone_name, status, stopped_at, last_updated, last_activity, progress
gsd_state_version milestone milestone_name status stopped_at last_updated last_activity progress
1.0 v1.0 milestone completed Completed 06-01-PLAN.md — GlobalSitesChangedMessage and FeatureViewModelBase extension done 2026-04-07T08:04:57.041Z 2026-04-07 — Roadmap created (Phases 6-9), 10/10 requirements mapped
total_phases completed_phases total_plans completed_plans
4 0 5 2

Project State

Project Reference

See: .planning/PROJECT.md (updated 2026-04-07)

Core value: Administrators can audit and manage SharePoint/Teams permissions and storage across multiple client tenants from a single, reliable desktop application. Current focus: v1.1 Enhanced Reports — global site selection, user access audit, simplified permissions, storage visualization

Current Position

Phase: 6 — Global Site Selection (not started) Plan: — Status: Roadmap complete, awaiting first plan Last activity: 2026-04-07 — Roadmap created (Phases 6-9), 10/10 requirements mapped

v1.1 Progress: [                    ] 0%
Phase 6 [ ] → Phase 7 [ ] → Phase 8 [ ] → Phase 9 [ ]

Performance Metrics

Metric v1.0 v1.1 (running)
Phases 5 4 planned
Plans 36 TBD
Commits 164 0
Tests 134 pass / 22 skip
Phase 06-global-site-selection P02 8 1 tasks
Phase 06-global-site-selection P01 2 2 tasks

Accumulated Context

Decisions

Decisions are logged in PROJECT.md Key Decisions table.

v1.1 architectural notes:

  • Global site selection (Phase 6) changes the toolbar; all tabs must bind to a shared GlobalSiteSelectionViewModel or equivalent. Use WeakReferenceMessenger for cross-tab site-changed notifications, consistent with v1.0 messenger usage.
  • Per-tab override (SITE-02) means each FeatureViewModelBase subclass stores a nullable local site override; null means "use global".
  • 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? factory for SitePickerDialog and broadcasts GlobalSitesChangedMessage via WeakReferenceMessenger on collection change
  • [Phase 06-01]: GlobalSitesChangedMessage uses IReadOnlyList (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

  1. Add global multi-site selection option (ui) — todos/pending/2026-04-07-add-global-multi-site-selection-option.mdaddressed by Phase 6

Blockers/Concerns

None.

Session Continuity

Last session: 2026-04-07T08:04:57.038Z Stopped at: Completed 06-01-PLAN.md — GlobalSitesChangedMessage and FeatureViewModelBase extension done Resume file: None