---
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>
