fix(messages): company channel fans out to every active agent
"Company" channel fell through to `listTopLevelAgentIds`, so a broadcast on the most ambient-sounding channel in the product only reached agents with `reports_to IS NULL`. The label said company; the semantics said board-only. The rest of the org never knew a message existed. Add `listCompanyBroadcastAgentIds` — returns every non-terminated, non-paused, non-pending agent for the company — and wire it through the `company` case in `resolveMessageWakeTargets`. Board-only fan-outs are still reachable: the `incident` channel keeps the broader pingable set (paused-by-budget included) and direct DMs to top-level agents work as before. The prompt doc catches up to the runtime: company is explicitly framed as all-hands, with board-only guidance redirected to DMs or incidents. The message-dispatch unit test asserts the new fan-out.
This commit is contained in:
1 parent
0a40c55b3c
commit
d47e637a45
5 files changed
+28
-7
No files matched your search
@@ -125,7 +125,7 @@ function createScaffold(db: AppDatabase) {
|
||||
}
|
||||
|
||||
describe("message dispatch", () => {
|
||||
it("wakes top-level active agents for company messages and active agents for incident messages", async () => {
|
||||
it("wakes every active agent for company channel broadcasts (Slack-style all-hands)", async () => {
|
||||
const profileDir = await createTempDir("agentcompany-message-dispatch-");
|
||||
const db = new AppDatabase(profileDir);
|
||||
db.init();
|
||||
@@ -141,12 +141,12 @@ describe("message dispatch", () => {
|
||||
fromAgentId: HUMAN_SENDER_ID,
|
||||
fromHumanUser: true,
|
||||
channel: "company",
|
||||
body: "Board broadcast",
|
||||
body: "All-hands broadcast",
|
||||
});
|
||||
|
||||
expect(companyResult.ok).toBe(true);
|
||||
if (!companyResult.ok) throw new Error("Expected company message dispatch to succeed.");
|
||||
expect(companyResult.data.wakeTargets).toEqual([ceoId]);
|
||||
expect(new Set(companyResult.data.wakeTargets)).toEqual(new Set([ceoId, ctoId, cmoId]));
|
||||
|
||||
const incidentResult = dispatchAgentMessage({
|
||||
db,
|
||||
|
||||
Reference in new issue
Block a user