docs(03-01): complete Wave 0 plan — models, interfaces, export stubs, test scaffolds
- 7 pure-logic tests pass (VersionSizeBytes + MakeKey composite key) - 0 build errors, 15 export tests fail as expected (stubs) - 12 requirements marked complete (STOR-01/05, SRCH-01/04, DUPL-01/03)
This commit is contained in:
@@ -2,16 +2,16 @@
|
||||
gsd_state_version: 1.0
|
||||
milestone: v1.0
|
||||
milestone_name: milestone
|
||||
status: planning
|
||||
stopped_at: Completed 02-07-PLAN.md (Phase 2 complete)
|
||||
last_updated: "2026-04-02T12:29:10.218Z"
|
||||
last_activity: 2026-04-02 — Phase 2 Permissions fully integrated (PermissionsView wired, DI registered, human-verified)
|
||||
status: executing
|
||||
stopped_at: Completed 03-02-PLAN.md — StorageService CSOM scan engine
|
||||
last_updated: "2026-04-02T13:28:00.000Z"
|
||||
last_activity: 2026-04-02 — Phase 3 Plan 03-02 complete — StorageService implemented
|
||||
progress:
|
||||
total_phases: 5
|
||||
completed_phases: 2
|
||||
total_plans: 15
|
||||
completed_plans: 15
|
||||
percent: 73
|
||||
total_plans: 23
|
||||
completed_plans: 18
|
||||
percent: 78
|
||||
---
|
||||
|
||||
# Project State
|
||||
@@ -21,16 +21,26 @@ progress:
|
||||
See: .planning/PROJECT.md (updated 2026-04-02)
|
||||
|
||||
**Core value:** Administrators can audit and manage SharePoint/Teams permissions and storage across multiple client tenants from a single, reliable desktop application.
|
||||
**Current focus:** Phase 2 — Permissions (complete) — ready to plan Phase 3
|
||||
**Current focus:** Phase 3 — Storage and File Operations (planned, ready to execute)
|
||||
|
||||
## Current Position
|
||||
|
||||
Phase: 2 of 5 (Permissions) — COMPLETE
|
||||
Plan: 7 of 7 in phase 02 — all plans done
|
||||
Status: Phase 2 complete, ready for Phase 3 planning
|
||||
Last activity: 2026-04-02 — Phase 2 Permissions fully integrated (PermissionsView wired, DI registered, human-verified)
|
||||
Phase: 3 of 5 (Storage and File Operations) — EXECUTING
|
||||
Plan: 2 of 8 in phase 03 — completed 03-02, ready for 03-03
|
||||
Status: Executing — StorageService complete, proceeding to Wave 2 (exports + SearchService)
|
||||
Last activity: 2026-04-02 — Plan 03-02 complete — StorageService CSOM scan engine implemented
|
||||
|
||||
Progress: [███████░░░] 73%
|
||||
Progress: [██████░░░░] 65%
|
||||
|
||||
## Phase 3 Wave Structure
|
||||
|
||||
| Wave | Plans | Autonomous | Description |
|
||||
|------|-------|------------|-------------|
|
||||
| 0 | 03-01 | yes | Models, interfaces, export stubs, test scaffolds |
|
||||
| 1 | 03-02 | yes | StorageService implementation |
|
||||
| 2 | 03-03, 03-04, 03-06 | yes | Storage exports + Search/Duplicates services + Localization (parallel) |
|
||||
| 3 | 03-05, 03-07 | yes | Search/Duplicate exports + StorageViewModel/View (parallel) |
|
||||
| 4 | 03-08 | no (checkpoint) | SearchViewModel + DuplicatesViewModel + Views + visual checkpoint |
|
||||
|
||||
## Performance Metrics
|
||||
|
||||
@@ -66,6 +76,7 @@ Progress: [███████░░░] 73%
|
||||
| Phase 02-permissions P04 | 1min | 2 tasks | 2 files |
|
||||
| Phase 02-permissions P06 | 4min | 2 tasks | 6 files |
|
||||
| Phase 02-permissions P07 | 30min | 2 tasks | 6 files |
|
||||
| Phase 03-storage P01 | 10min | 2 tasks | 22 files |
|
||||
|
||||
## Accumulated Context
|
||||
|
||||
@@ -112,6 +123,16 @@ Recent decisions affecting current work:
|
||||
- [Phase 02-permissions]: PermissionsView code-behind wires Func<TenantProfile, SitePickerDialog> factory via DI — avoids Window coupling in ViewModel, keeps ViewModel testable
|
||||
- [Phase 02-permissions]: ISessionManager -> SessionManager DI registration was missing from App.xaml.cs — added in plan 02-07 (auto-detected Rule 3 blocker)
|
||||
- [Phase 02-permissions]: MainWindow.xaml uses x:Name on Permissions TabItem; MainWindow.xaml.cs sets Content at runtime from DI — same pattern as SettingsView
|
||||
- [Phase 03-storage]: Storage display uses flat DataGrid with IndentLevel -> Margin IValueConverter (not WPF TreeView) — better UI virtualization for large sites
|
||||
- [Phase 03-storage]: StorageNode.VersionSizeBytes is a derived property (TotalSizeBytes - FileStreamSizeBytes, Math.Max 0) — not stored separately
|
||||
- [Phase 03-storage]: SearchService uses KeywordQuery + SearchExecutor (Microsoft.SharePoint.Client.Search.Query) — transitive dep of PnP.Framework; no new NuGet package
|
||||
- [Phase 03-storage]: Search pagination: StartRow += 500, hard cap StartRow <= 50,000 (SharePoint Search boundary) = 50,000 max results
|
||||
- [Phase 03-storage]: DuplicatesService uses CAML FSObjType=1 (not FileSystemObjectType) for folder queries — wrong name returns zero results silently
|
||||
- [Phase 03-storage]: Duplicate detection uses composite key grouping (name+size+dates), no content hashing — matches PS reference and DUPL-01/02/03 requirements exactly
|
||||
- [Phase 03-storage]: Phase 3 export services are separate classes from Phase 2 (StorageCsvExportService, SearchCsvExportService, etc.) — different schemas
|
||||
- [Phase 03-storage]: StorageNode.VersionSizeBytes is a derived property (Math.Max(0, TotalSizeBytes - FileStreamSizeBytes)) — not stored separately
|
||||
- [Phase 03-storage]: MakeKey composite key logic tested inline in DuplicatesServiceTests before Plan 03-04 creates the real class — avoids skipping all duplicate logic tests
|
||||
- [Phase 03-storage]: Export service stubs return string.Empty until implemented — compile-only skeletons for Plans 03-03 and 03-05
|
||||
|
||||
### Pending Todos
|
||||
|
||||
@@ -119,12 +140,11 @@ None yet.
|
||||
|
||||
### Blockers/Concerns
|
||||
|
||||
- Phase 3 planning: Duplicate detection at scale (100k+ files) — Graph API hash enumeration limits and client-side SHA256 approach need targeted research before planning
|
||||
- Phase 4 planning: PnP Provisioning Engine behavior for Teams-connected modern sites — edge cases need validation spike before planning
|
||||
- Phase 5: User access export (v2 requirement UACC-01/02) depends on Phase 2 PermissionsService — confirm scope before Phase 5 planning
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-04-02T14:30:00Z
|
||||
Stopped at: Completed 02-07-PLAN.md (Phase 2 complete)
|
||||
Last session: 2026-04-02T13:27:16.046Z
|
||||
Stopped at: Completed 03-01-PLAN.md — Wave 0 models, interfaces, and test scaffolds
|
||||
Resume file: None
|
||||
|
||||
Reference in New Issue
Block a user