Repository navigation
Conversation
Mark the AppNavbar 'Create Workspace' nuxt-link as external (with a comment explaining document navigation to avoid overlapping with unresolved dashboard setup) and clean up its markup. Add an end-to-end test that simulates a very large /workspaces/mine request being held pending, then clicks the navbar 'Create Workspace' link while the dashboard is loading to verify the app performs a full navigation to /workspace/create and that the Create Workspace UI renders as expected.
Rename the export action text from "Start" to "Save" in the workspace export page for clearer UX. In the dashboard e2e test, remove an artificial delay and related comments, and simplify the /mine route handler to fulfill the mocked response and swallow any fulfill errors (.catch(() => {})) to avoid flaky cancellations during navigation.
Minor formatting cleanup in AppNavbar.vue (moved closing </nuxt-link> inline). Update E2E snapshot to reflect changed button label flow: when ready the button now shows "Save" instead of "Start", so the accessibility snapshot text was updated accordingly.
## DevBoard Task https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/4310/ ### Problem The dashboard waits for both the workspace list and project-group roles before completing page setup: - GET /workspaces/mine - Project-group roles request The shared navbar is interactive while these requests are pending. Previously, clicking Create Workspace during this interval started another Nuxt client-side navigation. In the failure state: - The URL changed to /workspace/create. - The site header remained visible. - <main> remained empty. - No error was displayed. - Loading /workspace/create directly worked. Accounts with many workspaces were more likely to encounter the issue because /workspaces/mine took longer to complete. ### Changes implemented - Added NuxtLink’s external option to the top-navbar Create Workspace link. - Preserved the existing navbar structure and mobile-menu behavior. - Added a Playwright regression test that: - Simulates an account with 1,500 workspaces. - Delays /workspaces/mine. - Waits until the request is confirmed pending. - Clicks the top-navbar Create Workspace link. - Verifies /workspace/create loads successfully. - Verifies the Blank, TDEI, and File creation options render. ### Testing evidence Without the fix: ``` Locator: getByRole('heading', { name: 'Create a Workspace' }) Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByRole('heading', { name: 'Create a Workspace' }) 466 | await expect( 467 | page.getByRole('heading', { name: 'Create a Workspace' }) > 468 | ).toBeVisible(); | ^ 469 | 470 | await expect( 471 | page.getByText('Blank Workspace', { exact: true }) ``` Without the fix, the URL changed to /workspace/create, but the page content did not render before Playwright’s 10-second assertion timeout. With the fix, the page rendered successfully in repeated runs. With the fix: ``` 10 passed ``` ### Impacted areas tested - Top-navbar Create Workspace navigation while the dashboard is loading. - Large workspace response containing 1,500 workspaces. - Pending /workspaces/mine request. - Authenticated full-page navigation. - Create Workspace landing page and all three creation options. - Repeated Chromium execution <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary - Added NuxtLink’s `external` option to the navbar’s Create Workspace link. This uses document navigation while dashboard setup requests are pending. - Added an end-to-end regression test that delays `/workspaces/mine` with 1,500 workspaces, then checks that the Create Workspace page and its Blank Workspace, From TDEI, and From File options appear. - Changed the export instructions to say the button changes to “Save” when the file is ready. ## Testing - Added the regression test. Test execution results were not provided. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Add logic to detect import jobs that should be treated as failures even when marked completed. Introduces util/findFailedImportJob to pick the latest workspace-import job whose status is failed or whose response.success is false. Use this helper in WorkspaceJobFailureDialog and the dashboard: the dialog will prefer a failed import job when showing details, and the dashboard now re-verifies workspaces marked completed (verifyCompletedImport) and flips their importStatus to failed if a failing job is found. Also clear the verification cache on refresh. Includes unit tests for the helper and updates an E2E test to expect the additional job fetch.
## DevBoard Task https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/4387 ### Changes implemented - A workspace marked `completed` is checked against its latest import job. - It displays **“Setup failed”** when the latest import job: - has `status: "failed"`, or - has `response.success: false`. - Clicking the failed badge opens the existing failure-details dialog. - Older failed jobs do not override a newer successful import. - The check runs again after refreshing the dashboard. ### Areas impacted for testing - Dashboard workspace status badge: - Successful import → **Ready** - Failed job → **Setup failed** - Completed job with `success: false` → **Setup failed** - Failure-details dialog: - Correct message, error code, failed step, and job ID appear. - Workspace selection: - Selecting another workspace checks its latest import job. - Dashboard refresh: - Status is checked again after refresh. - Regression: - Blank, in-progress, explicitly failed, and successful workspaces retain their existing status behavior. ### Testing completed - Added unit tests covering: - Explicitly failed import jobs. - Completed jobs with `response.success: false`. - Successful latest imports overriding older failed imports. - Added a Playwright test for a workspace marked `completed` whose latest job has `response.success: false`. - Visually confirmed in Playwright that: - The badge displays **“Setup failed. Select to view details”**. - Selecting the badge opens the failure-details dialog. - The correct failure message, error code, failed step, and job ID are displayed. - Type checking, linting, unit tests, and the focused Playwright test passed. <img width="1470" height="956" alt="Screenshot 2026-10-12 at 12 11 09 PM" src="https://github.com/user-attachments/assets/859b6c70-480e-4dbc-acce-c2a6b2b4b426" /> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary - Added `findFailedImportJob` to identify the latest workspace-import job when its status is `failed` or its response has `success: false`. - Updated the dashboard to check completed imports and mark a workspace as failed when the latest import job indicates failure. The check can be retried after an error and runs again after workspace refresh. - Updated the failure-details dialog to show the failed import job when available. - Added unit tests for failed and successful import cases, including an older failure followed by a newer success. - Updated the Playwright test to verify the failure badge, dialog details, and omission of the request token. Test execution results were not provided. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Pass workspace type to the review overlay and toolbar and add an editor selection flow for OSW workspaces. Toolbar now shows a split "Edit Here" dropdown (Rapid 2 default and Rapid 3 beta) when rapid3Manager is available and the workspace type is 'osw'; the primary action remains Rapid 2. The edit emit/signature was extended to include the chosen editor, and the review page openEditor now accepts an editor parameter and adds an editor query param for osw navigation. Updated E2E expectations and snapshot and added unit tests for the toolbar behavior.
…sk-3949-review-editor-selection
## DevBoard Task https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/3949/ ### Changes implemented - Added an editor dropdown beside **Edit Here** in the Review view. - Dropdown options: - **Rapid 2 (default)** - **Rapid 3 (beta)** - The selected editor is included in the URL: - Rapid 2 -> `editor=rapid` - Rapid 3 -> `editor=rapid3` - The current map location is preserved when opening either editor. - The button label remains **Edit Here**. ### Areas impacted for testing - Review page **Edit Here** dropdown visibility. - Rapid 2 navigation and `editor=rapid` URL. - Rapid 3 navigation and `editor=rapid3` URL. - Map coordinates remain in the URL after navigation. - Editor switching by changing `editor=rapid` to `editor=rapid3`, or vice versa, and reloading. - Non-OSW workspaces retain the existing single **Edit Here** button. - Existing Review toolbar actions still work. ### Screenshots <img width="1470" height="956" alt="Screenshot 2026-10-12 at 3 45 45 PM" src="https://github.com/user-attachments/assets/defcfd15-2f65-4d77-83f6-3ad28cbfc7b6" /> <img width="1470" height="956" alt="Screenshot 2026-10-12 at 3 45 32 PM" src="https://github.com/user-attachments/assets/649f013f-107f-4688-a3c9-09f77fe8b79c" /> <img width="1470" height="956" alt="Screenshot 2026-10-12 at 3 46 19 PM" src="https://github.com/user-attachments/assets/4367762e-7592-4fd6-a380-936fc429a9f5" /> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary - Added a Rapid editor dropdown beside **Edit Here** for OSW workspaces when Rapid 3 is available. The menu offers Rapid 2 and Rapid 3. - Passed the selected editor through the review overlay and toolbar to editor navigation. OSW navigation includes the selected `editor` query parameter. Other workspace types retain the existing edit button and navigation behavior. - Updated E2E expectations and a snapshot. Added toolbar unit tests for editor choices and emitted events. ## Tests The changes add E2E and unit test coverage. Test execution results were not provided. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Make workspace deletion resilient to OSM cleanup failures: introduce DeleteWorkspaceResult and change WorkspacesClient.deleteWorkspace to use Promise.allSettled so the API record deletion and the OSM cleanup are attempted in parallel. The method now throws if the primary workspace delete fails and returns { osmRequestSucceeded: boolean } to indicate whether the OSM request succeeded. Update the Delete settings panel to show an informational toast when the workspace is deleted but OSM cleanup failed. Add unit tests for the new delete behavior and an e2e test that asserts the info toast is shown when OSM cleanup returns an error.
## DevBoard Task https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/4401/ **Changes implemented** - Workspace deletion now handles OSM cleanup independently. - If workspace deletion succeeds but OSM cleanup fails, the user is redirected to the dashboard and shown an informational toast. - Workspace API deletion failures still show the existing error behavior. **Testing impact** - Successful workspace + OSM deletion. - Successful workspace deletion with failed OSM cleanup. - Failed primary workspace deletion. - Dashboard redirection and persistence of the informational toast. **Screenshot** <img width="1470" height="956" alt="Screenshot 2026-10-14 at 11 12 06 AM 1" src="https://github.com/user-attachments/assets/3fe7f3d8-431e-456c-a9f4-9884c9fb33cf" /> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary - `WorkspacesClient.deleteWorkspace` now deletes the workspace and requests OSM cleanup in parallel. It throws if workspace deletion fails and reports whether OSM cleanup succeeded. - When OSM cleanup fails after workspace deletion succeeds, the delete panel shows an informational toast and redirects to `/dashboard`. - Added unit and end-to-end tests for OSM cleanup failure and primary workspace deletion failure. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
shweta2101
approved these changes
Oct 15, 2026
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces several improvements and fixes across workspace management, review editing, and user interface feedback. The most significant changes include robust handling of workspace import failures, enhanced review editor selection, improved workspace deletion feedback, and better navigation responsiveness.
Workspace Import Status Handling:
Review Editing Improvements:
Workspace Deletion Feedback:
Navigation and UI Responsiveness:
Minor Copy and Test Updates:
These changes collectively improve the reliability and usability of workspace operations and the review process, while also enhancing user feedback and interface consistency.