chore: complete v1.0 milestone

Archive 5 phases (36 plans) to milestones/v1.0-phases/.
Archive roadmap, requirements, and audit to milestones/.
Evolve PROJECT.md with shipped state and validated requirements.
Collapse ROADMAP.md to one-line milestone summary.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dev
2026-04-07 09:15:14 +02:00
parent b815c323d7
commit 724fdc550d
959 changed files with 6852 additions and 728 deletions

View File

@@ -0,0 +1,163 @@
---
phase: 01-foundation
plan: 08
type: execute
wave: 7
depends_on:
- 01-07
files_modified: []
autonomous: false
requirements:
- FOUND-01
- FOUND-02
- FOUND-03
- FOUND-04
- FOUND-05
- FOUND-06
- FOUND-07
- FOUND-08
- FOUND-09
- FOUND-10
- FOUND-12
must_haves:
truths:
- "Application launches without crashing from dotnet run"
- "All 8 tabs visible with correct localized headers"
- "Language switch from Settings tab changes tab headers immediately without restart"
- "Profile management dialog opens, allows adding/renaming/deleting profiles"
- "Log panel at bottom shows timestamped messages with color coding"
- "Status bar shows tenant name and connection status"
- "All unit tests pass (zero failures)"
artifacts:
- path: "SharepointToolbox/App.xaml.cs"
provides: "Running application entry point"
- path: "SharepointToolbox/Views/MainWindow.xaml"
provides: "Visible shell with all required regions"
key_links:
- from: "Visual inspection"
to: "Phase 1 success criteria (ROADMAP.md)"
via: "Manual verification checklist"
pattern: "checkpoint"
---
<objective>
Run the full test suite, launch the application, and perform visual/functional verification of all Phase 1 success criteria before marking the phase complete.
Purpose: Automated tests validate logic, but WPF UI can fail visually in ways tests cannot catch (layout wrong, bindings silently failing, log panel invisible, crash on startup).
Output: Confirmed working foundation. Green light for Phase 2.
</objective>
<execution_context>
@C:/Users/SebastienQUEROL/.claude/get-shit-done/workflows/execute-plan.md
@C:/Users/SebastienQUEROL/.claude/get-shit-done/templates/summary.md
</execution_context>
<context>
@.planning/ROADMAP.md
@.planning/phases/01-foundation/01-CONTEXT.md
@.planning/phases/01-foundation/01-07-SUMMARY.md
</context>
<tasks>
<task type="auto">
<name>Task 1: Run full test suite and verify zero failures</name>
<files><!-- no files created or modified — test-execution-only task --></files>
<action>
Run the complete test suite:
```
dotnet test SharepointToolbox.Tests/SharepointToolbox.Tests.csproj --no-build -v normal
```
Expected result: All Unit and Integration tests pass. The following tests may remain as `Skip`:
- `SessionManagerTests.GetOrCreateContextAsync_CreatesContext` (requires interactive MSAL)
If any tests fail:
1. Read the failure message carefully
2. Fix the underlying code (do NOT delete or skip a failing test)
3. Re-run until all non-interactive tests pass
Also run a build to confirm zero warnings (treat warnings as potential future failures):
```
dotnet build SharepointToolbox.sln -warnaserror
```
If warnings-as-errors produces failures from NuGet or generated code, switch back to `dotnet build SharepointToolbox.sln` and list remaining warnings in the SUMMARY.
</action>
<verify>
<automated>cd "C:\Users\dev\Documents\projets\Sharepoint" && dotnet test SharepointToolbox.Tests/SharepointToolbox.Tests.csproj 2>&1 | tail -15</automated>
</verify>
<done>Test output shows 0 failed. All non-interactive tests pass. Build produces 0 errors.</done>
</task>
<task type="checkpoint:human-verify" gate="blocking">
<what-built>
Complete Phase 1 Foundation:
- WPF shell with 8-tab layout, log panel (150px, black background, green text), StatusBar
- Toolbar: tenant ComboBox (220px), Connect, Manage Profiles, separator, Clear Session
- Profile management dialog (modal) — add, rename, delete tenant profiles
- Settings tab: language switcher (EN/FR) + data folder picker
- Dynamic language switching — changes tab headers without restart
- Serilog rolling file log + LogPanelSink writing to in-app RichTextBox
- Global exception handlers wired
- All infrastructure patterns in place (pagination helper, retry helper, FeatureViewModelBase)
- Per-tab FeatureTabBase UserControl with ProgressBar + Cancel strip (shown only when IsRunning)
- StatusBar middle field shows live operation status text (ProgressStatus)
</what-built>
<how-to-verify>
Run the application: `dotnet run --project SharepointToolbox/SharepointToolbox.csproj`
Check each item:
1. **Shell layout**: Window shows toolbar at top, TabControl in center with 8 tabs (Permissions, Storage, File Search, Duplicates, Templates, Bulk Operations, Folder Structure, Settings), log panel at bottom (black, 150px), status bar below log.
2. **Tab headers**: All 8 tabs have their English localized text (not "[tab.xxx]" — which would mean missing resx key).
3. **Language switch**:
- Open Settings tab
- Change language to French
- Verify tab headers change immediately (no restart)
- Change back to English to reset
4. **Profile management**:
- Click "Manage Profiles..."
- Modal dialog appears
- Add a test profile: Name="Test", URL="https://test.sharepoint.com", ClientId="test-id"
- Profile appears in the toolbar ComboBox after dialog closes
- Rename the profile in the dialog — new name shows in ComboBox
- Delete the profile — removed from ComboBox
5. **Log panel**:
- Verify log entries appear (at least startup messages) in `HH:mm:ss [XXXX] message` format
- Verify green color for info entries
6. **Data folder**:
- Open Settings tab
- Click Browse, select a folder
- Verify folder path appears in the TextBox
7. **Error handler** (optional — skip if risky):
- Confirm `%AppData%\SharepointToolbox\logs\` directory exists and contains today's log file
Report any visual issues, missing strings, or crashes.
</how-to-verify>
<resume-signal>Type "approved" if all checks pass, or describe specific issues found</resume-signal>
</task>
</tasks>
<verification>
All Phase 1 ROADMAP success criteria met:
1. User can create, rename, delete, and switch between tenant profiles via the UI
2. MSAL token cache infrastructure ready (interactive login requires a real Azure AD tenant — not testable in this checkpoint)
3. Per-tab progress bar + cancel button infrastructure built (FeatureTabBase UserControl wired in all 7 stub tabs; FeatureViewModelBase tests prove the pattern)
4. Log panel surfaces errors in red; global exception handlers registered
5. Language switches between EN and FR dynamically without restart
</verification>
<success_criteria>
Human approves visual checkpoint. All unit tests green. Phase 1 complete — ready to begin Phase 2 (Permissions).
</success_criteria>
<output>
After completion, create `.planning/phases/01-foundation/01-08-SUMMARY.md`
</output>