feat(discord): eyes reaction as a read receipt on every admitted message (#1509)

QUEUE row 15, MVP iteration 1 after the Sage pilot. rest.react is best
effort (2xx true, anything else false, never throws); the connector reacts
at admission before the engine runs and records the outcome in the turn
record as receipt. Drops and refusals get no reaction. Suite 28/28, 90
node tests.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
2026-09-13 14:20:30 -05:00
co-authored by Claude Fable 5.1
parent 788515dc69
commit 93d6b62457
10 changed files with 115 additions and 6 deletions
@@ -411,3 +411,13 @@ Recorded here because they refine a ruling or fill a gap the rulings left.
prints. The check is now the canonical unsigned decimal form; boundary
values sit in the syntax table and three more live-child controls.
## 11. MVP iteration, after the pilot
- Read receipt (Jason, 2026-09-13, after Gate H). Every admitted message
gets an eyes reaction from the bot as soon as the turn is admitted, before
the engine runs, so the author knows it was received. Drops and refusals
(unlisted author, ceiling, oversize) get no reaction; silence stays
silence. The reaction is best effort like typing: a refusal from Discord
is logged and recorded in the turn record as `receipt.ok: false` and never
fails the turn. Needs the Add Reactions permission on the bot role.
+2
View File
@@ -40,6 +40,7 @@ Gaps found while working go to `docs/plans/DEFERRED.md`, not here.
| 12 | Reviews as issue comments posted by `queue move ID in-review`, not files in `docs/plans/reviews/` | darkwing | #1508 | required; after row 9 | one review round with no new file under reviews/ | `2026-09-13_queue-as-data.md`, Piece D |
| 13 | Ledger "queue" section: issue/row/seat drift printed with the weekly number | darkwing; filbert reviews | #1508 | required; after row 9 | first run Monday 2026-09-21, zero violations or every one moved same day | `2026-09-13_queue-as-data.md`, Piece E |
| 14 | Discord connector pilot: Sage answers in Shared Signals (chat only, no tools, no repo writes) | coordinator; Filbert or orch-01 seat reviews | #1509 | done: rev-code-02 APPROVE 26170 (round 9), committed 786e379c; pilot steps 1-8 done with private receipts, Gate H passed (Jason, 2026-09-13: replies read as Sage); connector left running for MVP iteration | H: offline suite green, eight-step live pilot with private receipts, then Jason says the reply reads as Sage | `2026-09-13_discord-connector-pilot.md` |
| 15 | Discord connector: eyes reaction on every admitted message as a read receipt (MVP iteration 1) | coordinator | #1509 | done: `rest.react` best effort, reaction placed at admission before the engine runs, outcome in the turn record, no reaction on drops or refusals; `scripts/test-discord.sh` 28/28 (90 node tests) | Jason sees the reaction on a live message | `2026-09-13_discord-connector-pilot.md` section 11 |
Start message for row 6, sent from the board to darkwing:
"Read docs/plans/QUEUE.md, then the plan page section "Piece 5: darkwing on
@@ -75,3 +76,4 @@ Gate F or when blocked."
- 2026-09-13 — coordinator: row 14 stays in review; rev-code-02 round eight finding (26168, noncanonical start digits must refuse) fixed, round nine requested. No other row changed.
- 2026-09-13 — coordinator: row 14 moved to in pilot; approved 26170, committed 786e379c (no push), check passed, connector running. No other row changed.
- 2026-09-13 — coordinator: row 14 done; Gate H passed, Jason ruled the replies read as Sage. Connector stays up; MVP improvements come as new rows. No other row changed.
- 2026-09-13 — coordinator: row 15 added and done (Discord read receipt, Jason's request after the pilot); committed after suites green. No other row changed.