Skip to content

Extend setup wizard timeout for Teams channel setup#648

Open
ranjeshj wants to merge 2 commits into
mainfrom
ranjeshj/fix-teams-wizard-timeout
Open

Extend setup wizard timeout for Teams channel setup#648
ranjeshj wants to merge 2 commits into
mainfrom
ranjeshj/fix-teams-wizard-timeout

Conversation

@ranjeshj

@ranjeshj ranjeshj commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Share setup wizard timeout classification between the UI wizard and setup-engine runner
  • Extend the existing long timeout path to channel/plugin install and download steps
  • Include submitted answer and selected option text so Teams channel selection gets the longer timeout even when the step title is generic
  • Add setup-engine tests for slow wizard timeout classification and default behavior

Validation

  • OPENCLAW_REPO_ROOT=C:\oc641 .\build.ps1
  • dotnet test .\tests\OpenClaw.SetupEngine.Tests\OpenClaw.SetupEngine.Tests.csproj --no-restore
  • dotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --no-restore
  • dotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restore

Note: running build.ps1 from the full generated worktree path hit a WinAppSDK PRI expansion path failure for CommunityToolkit.WinUI.Controls.SettingsControls.pri.xml. The same baseline build passed from the main checkout, and the worktree validation passed via a short C:\oc641 junction to the same branch contents.

Fixes: #641

Use a shared setup wizard timeout classifier for both the UI-hosted and setup-engine wizard flows. Slow channel/plugin install and download steps now get the same extended timeout already used for auth/device-code flows, including when the selected option text contains Teams.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@clawsweeper

clawsweeper Bot commented Jun 2, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge. Reviewed June 7, 2026, 9:06 PM ET / 01:06 UTC.

Summary
The branch centralizes setup wizard timeout classification, passes selected-answer option text into both wizard callers, and adds setup-engine tests for slow channel/plugin/Teams timeout handling.

Reproducibility: no. live high-confidence reproduction was run. Source inspection on current master shows both wizard.next callers keep generic channel/plugin/Teams steps on the short timeout path, matching the linked report's failure shape.

Review metrics: 2 noteworthy metrics.

  • Changed surface: 5 files, +97/-22. The patch is focused on setup wizard timeout classification and tests rather than a broad setup rewrite.
  • Regression coverage: 2 setup-engine test files added or changed. The tests cover the shared timeout classifier and selected Teams option text path that current master lacks.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🌊 off-meta tidepool
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • none.

Risk before merge

  • [P1] Required GitHub test and e2etests checks were still in progress on the PR head during review, so merge should wait for normal check completion.
  • [P1] No live Teams setup run was inspected in this read-only review; the support for the fix is source inspection plus focused tests and the PR author's reported validation.

Maintainer options:

  1. Decide the mitigation before merge
    Merge this PR, or an equivalent narrow fix, after maintainer review and required checks confirm slow Teams/channel/plugin wizard steps get the longer timeout while ordinary questions keep the default timeout.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • No automated repair is needed; this collaborator-authored PR should stay open for normal maintainer review and required checks because no discrete fix finding was found.

Security
Cleared: The diff changes C# timeout classification and tests only; it does not alter workflows, dependencies, credentials, permissions, downloaded artifacts, or code execution sources.

Review details

Best possible solution:

Merge this PR, or an equivalent narrow fix, after maintainer review and required checks confirm slow Teams/channel/plugin wizard steps get the longer timeout while ordinary questions keep the default timeout.

Do we have a high-confidence way to reproduce the issue?

No live high-confidence reproduction was run. Source inspection on current master shows both wizard.next callers keep generic channel/plugin/Teams steps on the short timeout path, matching the linked report's failure shape.

Is this the best way to solve the issue?

Yes. The PR is a narrow maintainable fix because it removes duplicated timeout heuristics, feeds selected-answer context into both runners, and adds targeted regression tests without changing gateway protocol or setup state storage.

AGENTS.md: found and applied where relevant.

Codex review notes: model gpt-5.5, reasoning high; reviewed against d1b136347e95.

Label changes

Label justifications:

  • P2: This is a normal-priority setup wizard bug fix for a real channel configuration timeout with limited blast radius.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The external-contributor real-behavior proof gate is not applied because this PR is collaborator-authored; the PR body reports build and test validation instead.
Evidence reviewed

What I checked:

  • Repository policy read: AGENTS.md was read in full; its required validation guidance and onboarding-wizard context were applied to the PR review, while this cleanup pass stayed read-only. (AGENTS.md:1, d1b136347e95)
  • No matching maintainer notes: The repository has no .agents/maintainer-notes files to apply for this setup wizard PR. (d1b136347e95)
  • Current UI timeout path remains short for Teams/channel text: On current master, WizardPage still calls TimeoutForCurrentStep(), whose long-timeout keywords are device/authorize/login/sign-in/oauth only. (src/OpenClaw.SetupEngine.UI/Pages/WizardPage.xaml.cs:548, d1b136347e95)
  • Current setup-engine timeout path remains short for Teams/channel text: On current master, SetupWizardRunner.TimeoutFor has the same auth-only keyword list and does not consider selected option labels or hints. (src/OpenClaw.SetupEngine/SetupWizardRunner.cs:420, d1b136347e95)
  • Latest release has the same unfixed timeout classifier: The v0.6.3 release tag still contains the auth-only UI and setup-engine timeout classifiers, so the PR is not obsolete in the latest release. (src/OpenClaw.SetupEngine/SetupWizardRunner.cs:420, 85445c78066b)
  • PR adds shared slow-step classifier: The PR head adds WizardSelection.TimeoutForStep with constants and includes channel, plugin, install, download, and teams in the slow-timeout keyword set. (src/OpenClaw.SetupEngine/WizardSelection.cs:48, 4525867153ae)

Likely related people:

  • ranjeshj: Current-main history shows ranjeshj authored the SetupEngine redesign that introduced the setup wizard runner area and later consolidated setup UI into the tray host; that prior merged history makes him relevant beyond being this PR's author. (role: feature owner / recent setup-wizard contributor; confidence: high; commits: cefce3952ab1, afa6218338d6; files: src/OpenClaw.SetupEngine/SetupWizardRunner.cs, src/OpenClaw.SetupEngine/WizardSelection.cs, src/OpenClaw.SetupEngine.UI/Pages/WizardPage.xaml.cs)
  • bkudiess: Recent merged wizard UI work changed the same WizardPage surface for console output and OAuth/device-code rendering, adjacent to the timeout and slow wizard-step behavior under review. (role: recent adjacent wizard UI contributor; confidence: medium; commits: 8f134b354df0; files: src/OpenClaw.SetupEngine.UI/Pages/WizardPage.xaml.cs)
  • Christine Yan: Local blame in the shallow checkout points the current timeout methods and WizardSelection file to the v0.6.3 release-line localization commit, though broader feature ownership is better represented by the SetupEngine history. (role: release-line code provenance; confidence: low; commits: 85445c78066b; files: src/OpenClaw.SetupEngine.UI/Pages/WizardPage.xaml.cs, src/OpenClaw.SetupEngine/SetupWizardRunner.cs, src/OpenClaw.SetupEngine/WizardSelection.cs)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P2 Normal priority bug or improvement with limited blast radius. labels Jun 2, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@shanselman

Copy link
Copy Markdown
Contributor

Thanks for this PR. I rebased/resolved the current conflict and added a small regression fix/test for headless multiselect answers with opaque option values whose label/hint is Teams/channel-related.

Could you please do one extra manual smoke on your side before we merge: run the setup wizard through the Teams/channel setup path that originally timed out, ideally including a slow plugin/install/download step, and confirm the step now survives beyond the previous 30s timeout without regressing ordinary short wizard questions? Local build/tests and adversarial review are clean on the updated branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2 Normal priority bug or improvement with limited blast radius. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Config Wizard: configuring the Teams channel times out

2 participants