mirror of
https://github.com/stablyai/orca.git
synced 2026-11-15 10:27:33 +00:00
da8d128db4d2200bf4688a93a37f458bbb6900d9
5
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
da8d128db4 |
feat(github): PR auto-refresh cadence setting to cap background PR/checks polling (STA-8667) (#40541)
* feat(github): add a PR auto-refresh cadence setting that caps background PR/checks polling (STA-8667) Timed PR, review and checks refreshes were hardcoded (1/2 min visible, 15 min no-review), with no way to slow them on a busy headless `orca serve` or a shared GitHub Enterprise Server. Adds `prAutoRefresh: default | reduced | minimal | off` (5x / 10x / no timed refresh). Selecting a workspace, pushing, returning to the window and manual refresh still read at once in every mode. - shared policy scales every timed interval from one process-wide cadence, set from settings in main (desktop and serve) and in the renderer - main re-plans queued visible follow-ups when the cadence changes - a paired server's cadence also caps clients' timed `github.prForBranch` reads (reuses the last answer for the same head) and stretches the hosted review branch cache TTLs, so more clients add no GitHub calls - CI-line watches slow to the minimal cadence instead of stopping when off - Settings > Git & Source Control gains a host-aware PR Auto-Refresh control * feat(github): make the PR Auto-Refresh control say how often it checks and whose host it changes (STA-8667) UX round UX-I1: the hint under the segmented control states the actual cadence for the selection, derived from the shared policy, and when a paired server is the Settings host the control says it applies to that host and every connected client. Adds a presentational PRAutoRefreshControl with fixtures and a component test. * fix(github): make the PR auto-refresh cadence per execution host and close the C1 polling gaps (STA-8667) Review round C1 on #40541 found seven places where the new cadence did not hold. This settles the contract as one cadence per execution host and fixes each gap with a regression test: - The renderer schedules each workspace by the cadence of the host that runs its GitHub reads: its own setting for local work, the paired host's setting (read on contact, on settingsChanged and from the Settings control) for that host's workspaces. A local Off no longer stops a remote Default and the reverse. Policy, timers and the checks panel re-plan on any cadence change. - github.prForBranch and github.prChecks: a paired client's timer reads carry reason swr/visible and the host answers them from its last read at its cadence; window return, screen open, manual refresh and changed-state reads carry foreground/noCache and always reach the provider. Mobile sends the same intent for its own timer. - Off stops ordinary failure retries (main coordinator, renderer scheduler, checks detail policy); CI-line watches keep retrying at Minimal. - Earlier-head CI watches follow the same watch cadence as the current head. - The paced PR cache identity includes acceptMergedFallbackPR. * fix(github): close the C2 PR auto-refresh gaps: checks cache freshness and scope, retry and settings-sync races, focus return under Off, mobile foreground reads (STA-8667) - github.prChecks: every successful full read (timed, foreground, manual, noCache) is recorded as the host's last answer with start-order protection, so a later timed client never gets an older result back; the paced key now carries the execution scope, review generation and resolved gh read scope like the provider read itself. - Renderer visible scheduler: a retry armed after a failure is dropped when the owning host's cadence becomes Off and re-timed when it is stretched, instead of firing once under the old cadence. - Remote host cadence sync: a settingsChanged (or regained contact) during an in-flight settings.get marks it dirty and triggers one trailing read; a slow answer never reverts a value the Settings control wrote or re-adds an unpaired host. - Checks panel: a focus-only window return (document never hidden) reads once under Off with the usual cooldown and in-flight guards, unless the checks are settled. - Settings: the remote PR Auto-Refresh control shows the one shared, subscribed copy of the host's setting, so another client's change is reflected while mounted and the displayed option can be chosen back. - Mobile: a branch read right after the app comes to the foreground is sent as foreground and bypasses the host's 30 s reuse of its own desktop lookup. Each new test fails without its fix. * fix(github): close the C3 PR auto-refresh gaps: queued main error retries on cadence change, window return under Reduced/Minimal, older paired host fallback (STA-8667) * perf(github): share and pace timed pull request reads on the host Reuse exact completed results for automatic refreshes, back off unchanged settled pull requests, and route server revalidation through the existing host budget while preserving foreground reads and older clients. Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com> * fix(github): preserve shared producer settlement and selected demand Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com> * test(github): cover paired receipt retries and watch fairness * test(github): explain shared fake-clock fixture * test(github): typecheck host and renderer integration together * test(github): name exported fixture mock types * Revert "test(github): typecheck host and renderer integration together" This reverts commit |
||
|
|
c7ebf68173 | Revert "fix: explain merged workspace cleanup and keep visible reviews fresh (#41200)" (#42275) | ||
|
|
a36620afd0 |
perf(github): share automatic PR reads and reuse the host budget (#42033)
* perf(github): share and pace timed pull request reads on the host
Reuse exact completed results for automatic refreshes, back off unchanged
settled pull requests, and route server revalidation through the existing
host budget while preserving foreground reads and older clients.
Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
* fix(github): preserve shared producer settlement and selected demand
Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
* test(github): cover paired receipt retries and watch fairness
* test(github): explain shared fake-clock fixture
* test(github): typecheck host and renderer integration together
* test(github): name exported fixture mock types
* Revert "test(github): typecheck host and renderer integration together"
This reverts commit
|
||
|
|
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> |
||
|
|
fb8d6f950b | refactor(github): organize concrete feature owners (#41601) |