Repository navigation
feat(acp): one install row shows and drives a managed runtime install, for Settings and chat - #29049
Conversation
d4542c3 to
109667c
Compare
f1376ad to
e1931b8
Compare
109667c to
bd6967d
Compare
e1931b8 to
90a345d
Compare
bd6967d to
3d51bab
Compare
90a345d to
7759b64
Compare
3d51bab to
2b28947
Compare
7759b64 to
eb7704d
Compare
2b28947 to
0666cf7
Compare
eb7704d to
f1f170e
Compare
0666cf7 to
c1c04dd
Compare
f1f170e to
f861d95
Compare
c1c04dd to
c2bf921
Compare
63d868e to
622b414
Compare
42622b6 to
18a7191
Compare
622b414 to
1ae472b
Compare
18a7191 to
8fcba69
Compare
1ae472b to
13d2fda
Compare
8fcba69 to
a84d243
Compare
13d2fda to
ad8cc48
Compare
a84d243 to
e91e7a0
Compare
807f56f to
d613efc
Compare
ebde44d to
59649a4
Compare
19d9c6b to
553ffc3
Compare
59649a4 to
409dcc2
Compare
3c4ad4c to
411572d
Compare
409dcc2 to
15f39e9
Compare
411572d to
25d07d6
Compare
…, for Settings and chat The row reads the shared host state: Install, byte progress with Cancel, extract and verify lines, Retry after a failure or cancel, and in Settings Reinstall or Update once installed. A failed status read says it could not check, never that nothing is installed. Strings in all six locales.
…TH copy is used, and when the host needs unzip
- A damaged copy reads "This copy of {agent} is damaged." with Install, which repairs it.
- A copy found on this host outside Orca's reads "Uses the copy of {agent} found on this host."
with no Install, since a launch would never run the download.
- A host without the program to unpack the archive says so, with no Install.
…clicked, offers Orca's copy beside one found on the host, and keeps its status line after a failed install The host no longer publishes a cancelling phase or a missing unzip, so the row drops both: the row whose Cancel is still out says Cancelling and holds its button until the host's cancel settles. A copy found on PATH or in an install folder still gets Install of Orca's copy in Settings (the chat keeps its composer). An older installed release reads Installed. with Update. A failed first install keeps Not installed. beside the failure and Retry. The status line is a polite live region.
…eck, and names the step after the download
15f39e9 to
b7b2d37
Compare
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to
|
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
- Configuration used: Repository UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
5e1dc974-ea1c-4ec8-ad61-c1a2d90001f3
📒 Files selected for processing: 9
src/renderer/src/components/managed-runtime/ManagedRuntimeInstallRow.tsxsrc/renderer/src/components/managed-runtime/managed-runtime-install-view.test.tssrc/renderer/src/components/managed-runtime/managed-runtime-install-view.tssrc/renderer/src/i18n/locales/en.jsonsrc/renderer/src/i18n/locales/es.jsonsrc/renderer/src/i18n/locales/fr.jsonsrc/renderer/src/i18n/locales/ja.jsonsrc/renderer/src/i18n/locales/ko.jsonsrc/renderer/src/i18n/locales/zh.json
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 3 remain after this review.
…el failed, not the install
ELI5
Antigravity's chat needs a separate program, its chat server, which Orca downloads for it. When chats fetched that program on their own, the first chat sat on "Working for Ns" for about 18 seconds with no progress and no way to cancel, and opening several chats started several downloads. This stack changes that: nothing downloads until the person clicks Install, with progress and Cancel in Settings and in the chat.
This PR adds the one row that shows the install state and acts on it: an Install button, a download progress bar with Cancel, Retry after a failure, and in Settings Reinstall or Update. Settings and a new chat both use this same row, reading the same host state (#29048), so clicking Install in a chat moves the bar in Settings too. Nothing places the row yet (the chat placement is #29051; the Settings placement comes with #28595, which adds Antigravity), so nothing changes for anyone when this merges alone.
What Changed
This revision (moving to the common pattern):
Two lines read less clearly than the common row. A failed status check now says "Could not check {agent} on this host. Retrying.", because the row retries on its own and the person shouldn't wonder whether to act, and the step after the download reads "Checking the downloaded runtime." instead of "Checking the download.".
"Cancelling…" flashed on every client for about 50 ms. The host no longer publishes a cancelling state (feat(acp): a managed runtime installs only when asked, with progress and cancel #29023). Only the row whose Cancel was clicked says "Cancelling…" and holds its buttons until the host's cancel answers.
A copy found on the host's PATH left Settings with no way to get Orca's copy. An old or incompatible copy there would run, chats would fail, and nothing offered the pinned one short of deleting the person's own install. Settings now offers Install Orca's copy beside "Uses the copy of {agent} found on this host."; once installed, Orca's copy runs first (feat(acp): chat agents can declare a managed runtime that a start runs but never installs #28460). A chat with such a copy keeps its message box, as before.
A failed first install dropped the status line, so the row lost what Install costs at the moment the person decides to retry. It now keeps the line ("Not installed.", or the download size once feat(acp): Antigravity in the Chat UI over its ACP server #28595 adds it) beside the failure and Retry.
An older installed release now reads "Installed." with Update {agent}, instead of "Version X installed. Y is available.".
The status line is announced to screen readers as it changes (a polite live region).
The "needs unzip" line is gone: the host unpacks the release itself now (feat(acp): a managed runtime installs only when asked, with progress and cancel #29023).
Before: no UI for installing a program Orca provides.
After:
ManagedRuntimeInstallRow {observation, agentLabel, surface: 'settings' | 'chat'}. What it says and offers is decided by one pure function from the host's answer, checked top to bottom:Why
One row and one decision function for both places is what keeps "the same button, the same state" true: Settings and chat can't drift apart in wording or in which action they offer. Reinstall, Update and "Install Orca's copy" stay in Settings because a chat that can start should show its message box, not setup controls.
Linked Issue
N/A (maintainer; part of the stack that adds Antigravity to chat).
Visual Proof
N/A: nothing places the row yet. Screenshots of its states come with #28595, which places it in Settings and chat and runs the real install in remote Electron QA.
Testing
I manually tested these changes locally
Automated tests added/updated, or explained why not below
One table test of what the row says and offers for each host state on both surfaces, including the damaged copy, a PATH copy (Install Orca's copy in Settings, nothing in a chat), "Cancelling…" only while this row's Cancel is out, a failed install keeping its status line, and that a failed status read is never "not installed".
Lint and typecheck: PR CI.
Review
Agent skill upstream boundary
QA, round 2 (M4Air, 10-16, build of
2efa3308959before this revision's last fixes; Grok drove the hidden window over the Chrome DevTools Protocol only)Notes
components/uiButtonandProgressand existing tokens only.Differences from the common pattern
Checklist
N/Awith reasonpnpm lint,pnpm typecheck,pnpm test, andpnpm buildpass (or CI will cover; local preferred)