Skip to content

feat(editor): delete a project from the Open project dialog - #367

Open
EtienneLescot wants to merge 1 commit into
mainfrom
feat/delete-project
Open

feat(editor): delete a project from the Open project dialog#367
EtienneLescot wants to merge 1 commit into
mainfrom
feat/delete-project

Conversation

@EtienneLescot

@EtienneLescot EtienneLescot commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

There was no way to delete a project from the app. Everything under the UI already existed and was wired end to end — DocumentService.deleteProject, AiEditionService.deleteProject, the document.delete bridge route, nativeBridgeClient.aiEdition.delete — and nothing in src/ called it, so the only way to get rid of a project was to find its .openscreen file under userData/projects/ and delete it by hand. Since every recording mints a project, they pile up fast.

  • Each row of the Open project dialog gets a trash button. It arms an inline confirm on that row rather than deleting on the first click — deleting a project can't be undone — and the confirm says what it does not delete: Delete this project? Your recordings are kept. (media is shared; one recording can back several projects).
  • The delete button sits next to the row's button, not inside it, so opening a project still works (a nested button would swallow that click — covered by a test).
  • Deleting the project that is currently open also clears the editor. Otherwise it keeps a document whose file is gone and recreates it on the next save.
  • Two new i18n keys in the 13 locales; the buttons reuse the existing common.actions.delete / cancel, and the styling reuses styles.iconBtn / styles.dangerBtn.

Related issue

Fixes #365

Type of change

  • Feature

Release impact

  • Minor

Desktop impact

  • Not platform-specific

Screenshots / video

No screenshot — the browser pane could not composite frames in this environment. The dialog was driven live instead (dev server + browser shim), asserting the DOM at each step:

click trash →  "Product demo take 2 / Delete this project? Your recordings are kept. / Cancel / Delete"
click Delete → row gone from the list, no console errors

Testing

  • npx vitest --run src/components/ai-edition — 20 files, 113 tests, green, including the four new cases in OpenProjectModal.test.tsx (confirm required, deletes the armed row, cancel restores it, the row still opens).
  • Driven live against the dev server as above: arm → confirm → the project disappears from the list.
  • npm run i18n:check passes; npx tsc --noEmit, npx tsc -p tsconfig.test.json --noEmit and Biome on the touched files are clean.

The whole delete path existed — DocumentService.deleteProject, the service, the
bridge route, the client action — with nothing in the UI calling it, so the only
way to get rid of a project was to find its .openscreen file in userData and
delete it by hand. Every recording mints a project, so they pile up.

Each row of the dialog gets a trash button that arms an inline confirm on that
row (deleting is not undoable), and the confirm says what it does not delete:
the media stays, a recording can back several projects. Deleting the project
that is open also clears the editor, which would otherwise hold a document whose
file is gone and recreate it on the next save.
@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@EtienneLescot, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 22 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ce10b41c-a6ea-4071-8726-e84443f46694

📥 Commits

Reviewing files that changed from the base of the PR and between 4d3f0f6 and 6f8f820.

📒 Files selected for processing (16)
  • src/components/ai-edition/Modals.tsx
  • src/components/ai-edition/NewEditorShell.tsx
  • src/components/ai-edition/OpenProjectModal.test.tsx
  • src/i18n/locales/ar/editor.json
  • src/i18n/locales/en/editor.json
  • src/i18n/locales/es/editor.json
  • src/i18n/locales/fr/editor.json
  • src/i18n/locales/it/editor.json
  • src/i18n/locales/ja-JP/editor.json
  • src/i18n/locales/ko-KR/editor.json
  • src/i18n/locales/pt-BR/editor.json
  • src/i18n/locales/ru/editor.json
  • src/i18n/locales/tr/editor.json
  • src/i18n/locales/vi/editor.json
  • src/i18n/locales/zh-CN/editor.json
  • src/i18n/locales/zh-TW/editor.json

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.

[Feature]: no way to delete a project from the app

1 participant