Skip to content

Data-clearing additions to delete selected Duck.ai chats#8582

Merged
GerardPaligot merged 1 commit into
developfrom
feature/gerard/data-clearing-selected-url
May 15, 2026
Merged

Data-clearing additions to delete selected Duck.ai chats#8582
GerardPaligot merged 1 commit into
developfrom
feature/gerard/data-clearing-selected-url

Conversation

@GerardPaligot
Copy link
Copy Markdown
Contributor

@GerardPaligot GerardPaligot commented May 15, 2026

Task/Issue URL: https://app.asana.com/1/137249556945/task/1214837464091621

Description

Merges ClearableData.DuckChats.Single(chatUrl: String) into a new Selected(chatUrls: Set<String>) variant in :data-clearing-api.

Steps to test this PR

Existing in-chat fire flow is unchanged

  • Open a Duck.ai chat tab, send a message so it has a chatID= URL.
  • Tap the fire button → confirm. The tab should be replaced with a fresh new-chat URL, and the deleted chat should no longer appear in chat history.

Contextual chat clear is unchanged

  • Open an input-screen contextual chat tied to a tab, then trigger a single-tab fire on that tab. Both the tab's Duck.ai URL chat and the contextual chat should be deleted.

UI changes

n/a


Note

Medium Risk
Updates the data-clearing API and DuckChat clearing plugin to accept sets of chat URLs, which could affect chat deletion/sync triggering if callers pass unexpected URLs or empty sets.

Overview
Duck.ai chat clearing now supports subsets of chats instead of only a single URL. ClearableData.DuckChats.Single is replaced by ClearableData.DuckChats.Selected(Set<String>), and call sites (e.g., single-tab fire/contextual chat clear) now pass setOf(tabUrl).

The DuckChat data-clearing plugin is updated to delete each selected chat, record per-chat deletions for sync, and batch sync triggering to a single DATA_CHANGE event for the whole selection; tests are updated/expanded to cover multi-delete and empty-set no-op behavior.

Reviewed by Cursor Bugbot for commit 42023af. Bugbot is set up for automated code reviews on this repo. Configure here.

Single(url) is just Selected(setOf(url)) on the data side; collapse the two variants
so callers describe the shape in one place. The plugin now batches the sync trigger
to one event per user-visible delete action, and empty set is an explicit no-op
early return.
Copy link
Copy Markdown
Contributor Author

GerardPaligot commented May 15, 2026

Copy link
Copy Markdown
Collaborator

@YoussefKeyrouz YoussefKeyrouz left a comment

Choose a reason for hiding this comment

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

LGTM! matches the API proposal

@YoussefKeyrouz YoussefKeyrouz self-assigned this May 15, 2026
@GerardPaligot GerardPaligot merged commit 24c9995 into develop May 15, 2026
20 checks passed
@GerardPaligot GerardPaligot deleted the feature/gerard/data-clearing-selected-url branch May 15, 2026 17:49
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.

2 participants