diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 8d7bb299c..01634ecdc 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -534,6 +534,7 @@ export namespace Session { msgs = preserve for (const msg of remove) { await Storage.remove(`session/message/${input.sessionID}/${msg.info.id}`) + await Bus.publish(MessageV2.Event.Removed, { sessionID: input.sessionID, messageID: msg.info.id }) } const last = preserve.at(-1) if (session.revert.partID && last) { @@ -542,6 +543,10 @@ export namespace Session { last.parts = preserveParts for (const part of removeParts) { await Storage.remove(`session/part/${input.sessionID}/${last.info.id}/${part.id}`) + await Bus.publish(MessageV2.Event.PartRemoved, { + messageID: last.info.id, + partID: part.id, + }) } } } diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index 31afdc73e..6738a8299 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -271,6 +271,13 @@ export namespace MessageV2 { part: Part, }), ), + PartRemoved: Bus.event( + "message.part.removed", + z.object({ + messageID: z.string(), + partID: z.string(), + }), + ), } export function fromV1(v1: Message.Info) {