You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: drop free-text note from ping (violated no-free-text convention)
Every message type in this app forbids free text (MoodType "No free
text", StatusType "not a notes field", etc.), so PingType's optional
prose `note` field was inconsistent. Removed the field, the --note
option, and the note-in-payload — the ping payload is now just
{user_ids}. That eliminated the only user-controlled value that could
make the envelope invalid, so the now-unreachable InvalidEnvelopeException
try/catch and renderEnvelopeError helper were removed too (the envelope
is valid by construction). Dropped the two note-max-length tests
accordingly.
Copy file name to clipboardExpand all lines: app/MessageTypes/PingType.php
+1-2Lines changed: 1 addition & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ public function version(): string
18
18
19
19
publicfunctionpurpose(): string
20
20
{
21
-
return'Nudge specific participants of a thread. The payload lists the pinged user IDs (a targeted mention) so clients may highlight the message for those users. An optional short note may accompany the ping.';
21
+
return'Nudge specific participants of a thread. The payload lists the pinged user IDs (a targeted mention) so clients may highlight the message for those users.';
Copy file name to clipboardExpand all lines: docs/plans/2026-07-14-thread-ping-command-design.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,8 @@
3
3
**Status:** Approved 2026-07-14
4
4
**Source:** ops/admin need to nudge specific participants of a thread from the CLI — either inside an existing thread or by spinning up a new thread whose opening message is the ping.
5
5
6
+
> **Amendment 2026-07-15:** The optional free-text `note` field (and the `--note` option) described below were **removed** before merge. Every message type in this app deliberately forbids free text (e.g. `MoodType` "No free text", `StatusType` "not a notes field"), so a prose `note` violated that convention. The ping payload is now just `{ user_ids: [...] }`. Because that removed the only user-controlled value that could produce an invalid envelope, the `InvalidEnvelopeException` try/catch in the command was also dropped (the envelope is now valid by construction).
7
+
6
8
## 1. Goal
7
9
8
10
Add an artisan command, `thread:ping`, that an operator/admin runs to "ping" a set of users. It works in two modes:
0 commit comments