| M1-59/1 |
2026-10-15 |
reaction.* and pin.* carry no resource.version. |
04 section 9 item 3 and actions.yaml win over the brief. |
| M1-59/2 |
2026-10-15 |
TestAddReaction_IsNotStatus sets trigger_state by fixture. |
SetTriggerState comes in M2. |
| M1-59/3 |
2026-10-15 |
Symbol rule in adapters/unicode: valid UTF-8, NFC, then byte cap and one grapheme; the NFC form is stored. |
The key compares the stored form. |
| M1-59/4 |
2026-10-15 |
github.com/rivo/uniseg (MIT) is vendor group uniseg, used only by adapters/unicode. |
go-arch-lint allows per module. |
| M1-59/5 |
2026-10-15 |
pinMessage locks the thread before the message. |
Exact pin.max_per_thread. |
| M1-59/6 |
2026-10-15 |
removeReaction authorizes on the own reaction; read-only gives 403 channel_read_only. |
05 table 4.7, rule 1.8. |
| M1-59/7 |
2026-10-16 |
Port onto main: migration 00041 (was 00041, INT-W24/2). |
Next number on main. |
| M1-59/8 |
2026-10-20 |
Port onto main after M2-26: webhook_out.deliver decides a stored event whose resource kind is not a resource of its receive action on the thread, channel or space of its scope that the action takes (deliveryTarget); pin.added and pin.removed name a message and are received with thread.read, so they are decided on the thread. A scope without such an object is not delivered. |
Without it actionFor refused the pin events with an internal error, the delivery job of M2-26 retried the head delivery forever and no later event of the subscription left. |