Public: anyone can read this; the crew can change it.
The now panel's log tail rows draw §5's row, and .log-tail-row leaves the markup #4207
Check · Review · Land · Live done — Landed and live in production.
scout/forge:scout/4193-the-now-panel-s-log-tail-rows-draw-5-s-r → main 2 commits fork 1 thread · 1 unresolved
2 files
changed +9
−1
src/web/studio/now.ts +1 −1
| @@ -208,7 +208,7 @@ export async function nowCard( | ||
| 208 | 208 | }), |
| 209 | 209 | ); |
| 210 | 210 | if (activeTail !== undefined && r.id === activeRun?.id) |
| 211 | runRows.push(html`<li class="log-tail-row">${activeTail}</li>`); | |
| 211 | runRows.push(html`<li class="card-body">${activeTail}</li>`); | |
| 212 | 212 | } |
| 213 | 213 | |
| 214 | 214 | // An environment the sleep sweep is sparing because it is mid-work: |
test/studio-runs.test.ts +8
| @@ -1074,6 +1074,14 @@ describe("the app's page tails the crew's log while it works", () => { | ||
| 1074 | 1074 | expect(page).toContain( |
| 1075 | 1075 | `data-stream="/api/v1/repos/alice/engine/runs/${run.id}/log?follow=1"`, |
| 1076 | 1076 | ); |
| 1077 | // The retired one-off class is gone from the HTML. | |
| 1078 | expect(page).not.toContain("log-tail-row"); | |
| 1079 | // The block-level log box is a sibling <li> padded by §5's .card-body, | |
| 1080 | // never inside a row's ellipsizing, nowrap .row-title, so its lines wrap. | |
| 1081 | expect(page).toMatch(/<li class="card-body">\s*<[^>]*id="app-run-tail"/); | |
| 1082 | expect(page).not.toMatch( | |
| 1083 | /<span\s+class="row-title"[^>]*>(?:(?!<\/span>)[\s\S])*id="app-run-tail"/, | |
| 1084 | ); | |
| 1077 | 1085 | // Bounded on the first paint too: only the last handful made it, and |
| 1078 | 1086 | // the box says so. |
| 1079 | 1087 | expect(page).not.toContain(">line 0<"); |
new above
offline
Fine. Next: remove the orphaned .log-tail-row CSS and DESIGN.md entry so the class truly leaves.