Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion agents/myra/src/system-prompt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,4 @@ export const ASSISTANT_SYSTEM_PROMPT =
"\n" +
"When you hand a task to another participant, copy the person's " +
'address from that same "Participants:" block in `to` so they can ' +
"follow the conversation.";
"follow the conversation, and give every mail you send a short subject.";
4 changes: 2 additions & 2 deletions apps/web/src/chat/room-roster.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ describe("appendRoster / stripRoster", () => {
expect(withRoster).toBe(
"Please pass this to the scribe.\n\n" +
"Participants:\nSawyer <usr_sawyer@room.example>\nScribe <run_abc@room.example>\n\n" +
"Copy usr_sawyer@room.example in `to` on any mail you send another participant, so they can follow along.",
"Copy usr_sawyer@room.example in `to` on any mail you send another participant, so they can follow along, and give every mail a short subject.",
);
expect(stripRoster(withRoster)).toBe(body);
});
Expand All @@ -41,7 +41,7 @@ describe("appendRoster / stripRoster", () => {
{ name: "Scribe", address: "run_abc@room.example", kind: "agent" },
]);
expect(withRoster).toContain(
"Copy usr_sawyer@room.example, usr_alex@room.example in `to` on any mail you send another participant, so they can follow along.",
"Copy usr_sawyer@room.example, usr_alex@room.example in `to` on any mail you send another participant, so they can follow along, and give every mail a short subject.",
);
});
});
4 changes: 3 additions & 1 deletion apps/web/src/chat/room-roster.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ function ccInstruction(entries: readonly RosterEntry[]): string | undefined {
const people = entries.filter((entry) => entry.kind === "person");
if (people.length === 0) return undefined;
const addresses = people.map((entry) => entry.address).join(", ");
return `Copy ${addresses} in \`to\` on any mail you send another participant, so they can follow along.`;
// The subject clause is load-bearing: a mail with an empty Subject ends
// the receiving agent's run today.
return `Copy ${addresses} in \`to\` on any mail you send another participant, so they can follow along, and give every mail a short subject.`;
}

/** Appends a `Participants:` block listing every entry's name and address,
Expand Down
Loading