1270 unmodified lines
Expand all
expect(child.repliedToParentSinceTask).toBe(false);
});
it("queues a parent message while the previous parent turn is finalizing", async () => {
const child = createSession({ depth: 1 });
const finalization = deferred<void>();
const internals = child as unknown as InspectableRlmSession;
internals._rlmParentTurnFinalizations.set("previous-turn", finalization.promise);
const preflight: Array<{ accepted: boolean; queued: boolean | undefined }> = [];
const message = createAgentSessionMessage({
id: "agentmsg-parent-during-finalization",
source: "agent_message",
message: "stop and report",
fromRelationship: "parent",
target: { activeSessionId: "child-active", sessionId: child.sessionId },
});
await child.acceptAgentMessagePrompt(message.content as string, {
customMessage: message,
queueIfBusy: true,
streamingBehavior: "steer",
preflightResult: (accepted, queued) => preflight.push({ accepted, queued }),
});
expect(preflight).toEqual([{ accepted: true, queued: true }]);
expect(child.queuedActionCount).toBe(1);
child.clearQueue();
internals._rlmParentTurnFinalizations.delete("previous-turn");
finalization.resolve();
});
it("resets replied state when a parent follow-up is queued", async () => {
const child = createSession({ depth: 1 });
(child as unknown as { _repliedToParentSinceTask: boolean })._repliedToParentSinceTask = true;
const message = createAgentSessionMessage({
4060 unmodified lines
Expand all