feat(dashboard): add per-row data cleanup in Team Dashboard#302
Open
Virginia-Hamra wants to merge 1 commit intorajbos:mainfrom
Open
feat(dashboard): add per-row data cleanup in Team Dashboard#302Virginia-Hamra wants to merge 1 commit intorajbos:mainfrom
Virginia-Hamra wants to merge 1 commit intorajbos:mainfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a per-row “delete user + dataset” cleanup action to the Team Dashboard leaderboard, wiring a new webview action through the extension to an Azure Tables deletion routine.
Changes:
- Dashboard webview: add an Action column with a trash button that posts a
deleteUserDatasetmessage. - Extension + backend: add a confirmation flow and a backend facade/service path to delete matching Azure Table entities and refresh the dashboard.
- UI messages/styles: add confirmation message helper and minimal CSS for the new column/button.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/webview/dashboard/main.ts | Adds Action column + 🗑️ button and posts deleteUserDataset message. |
| src/webview/dashboard/styles.css | Adds styles for action header/cell and delete button hover. |
| src/extension.ts | Wires deleteUserDataset webview message and implements confirmation + refresh flow. |
| src/backend/facade.ts | Adds deleteUserDataset() orchestration + cache clear. |
| src/backend/services/dataPlaneService.ts | Adds deleteEntitiesForUserDataset() to scan and delete matching entities. |
| src/backend/ui/messages.ts | Adds ConfirmationMessages.deleteUserDataset() helper. |
rajbos
previously approved these changes
Feb 25, 2026
Contributor
Author
|
I see there were some recent changes around dataPlaneService.ts while this PR was open. |
afd5ff0 to
94e9614
Compare
Owner
|
Still desired! 😄 |
94e9614 to
1ba3b7c
Compare
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.
Summary
Adds a per-row delete action to the Team Dashboard leaderboard, allowing removal of all stored Azure Table aggregate data for a specific user + dataset combination — without deleting the entire container or other users' data.
What changed
UI (Webview)
deleteUserDatasetmessage to the extension backend with the row'suserIdanddatasetId.action-header,.action-cell,.delete-row-btn) keep the styling consistent with the existing table designExtension host
handleDeleteUserDataset(userId, datasetId)method inCopilotTokenTracker:Backend
DataPlaneService.deleteEntitiesForUserDataset()— scans Azure Table entities in the date range, filters byds:{datasetId}in PartitionKey andu:{userId}in RowKey, then deletes each matching entity with timeout protectionBackendFacade.deleteUserDataset()— orchestrates credentials, invokes the data plane method, and clears the query cache to prevent stale dataConfirmationMessages.deleteUserDataset()— user-friendly confirmation message following the existingConfirmationMessagespatternData flow
Safety constraints
userId + datasetId— never touches other rows or the blob containerFiles changed
src/backend/services/dataPlaneService.tsdeleteEntitiesForUserDataset()src/backend/facade.tsdeleteUserDataset(), importedMAX_LOOKBACK_DAYSsrc/backend/ui/messages.tsConfirmationMessages.deleteUserDataset()src/extension.tshandleDeleteUserDataset(), wireddeleteUserDatasetmessage, importedConfirmationMessagessrc/webview/dashboard/main.tssrc/webview/dashboard/styles.css.action-header,.action-cell,.delete-row-btnstylesTesting
npm run compilepasses cleanly (TypeScript + ESLint)