The client's first screen (src/web/studio/client_home.ts) says whether agents are working, but not what they finished, which is what a zero-technical client wants to know.
Done when:
[ ] Each row gains a muted line Finished <time()>: <title> for the app's most recently merged pull, read in one bounded query for all the rows (no query per app). With nothing merged, the line is absent. The title is escaped.
[ ] Words on the developer-only list in test/client-home.test.ts never appear. The line says "Finished", not "merged" or "pull".
[ ] A test with two apps, one with a merged pull, finds the line on that app only, and a Server-Timing phase names the read.
The client's first screen (src/web/studio/client_home.ts) says whether agents are working, but not what they finished, which is what a zero-technical client wants to know.
Done when:
Finished <time()>: <title>for the app's most recently merged pull, read in one bounded query for all the rows (no query per app). With nothing merged, the line is absent. The title is escaped.