fix: only send onboarding message on first wiring, not re-registration

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
gavrielc
2026-04-09 13:49:58 +03:00
parent 4a999ec973
commit 5a309a0e25

View File

@@ -169,8 +169,10 @@ export async function run(args: string[]): Promise<void> {
} }
// 3. Wire agent to messaging group // 3. Wire agent to messaging group
let newlyWired = false;
const existing = getMessagingGroupAgentByPair(messagingGroup.id, agentGroup.id); const existing = getMessagingGroupAgentByPair(messagingGroup.id, agentGroup.id);
if (!existing) { if (!existing) {
newlyWired = true;
const mgaId = generateId('mga'); const mgaId = generateId('mga');
const triggerRules = parsed.trigger const triggerRules = parsed.trigger
? JSON.stringify({ ? JSON.stringify({
@@ -191,7 +193,8 @@ export async function run(args: string[]): Promise<void> {
log.info('Wired agent to messaging group', { mgaId, agentGroup: agentGroup.id, messagingGroup: messagingGroup.id }); log.info('Wired agent to messaging group', { mgaId, agentGroup: agentGroup.id, messagingGroup: messagingGroup.id });
} }
// 4. Send onboarding message — triggers the /welcome skill in the container // 4. Send onboarding message — only on first wiring, not re-registration
if (newlyWired) {
const { session } = resolveSession(agentGroup.id, messagingGroup.id, null, parsed.sessionMode as 'shared' | 'per-thread' | 'agent-shared'); const { session } = resolveSession(agentGroup.id, messagingGroup.id, null, parsed.sessionMode as 'shared' | 'per-thread' | 'agent-shared');
writeSessionMessage(agentGroup.id, session.id, { writeSessionMessage(agentGroup.id, session.id, {
id: generateId('onboard'), id: generateId('onboard'),
@@ -204,6 +207,7 @@ export async function run(args: string[]): Promise<void> {
}), }),
}); });
log.info('Onboarding message written', { sessionId: session.id, channel: parsed.channel }); log.info('Onboarding message written', { sessionId: session.id, channel: parsed.channel });
}
// 5. Create group folders // 5. Create group folders
fs.mkdirSync(path.join(projectRoot, 'groups', parsed.folder, 'logs'), { recursive: true }); fs.mkdirSync(path.join(projectRoot, 'groups', parsed.folder, 'logs'), { recursive: true });