humanish 0.50.0 → 0.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2423,6 +2423,10 @@ export async function runCuaActorLab(options) {
2423
2423
  // write so a stale flush can never resurrect the in-progress bundle. A flush failure is
2424
2424
  // swallowed: mid-run observability must never break the run itself.
2425
2425
  const streamIdByLane = new Map(laneSpecs.map((spec) => [spec.laneId, spec.streamId]));
2426
+ // The persona each lane is running, so the live flush can say who is in it.
2427
+ const personaByStream = new Map(laneSpecs
2428
+ .map((spec) => [spec.streamId, spec.persona?.id])
2429
+ .filter((entry) => typeof entry[1] === "string"));
2426
2430
  const liveItemsByStream = new Map();
2427
2431
  let flushWriting;
2428
2432
  let flushDirty = false;
@@ -2441,7 +2445,20 @@ export async function runCuaActorLab(options) {
2441
2445
  const liveItems = liveItemsByStream.get(stream.id);
2442
2446
  return liveItems === undefined
2443
2447
  ? stream
2444
- : { ...stream, liveActor: { schema: "humanish.live-actor.v1", updatedAt, items: [...liveItems] } };
2448
+ : {
2449
+ ...stream,
2450
+ liveActor: {
2451
+ schema: "humanish.live-actor.v1",
2452
+ updatedAt,
2453
+ // WHO is in this lane, carried while the run is live. Without it a surface
2454
+ // watching a live run can only name the lane, and "CUA browser — observer-live-
2455
+ // check" is the harness talking about itself where the participant should be.
2456
+ ...(personaByStream.get(stream.id) === undefined
2457
+ ? {}
2458
+ : { persona: { id: personaByStream.get(stream.id) } }),
2459
+ items: [...liveItems]
2460
+ }
2461
+ };
2445
2462
  })
2446
2463
  };
2447
2464
  try {