Commit Graph

6 Commits

Author SHA1 Message Date
shitratgit[bot] 61422de8de agent-comms-gateway: land priority-lane stash + stream seams (readSince pagination, typed gateway events) — 2 steps closed 2026-07-21 12:30:02 -07:00
Joel Hooks f9fe273cda feat: button-native telegram actions ride message/action.requested
Joel rejected emoji reactions as the operator action API (2026-07-19).
Labeled inline keyboard buttons on outbound DMs publish
message/action.requested with kind: callback and stable learner-flow.*
action ids; the callback_query owner answers, authorizes, resolves
flowId, verifies the declared action, then publishes. Legacy reaction
consumer stays until the live Seen canary passes.
2026-07-19 09:50:50 -07:00
shitratgit[bot] ba3976b2ff messaging: explicit --kind for notify send; reaction actions in contract v2
joelclaw notify send now accepts --kind memory|alert|digest|ask|receipt,
passed through the Redis envelope and honored by the gateway compat shim
(invalid kinds are rejected instead of guessing a lane). Without --kind,
low/normal-priority sends are inferred as digest, which the Telegram
digest-lane classifier may silently suppress — that suppressed a
Joel-requested message twice on 2026-07-18. Operator-lane kinds
(ask/alert/memory) always deliver. CLI next_actions now point at otel
delivery verification instead of the ignored --telegram-only flag;
skills/messaging documents the flag and the verify rule.

Also lands the in-flight contract-v2 reaction-actions work from a
concurrent session (MessageAction schema in message-contract, telegram
adapter action messages, notify context.actions passthrough, inbound
reaction callback normalization) — entangled in the same files and
committed together deliberately.

81 tests pass across message-contract, chat-sdk, chat-sdk-inbound, sdk;
tsc clean. Live on flagg since 2026-07-18 (gateway restarted, CLI
rebuilt, kind=ask delivery confirmed via notify.compat_v2.confirmed).
2026-07-18 18:18:20 -07:00
Joel Hooks f26064c36c reactions bridge: message/inbound.reaction → flowId correlation (redis index, journal fail-soft) → message/reaction.received; neat-memory grading consumer maps emoji→outcome and writes flagg state via the gateway-event execution pattern; idempotent per raw event id; 78 tests green (23 pre-existing memory-friction fails untouched)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 21:17:46 -07:00
Joel Hooks f2dfd49242 receipt schema: truthful deliveryState variants (part of invisible-delivery fix)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 16:30:17 -07:00
Joel Hooks 94a78ce23b outbound v1 on Chat SDK 4.34 behind contract v2: @joelclaw/message-contract (kinds, versioned routing, branded flowId, receipts, reaction/reply event schemas), single Chat instance w/ lifecycle ownership, send path w/ Telegram policy preflight + journal flowId index + Slack-native reply threading, flag-gated shadow diff, unwired notify-send compat; live canaries Telegram+Slack confirmed w/ journal readback; 17 tests. Steering owns daemon wiring + cutover; Telegram/Discord native reply-reference needs an SDK extension (documented stop)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 13:39:13 -07:00