Cross-org reads and copies act as operator
Follow-up from Task 9221 (operators editing another org's project/task in place). A few reads and copy still answer for the operator's own org:
1. Project › Live Cast tab: `GET /api/projects/:id/live-cast` (`lib/liveCast.ts::getLiveCast`, `pages/ProjectEditPage.tsx` liveCastQuery) is sent as the viewer. Read it as the project's org.
2. Task page form: `TaskSpecFields` names the picked agent from the viewer's `agents-list`, so another org's agent shows as "Custom agent". Read it as the task's org.
3. Task Live Cast control: it refreshes on `live_cast` events from the viewer's own event stream, so another org's changes may not arrive until a refetch. Refetch on focus, or subscribe as the row's org.
4. New-repository owner note: "Connect one in Profile > Git" points at the operator's own profile on another org's project. Word it for that case (e.g. act as the org).
Out of scope: API authz; tab-wide act-as (ADR-0161).
Done means:
- On another org's project or task, each request above carries `X-Jaah-Act-As: <row org>` (vitest per item), and item 4's wording is covered by a test.
Outcome
On another org's project/task, Live Cast reads, the agent name and the task Live Cast refetch (on focus) now go as that org; the no-owner note says to act as it. Quick gate green, vitest per item, visual check OK. PR #6731 merged 19b0de432, deploy green. Deferred: project Live Cast tab focus refetch. Memory: none applied.
Artifacts
Activity
- Created
- Run
- Runner started
- Runner ended (done)