borogove

created pr with borogove/multi-dm.1 on 2026-11-09T19:47:55Z · by 9e834e0d
added borogove/multi-dm.2 on 2026-11-10T19:08:22Z · by 9e834e0d
1: 0ef2769 = 1: 41e89c8 Use to for chatId if not in recipients
2: 90e5a6a = 2: c323e3d clone should clone attributes
3: d86ea28 = 3: a1199ae Actually send to all recipients
4: 1c1061f ! 4: 94bf87d Never add self as counterpart
5: 9c8aa41 = 5: 32b9fad Extended addressing for sent messages specifies all recipients
6: 2da9124 = 6: ce4d9e1 Always add all recipients to outbound message
7: e7db006 = 7: 350343e Use a shared helper for adding extended addressing
8: 4530ece = 8: 40f662a Add startMultiChat to create multiDMs
9: 6810ba9 = 9: 8043c53 Never include ourselves in incoming chat ids
-: ------- > 10: 68e7246 Cannot MAM or bookmark a multiDM
cmds
checkout latest patchset:
ssh pr.pico.sh pull borogove:multi-dm | git am -3
checkout specific patchset revision:
ssh pr.pico.sh pull borogove:multi-dm [rev] | git am -3
add changes to patch request:
git format-patch main --stdout | ssh pr.pico.sh borogove:multi-dm
add comment to patch request:
ssh pr.pico.sh comment borogove:multi-dm "lgtm!"
+2 -1 borogove/Stanza.hx #
......@@ -227,7 +227,8 @@ class Stanza {
227227 }
228228
229229 public function clone():Stanza {
230- var clone = new Stanza(this.name, this.attr);
230+ var clone = new Stanza(this.name);
231+ for (key => value in this.attr) clone.attr.set(key, value);
231232 for (child in children) {
232233 clone.addDirectChild(switch(child) {
233234 case Element(c): Element(c.clone());
+8 -0 test/TestStanza.hx #
......@@ -68,10 +68,18 @@ class TestStanza extends utest.Test {
6868 .tag("child")
6969 .text("original")
7070 .up();
71+ s.attr.set("original", "yes");
7172
7273 final cloned = s.clone();
7374 Assert.equals(s.serialize(), cloned.serialize());
7475
76+ s.attr.set("original", "modified");
77+ cloned.attr.set("cloned", "yes");
78+ Assert.equals("modified", s.attr.get("original"));
79+ Assert.equals("yes", cloned.attr.get("original"));
80+ Assert.isNull(s.attr.get("cloned"));
81+ Assert.equals("yes", cloned.attr.get("cloned"));
82+
7583 // Modify original
7684 s.allTags("child")[0].children = [];
7785 s.allTags("child")[0].text("modified");
Back to top