Console: update a worker from its menu and see when a newer version is available
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- react, typescript
調査の方向性
Start with the console fleet screen tests in ui/src/screens/fleet/*.test.tsx and the action model and runner in ui/src/model/actions.ts and ui/src/state/actions.ts; the issue says these depend on #769 and #838. Check the worker view fields and routes from #838 before tracing the row and worker page entry points. Done means the specified update, progress, cancellation, failure, and available notice cases pass in the console tests, and docs/CONSOLE.md documents the action.
索引モデルが issue の本文から書いたものです。
説明
Part of #825.
Parked (2026-10-21). The console layout gets decided with a clickable prototype before this task is finished: where "available" shows on the fleet table, how update progress and a failure look on a row whose health word is the worst finding, and the dialog's Force control and wording. Known gaps the prototype must close: the action runner sends no body and ignores the answer, and ConfirmSpec has no checkbox (PR #803). The fleet table has no version column (#766). The tests go in the console lane (e2e/console/). There is no agent session in the console. It stays task:draft until then.
Scope
From the console, an operator updates a worker through its ⋯ menu (added by #769), follows the progress on the worker's row, sees a failure, and sees an "available" notice where a newer version exists. Shared values: worker.update, the worker view fields, HTTP routes, error codes, events.
In short
On the fleet table and a worker's page, a worker with a newer version shows 0.4.0 available beside its version. Its ⋯ menu has Update…, which opens a confirm dialog: Update mac-studio-2 from 0.3.0 to 0.4.0? It takes no new leases and waits for its 2 leases to end. The dialog has a Force checkbox ("don't wait for leases") and Update / Cancel buttons. While it runs, the row's state reads updating: waiting for 2 leases, then installing and restarting, with a Cancel update item in the menu while waiting. A failure shows as a red Update failed (<stage>): <message> line on the worker page.
flowchart LR
M[⋯ menu: Update…] --> D[confirm dialog] -->|Update| P[POST /v1/workers/id/update]
P --> S[live worker list: update stage on the row]
S -->|failure| F[failure line on the worker page]
If this task goes wrong, a user would notice an Update item that does nothing, progress that never clears, or a failure the console doesn't show.
Technical spec
Facts
| # | Fact | Source |
|---|---|---|
| F1 | The console reads the worker list once, through useLiveResource<WorkerList>("/v1/workers"), and follows the event stream |
ui/src/state/workers.ts:60; ADR 0013 |
| F2 | The worker's version is shown in the inspector header only | ui/src/screens/workers/index.tsx:147-151; ui/src/model/worker-page.ts:526 |
| F3 | #769 (PR #803) adds the action model, the ⋯ menu, the confirm dialog and the action runner (ui/src/model/actions.ts, ui/src/ds/menu.tsx, ui/src/state/actions.ts); #766 (PR #787) moves the worker screens to ui/src/screens/fleet/ |
PR #803 and #787 file lists |
| F4 | Drained shows as an amber status word; lost or failed is red | ui/src/screens/workers/index.tsx:347; docs/internal/DESIGN.md:94-100 |
| F5 | worker.update routes, worker view fields and error codes are #838's |
#825 Shared values |
Modules touched
Searches: rg "drained" ui/src (display only today), rg "version" ui/src/model, and, on PR #803's branch, rg "drain" ui/src/model/actions.ts.
ui/src/model/actions.ts (Update and Cancel update actions), ui/src/state/actions.ts, ui/src/screens/fleet/ (row state word, available notice, worker page failure line), ui/src/model/worker-page.ts, docs/CONSOLE.md.
Contract and event changes
None: reads #838's fields, calls #838's routes.
Other code on the same state
The row's health word (F4): updating takes the amber tone and sits after drained in priority, so a drained, updating worker reads drained · updating. Searches: rg "workerHealth" ui/src (model 2, screens 3).
Failure modes
| Call | Outcome | What happens | Limit, counted from |
|---|---|---|---|
POST /v1/workers/{id}/update |
202 / 200 | toast Updating <label> to <to> |
#769's action timeout |
| same | 4xx / 5xx | toast with the error message, as #769's actions | — |
DELETE …/update |
409 UPDATE_NOT_CANCELLABLE |
toast with its message | — |
Rules in play
- ADR 0037 (proposed, PR #762): the console acts through the HTTP routes. It calls #838's routes.
- DESIGN.md: amber for "not taking work", red for failed.
Tests
Seam: the fleet screen tests after #766 (ui/src/screens/fleet/*.test.tsx), modelled on #769's action tests.
- Operator uses the console worker menu: Update in the ⋯ menu for admin (absent for an agent session); confirm dialog with version and lease count, Force; progress on the row (
waiting for 2 leases,installing,restarting, cleared atupdate: null); Cancel update while waiting; failure shown on the worker page;<latest> availablenotice (shown only when newer).
Done when
pnpm test uipasses with the line above.docs/CONSOLE.mddocuments the Update action and the notice.
Out of scope
- A fleet-wide update button.
Depends on
- #838
- #769
Written by an agent.
- 主要言語
- TypeScript
- スター
- 20
- フォーク
- 2
- 平均マージ
- 8時間
- マージ済み PR(30日)
- 316
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
callstackincubator/simlock のほかの issue
-
bug:new
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
callstackincubator/simlock#817 ·
メンテナーはふだん 1 日以内に返信
-
bug:triage
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
callstackincubator/simlock#778 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
callstackincubator/simlock#639 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
task:ready
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
callstackincubator/simlock#838 ·
メンテナーはふだん 1 日以内に返信
-
task:ready
難易度 4/5 3〜5日 初心者へのやさしさ 57/100
callstackincubator/simlock#837 ·
メンテナーはふだん 1 日以内に返信
callstackincubator/simlock の issue をすべて見る
似ている issue
-
Add: Pbs Kidsオープンcheck:passed streams:add
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
メンテナーはふだん 2 日以内に返信
-
maintanance
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
inmanta/web-console#7583 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
deltachat/deltachat-desktop#6881 · コメント 1 件 ·
メンテナーはふだん 3 日以内に返信
-
[Bug Report][3.13.7] VDataTable with select-strategy="single" shows select-all checkbox in mobile mode対応中かも @lazerg が今日担当しました。 オープンS: triage
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
phivk/rubiks-lab#33 ·
メンテナーはふだん 1 日以内に返信