Skip to content

feat(ui): watch a device's screen from the device drawer - #928

Merged
V3RON merged 20 commits into
task/912from
task/910
Oct 23, 2026
Merged

V3RON merged 20 commits into
task/912from
task/910

Conversation

@V3RON

@V3RON V3RON commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Closes #910

Status

Implement: done (5/5 green) Review: fix-check passed Hardware: n/a Gate: waiting for the stack

  • pnpm test and pnpm test:console pass, with the five Tests lines. Checked: audit and fix runs (screen.spec.ts, leases.spec.ts, ui/src/model/screen.test.ts, src/stream/service.test.ts); the full suites run in CI on the stack.
  • rg -l "stream/leases" src ui e2e website docs/internal --glob '!docs/internal/adr/**' lists only the test that proves the old path answers 404. Checked: audit sweep.
  • The OpenAPI document has no /v1/stream/leases/{id}. Checked: src/http/openapi.test.ts.
  • console.mdx, watching-the-screen.mdx, ui/AGENTS.md, src/stream/AGENTS.md and DESIGN.md's drawer rule describe the device drawer's Screen tab. Checked: claims review, round 1.

Assumptions

none

Review

Spec review: 0 blocking, 0 fixed, 0 notes. Code review: 1 blocking, 1 fixed, 0 notes. Claims review: 0 blocking, 0 fixed, 0 notes.
Rounds: 2. Tokens: 11.8M.
Runs: 12. Cost USD: 8.9435. Agent seconds: 5778.

Assessment: complete

Written by an agent.

@V3RON
V3RON changed the base branch from task/909 to task/912 October 23, 2026 11:40
@V3RON
V3RON added this pull request to stack #925 October 23, 2026 11:40
@V3RON

V3RON commented Oct 23, 2026

Copy link
Copy Markdown
Contributor Author

Review ledger

Round 1: be9df5f
Round 2: 902da6e
Round fix-check: b394f29

Runs: 12. Cost USD: 8.9435. Agent seconds: 5778.
Tokens input 592, output 175033, cache read 31598946, cache write 1115267.
- build implementer: claude-sonnet-5-5 2286 s $3.8038
- audit implementer: claude-sonnet-5-5 911 s $0.7145
- review 1 reviewer: claude-sonnet-5-5 665 s $0.4243
- review 1 spec: claude-sonnet-5-5 54 s $0.4367
- review 1 code both: claude-opus-5-5 469 s $2.0231
- review 1 claims: claude-sonnet-5-5 73 s $0.3026
- fix 1 implementer: claude-sonnet-5-5 941 s $0.4108
- review 2 reviewer: claude-sonnet-5-5 170 s $0.1326
- review 2 code tests: claude-opus-5-5 110 s $0.4647
- review 2 claims: claude-sonnet-5-5 35 s $0.1
- fix 2 implementer: claude-sonnet-5-5 36 s $0.0726
- review fix-check reviewer: claude-sonnet-5-5 28 s $0.0578
Finding outcomes: {"fixed":1}. Classes: {"testing 3 deletable behaviour stays green":1}.
{"findings":[{"id":"R1","role":"code","class":"testing 3 deletable behaviour stays green","outcome":"fixed","fix":"902da6e40e36e5613ff68205ba5a4524ccaec00a","path":"ui/src/screens/fleet/screen-panel.tsx","round":"1"}]}

Written by an agent.

@V3RON
V3RON marked this pull request as ready for review October 23, 2026 12:30
@V3RON

V3RON commented Oct 23, 2026

Copy link
Copy Markdown
Contributor Author

Fix-check after stack sync: f2af24e — useLiveResource (removed by #905) → useRouteQuery; screen.spec.ts:169 waits for a painted frame before Escape. Code lens probed the capture-liveness question (16 direct aborts, 9 via gateway, 8 browser runs without the wait): every capture closed; no defect. 0 findings.

Written by an agent.

@V3RON
V3RON merged commit 9012ebe into main Oct 23, 2026
30 of 32 checks passed
@V3RON
V3RON deleted the task/910 branch October 23, 2026 19:37
V3RON added a commit that referenced this pull request Oct 23, 2026
…ry (#943)

Closes #911

### Status
Implement: done (4/4 green) Review: round 2 passed, 1 fixed Hardware:
n/a Gate: waiting for the stack

## Done when

- [x] `pnpm test`, `pnpm test:e2e e2e/gateway-event-relay.test.ts` and
`pnpm test:console` pass, with the four Tests lines:
`e2e/gateway-event-relay.test.ts` "a gateway pages its events by
worker…"; `src/http/app.test.ts` (`GET /v1/events?worker=` rows and the
`before`/`limit`/`worker` dispatch); `src/history/history.test.ts`
"reads a worker's events without the database or the index…";
`e2e/console/workers.spec.ts:784`. Checked: audit runs, 7/7 tests probed
red; review R1 fix added `ui/src/state/worker-events.test.tsx`.
- [x] `events.mdx` documents `worker`; `console.mdx` lists the worker
page's four tabs. Checked: claims review, rounds 1 and 2.
- [x] The OpenAPI document lists `worker` on `GET /v1/events`. Checked:
`src/http/openapi.test.ts`.

#906 Completion conditions:

- [x] An operator opens a `ready` unleased device, picks Screen and sees
its picture, on a gateway and a single worker: #923 (#909) slow lane
`slow-ios-stream` / `slow-android-stream` passed; #928 (#910)
`screen.spec.ts`.
- [x] The picture keeps running when an agent leases the device, and
stops before the device resets after the lease ends: #923 (#909)
`stream-gateway.e2e.test.ts` and slow lane.
- [x] An agent token gets 404 `UNKNOWN_DEVICE` from the stream route:
#923 (#909) Tests lines.
- [x] `GET /v1/stream/leases/{id}` answers 404 and the lease drawer has
no Screen tab: #928 (#910) `openapi.test.ts`, `leases.spec.ts`.
- [x] The ⓘ button shows the stream numbers, not under the picture: #928
(#910) `screen.spec.ts:387`.
- [x] The Events tab fills the page and scrolls back to the worker's
oldest kept event or the cap: this PR, `workers.spec.ts:784`,
`gateway-event-relay.test.ts`.
- [x] The layout checks pass in the browser lane: #924 (#912)
`layout.spec.ts`.

## Assumptions

- Assumption: protocol bumped 59 to 60.

## Review

Spec review: 0 blocking, 0 fixed, 0 notes. Code review: 1 blocking, 1
fixed, 0 notes. Claims review: 0 blocking, 0 fixed, 0 notes.
Rounds: 2. Tokens: 31.8M.
Runs: 10. Cost USD: 6.4136. Agent seconds: 5202.
Assessment: complete

*Written by an agent.*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Console: watch a device from its drawer's Screen tab; the lease stream route goes

1 participant