Conversation
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Add proper ARIA menu keyboard navigation so assistive technology can interact with the context menu as expected: - Focus the first menu item automatically when the menu opens - ArrowDown/ArrowUp cycle through items with wrapping - Home/End jump to first/last item - Tab is trapped (closes the menu instead of escaping) - Menu items use tabindex="-1" per the roving tabindex pattern Signed-off-by: Matt Toohey <contact@matttoohey.com>
When a project is deleted via the context menu in ProjectsList or the sidebar in ProjectHome, its unread flag was not being cleared. This left stale entries in projectStateStore, inflating the dock badge count. Call projectStateStore.markAsRead(id) immediately after a successful backend delete in both delete paths so the persisted unread set and badge are updated correctly. Signed-off-by: Matt Toohey <contact@matttoohey.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 302c1d9d42
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| hasUnpushedCommits, | ||
| onCheckError, | ||
| }: ProjectDeleteSafetyOptions): Promise<boolean> { | ||
| if (repoCount === 0) return true; |
There was a problem hiding this comment.
Guard immediate deletion against stale repo counts
canDeleteProjectWithoutConfirmation now returns true as soon as repoCount === 0, but both new context-menu delete paths pass repo counts that are temporarily derived before repo hydration finishes (ProjectsList computes repoCountsByProject from async listProjectRepos and falls back to project.githubRepo). For projects where githubRepo is null, this can be 0 even when branches already exist, so remove-from-list/sidebar can skip confirmation and unpushed/unmerged checks and delete immediately. This should not treat repoCount === 0 as sufficient safety when branch data exists or repo counts are not authoritative yet.
Useful? React with 👍 / 👎.
🤖 Summary
Tests