Skip to content

Test/MCP UI workspace closing the last dock brings the welcome page back - #345

Open
romanzac wants to merge 2 commits into
test/mcp-ui-a3from
test/mcp-ui-a4
Open

Test/MCP UI workspace closing the last dock brings the welcome page back#345
romanzac wants to merge 2 commits into
test/mcp-ui-a3from
test/mcp-ui-a4

Conversation

@romanzac

@romanzac romanzac commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Add workspace: closing the last dock brings the welcome page back MCP test.

Test plan

  • nix build .#app succeeds
  • nix build .#smoke-test -L passes
  • nix build .#integration-test -L passes (if UI-visible)
  • Doctests pass (nix build .#doctests -L if touched)

Checklist

  • Branch prefixed fix/, feat/, chore/, docs/, test/, or ci/
  • No unrelated changes bundled in
  • CLAUDE.md / README.md / docs/ updated if behaviour or build steps changed
  • Uncommitted binaries, screenshots, or .DS_Store files removed

@status-im-auto

status-im-auto commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Jenkins Builds

Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 2adb8e6 1 2026-08-21 08:58:53 ~5 min linux/x86_64 📦App
✔️ 2adb8e6 1 2026-08-21 09:07:20 ~13 min macos/aarch64 🍎dmg
✔️ 2adb8e6 1 2026-08-21 09:09:30 ~16 min linux/aarch64 📦App
✔️ fe4512c 2 2026-08-27 04:13:09 ~4 min linux/x86_64 📦App
✔️ fe4512c 2 2026-08-27 04:19:28 ~10 min macos/aarch64 🍎dmg
✔️ fe4512c 2 2026-08-27 04:20:43 ~12 min linux/aarch64 📦App

unloadUiModuleImpl removed the widget and module/app map entries but
never touched m_currentVisibleApp, so after closing the last dock the
welcome page returned while backend.currentVisibleApp still named the
unloaded app. WorkspaceArea::activeAppChanged only fires from
QTabBar::currentChanged, which does not fire when the last dock is
removed, so nothing else reset it. Mirror the guarded clear-and-emit
already done in the uninstall-cascade path (teardownUiPluginWidget).
Spec MCP-TEST-PLAN v2 §2.A A4: from the A3 state, close fixture A's
dock and gate on dockCount reaching 0 within 5s, the welcome page
becoming visible again with the "Welcome back" greeting (fixture A
stays installed, only unloaded), and backend.currentVisibleApp
returning to "".

The dock is closed via the inspector's evaluate path
(closeDock("test_qml_only") on the WorkspaceArea object) rather than
callMethod, which does not marshal the QString argument correctly.
The test establishes its own precondition — if no dock is open it
re-opens fixture A first, and skips (per spec §0.A) when the fixture
is absent outside --ci mode.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds MCP integration coverage for restoring the welcome page after closing the final workspace dock and fixes visible-app state cleanup during unload.

Changes:

  • Adds an end-to-end final-dock closure test.
  • Clears currentVisibleApp when its module unloads.
  • Verifies dock removal, welcome-page visibility, greeting, and backend state.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
tests/ui-tests.mjs Tests the complete final-dock closure flow.
app/UIPluginManager.cpp Clears stale visible-app state during unload.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@romanzac
romanzac marked this pull request as ready for review August 27, 2026 05:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants