Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Console: update a worker from its menu and see when a newer version is available

Aperta
#839 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
react, typescript

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

task:draft

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 at update: null); Cancel update while waiting; failure shown on the worker page; <latest> available notice (shown only when newer).

Done when

  • pnpm test ui passes with the line above.
  • docs/CONSOLE.md documents the Update action and the notice.

Out of scope

  • A fleet-wide update button.

Depends on

  • #838
  • #769

Written by an agent.

Lingua principale
TypeScript
Stelle
20
Fork
2
Merge medio
8h
PR unite (30g)
316

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di callstackincubator/simlock

Tutte le issue di callstackincubator/simlock

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.