fix(01-foundation): revise plans based on checker feedback

- 01-04: wave 3 → 4 (01-03 is also wave 3; parallel executor would race)
- 01-06: wave 4 → 5 (cascades from 01-04 fix); add FeatureTabBase UserControl
  for per-tab progress/cancel strip; bind StatusBar middle item to ProgressStatus
  instead of ConnectionStatus per locked CONTEXT.md decision
- 01-07: wave 5 → 6 (cascades)
- 01-08: wave 6 → 7 (cascades)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Dev
2026-04-02 11:53:41 +02:00
parent eeb9a3bcd1
commit b4a901e52a
4 changed files with 120 additions and 25 deletions

View File

@@ -2,7 +2,7 @@
phase: 01-foundation
plan: 08
type: execute
wave: 6
wave: 7
depends_on:
- 01-07
files_modified: []
@@ -100,6 +100,8 @@ Output: Confirmed working foundation. Green light for Phase 2.
- 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`
@@ -147,7 +149,7 @@ Output: Confirmed working foundation. Green light for Phase 2.
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 (no long-running ops in Phase 1 to demo, but FeatureViewModelBase tests prove the pattern)
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>