Files
orca/src/main/github
30fa6b4398 fix: explain merged workspace cleanup and keep visible reviews fresh (#41200)
* fix(github): keep the selected workspace's PR on its one-minute refresh

Follow-up reads inherited the priority of whatever entry ran last. A workspace
selected while its cached PR was still fresh never got a foreground entry, so
its follow-ups competed with every visible card for the shared list budget and
were read about every five minutes with 25 visible open PRs. Previously
selected workspaces kept priority 80 forever. Follow-ups now take foreground
priority only while their workspace is selected.

* feat(source-control): say when a merged workspace is safe to delete

Source Control's committed list is a merge-base diff against the base ref. A
squash or rebase merge copies the commits onto the base with new IDs, so the
list looks the same after the merge as before it. A notice now states whether
the merged review contains everything: HEAD is the review's head (or the
provider confirmed it is contained) and nothing is uncommitted.

* fix(sidebar): keep PR status visible on sleeping workspaces

The sleeping moon replaced the review glyph, hiding whether a sleeping
workspace's PR was open, failing or merged. Review status now keeps the lane;
the dimmed row already shows sleep and the accessible label names both.

Co-authored-by: Tobias Diez <code@tobiasdiez.com>
Co-authored-by: alpenshtokk <wawesandways@gmail.com>

* fix(source-control): wait for a git status read before judging a merged workspace

Before the first status read the change count is zero and HEAD may be stale,
so the notice could call a dirty workspace safe to delete. Use the HEAD from
the latest successful status read and say nothing until one completes.

* chore(i18n): ship the merged-review plural copy in the runtime English catalog

* fix: satisfy design-system, cast and flaky-test gates for the merged notice

Use the callout-important token instead of raw purple, let Button own its
type size, build the fixture worktree with the shared factory, pin the test
clock and give the long simulated-time tests a reason for their timeout.

* fix(github): align selected-refresh regression with feature ownership

* refactor(github): give refresh queue aliases their concrete owner

* fix(source-control): preserve cleanup warnings and reserve refresh fairness

* fix(source-control): describe missing merged-head proof as unverified

---------

Co-authored-by: Tobias Diez <code@tobiasdiez.com>
Co-authored-by: alpenshtokk <wawesandways@gmail.com>
2026-11-12 19:49:04 -08:00
..