fix(project): stabilize project deletion

- Guard renderer project list/get against stale initial loads
- Retry project zip/cache removal to handle transient Windows locks
- Surface deletion failures in UI and add regression tests

Made-with: Cursor
This commit is contained in:
Ivan Fontosh
2026-04-22 15:12:25 +08:00
parent add699a320
commit ffce066842
8 changed files with 136 additions and 34 deletions
+30 -30
View File
@@ -1,39 +1,39 @@
# .cursor/rules/project.mdc
---
description: Project-wide workflow and conventions
alwaysApply: true
---
# Project
# DNDGamePlayer — правила работы над задачами (future-pipeline)
React + TypeScript frontend project.
Эти правила применяются **только** когда запрос пользователя требует **изменений в репозитории** (код/конфиги/тесты). Для чисто текстовых задач (описания, маркетинг, переписка) pipeline не запускаем.
# Commands
## future-pipeline (обязательный порядок)
### 1) Implementation
- Прочитать релевантный код (минимум 1 файл), найти реальную причину бага/задачи.
- Делать **minimal, review-friendly diff** и следовать текущим паттернам проекта.
- Не добавлять зависимости без явной причины.
### 2) Review
- Самопроверка изменений: edge-cases, состояние UI (loading/error/empty/disabled), a11y, регрессии.
- Если задача нетривиальная: запустить внутренний “строгий ревью” (под-агент reviewer).
### 3) Tests
- Обновить/добавить тест(ы), если поведение изменилось или был баг.
- Для мелких правок допускается “облегчённый режим” без под-агентов, но тесты всё равно должны проходить.
### 4) Verify (всегда, перед ответом)
Обязательно выполнить:
- `npm run lint`
- `npm run typecheck`
- `npm run test`
Если что-то упало — исправить и повторить до green.
## Команды проекта (справка)
- install: `npm install`
- dev: `npm run dev`
- build: `npm run build`
- lint: `npm run lint`
- typecheck: `npm run typecheck`
- test: `npm run test`
- test single: `npm run test -- <file>`
# Global rules
- Всегда изучай existing code и nearby components перед изменениями
- Делай minimal, review-friendly diff
- Не добавляй new dependencies без явной причины
- Следуй существующим patterns
# Done criteria
Перед завершением:
- lint passes
- typecheck passes
- tests pass
- нет regressions
# UI checklist
- loading state
- error state
- empty state
- disabled state
- accessibility
- test: `npm run test`