"History splicing" allows recursive forking as well as arbitrary intercalation of (partial) conversation histories, making chapter 2 Loom-complete in Discord.
This is implemented through .history messages, which need to be formatted like this example:
.history @em1 @em2
---
first: https://discord.com/channels/{server_id}/{channel_id}/{message_id}
last: https://discord.com/channels/{server_id}/{channel_id}/{message_id}
passthrough: false
-
the order of the yaml properties doesn't matter
-
the
---is required -
history splicing will affect all the ems tagged in the first line. If no ems are tagged, all are affected.
-
firstandlastmust link to Discord messages in the same server, but can be from any channel or thread. -
firstis optional, and must be in the same channel/thread aslast(for now). Iffirstis used, message history betweenfirstandlast(inclusive) will be inserted at the position of the.historymessage. -
If only
lastis used, all the history up tolastwill be inserted there, according to the same logic (including splicing histories via.historymessages) as message history in general. -
passthroughis an optional parameter that defaults to false. If set to true, any message history in the channel where the.historymessage was sent before the.historymessage is included before the messages spliced in due to the.historymessage. If false, all history above the.historymessage in that channel is ignored.
so the most straightforward way to start a new loom branch is to make a new thread and send a message like:
.history
---
last: https://discord.com/channels/{server_id}/{channel_id}/{message_id}
You can also send
.history
---
to obscure previous conversation history (because passthrough defaults to false)