Peter Steinberger
5197428add
feat(channels): batch 4 Telegram drops media placeholder bodies ( #111855 )
...
Final producer batch of the media-placeholder program: Telegram primary
bodies are caption-only with one aligned structured fact per native
media; the message-cache kind-parsing regex is deleted (native kind
stored directly); reply-chain, debounce/forward, group-history, and
ambient transcript lines render structured facts via the shared
formatter (removing the plugin-local duplicate of the caption-less
literal); audio-transcript and sticker-description replacements gate on
structured facts instead of exact placeholder strings. Also restores
unconditional failed-retryable recording when media resolution is
aborted for live updates, so shutdown cannot silently settle an
undispatched update.
2026-07-20 07:31:10 -07:00
Peter Steinberger
7a456e362d
feat(channels): add typed cross-surface approval actions ( #103679 )
...
* fix(gateway): approval registry hardening and protocol-surface follow-ups
Follow-up delta to the merged #103579 head, rebased onto current main:
- gateway-protocol wire types derive from owner-module schema consts
(types.ts tombstone) and ProtocolSchemas leaves the package index so the
public plugin-sdk d.ts graph tree-shakes the registry declaration
- approval access authority follows the operator.approvals scope tier with
reviewerDeviceIds as the opt-in restriction (cross-surface
first-answer-wins; requester identity gates only legacy adapters)
- plugin node.invoke approvals register directly so unrenderable
presentations fail closed before request routing
- exec-approval manager reconciliation with #103515 revocation hardening
(resolution source attribution, one-shot ask-fallback consumption)
- surface-report pins and plugin-sdk API baseline refreshed; Swift models
regenerated
* feat(channels): add typed operator approval actions
Squash-rebased #103679 segment onto the durable-approval-registry tip on
current main. Typed approval/command/select presentation actions replace
raw-string inference across slack/telegram/discord/matrix/imessage/whatsapp,
approval.resolve carries an explicit kind, and channel adapters map native
callback envelopes through the typed action registry.
Drift reconciliation: deprecated buildExecApprovalInteractiveReply assertions
dropped (#104650 removed the shims); worker_environments bootstrap-column
migration kept alongside the approval resolution_ref backfill; plugin-sdk API
baseline regenerated.
(cherry picked from commit 68765a5d39d2118c88a7a54d00387337912d4494)
(cherry picked from commit 8642ac12af142e4b751f4f30d4b114615e7e5f66)
(cherry picked from commit 036c4bc39499925fc03de16ec9302e346769350a)
(cherry picked from commit 19dc350d6bc34e29a5169c6bc80971b0ad12adde)
(cherry picked from commit fc978b0bad86aef421c79f6a211b25cc1b743c01)
(cherry picked from commit 10de4d1ed5071f9be6ad1ee5d1e32c0fa8c9d11c)
(cherry picked from commit 9a664ced1b1fa740172b258f355f1a82925ae41c)
(cherry picked from commit c5ff69abbf444139e9e007bfa45beb0f00ffea54)
(cherry picked from commit d466a80795 )
(cherry picked from commit f5b4fe40dd5c961322f8553cc80b2fdfb3f6503e)
(cherry picked from commit 7340b4749a4cc4c72f7a41cce1bc9cb550cae038)
(cherry picked from commit a151f41808f23ae60b10305ccd2bc959b9169a86)
* fix(approvals): preserve typed transport ownership
* test(imessage): narrow chunked approval text
* refactor(protocol): remove retired type tombstone
* fix(plugin-sdk): align surface budgets after rebase
* docs(changelog): note typed operator approvals
* docs(changelog): defer typed approval release note
2026-07-11 18:31:05 -07:00
Mark
db38127c22
[codex] Allow reply_payload_sending to add portable buttons ( #98922 )
...
* fix(telegram): retry plugin callback submit text
* fix(telegram): harden plugin callback submit text
* fix(telegram): preserve plugin callback submit semantics
* fix(telegram): release callback dedupe after submit failure
* fix(telegram): settle skipped plugin callback submissions
* style(telegram): format public API exports
* chore: leave changelog to release generation
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 20:17:41 +01:00
Dallin Romney
b29d472e41
refactor(qa): add canonical live channel adapters ( #99707 )
2026-07-06 09:24:34 -07:00
Peter Steinberger
efd1a9ace6
docs: document messaging extension sources
2026-06-04 22:03:15 -04:00
Jason O'Neal
b552919277
fix(telegram): preserve inbound text entities ( #83873 )
2026-05-25 13:27:19 +05:30
Eva
50ee68cdf4
feat(plugin-sdk): consolidate session workflow APIs
2026-05-11 03:24:08 +01:00
Peter Steinberger
1fc19ffe11
refactor: narrow messaging public api barrels
2026-04-27 20:34:36 +01:00
Peter Steinberger
3126809cb0
refactor: clean bundled channel bootstrap boundaries
2026-04-05 18:18:59 +01:00
Peter Steinberger
e4b5027c5e
refactor(plugins): move extension seams into extensions
2026-04-04 00:10:16 +01:00
Peter Steinberger
b57922552e
fix(ci): restore command auth sdk export
2026-04-03 21:02:59 +01:00
Peter Steinberger
1c66a050c2
refactor(plugins): move outbound dep aliases into extensions
2026-04-03 19:53:38 +01:00
Peter Steinberger
0c95e3f073
refactor(plugins): move command ui policy into extensions
2026-04-03 19:30:35 +01:00
Peter Steinberger
856592cf00
fix(outbound): restore generic delivery and security seams
2026-04-03 19:09:20 +01:00
Peter Steinberger
c2b28753e7
refactor: route more test seams through public plugin APIs
2026-03-27 13:46:17 +00:00
Tak Hoffman
d00dc5f46b
fix(ci): repair discord and telegram follow-ups
2026-03-26 16:33:05 -05:00
Peter Steinberger
0c0f1e34cb
refactor: split telegram polling and sdk surfaces
2026-03-26 21:13:16 +00:00
Peter Steinberger
58cf9b865f
refactor: route extension seams through public apis
2026-03-19 03:20:10 +00:00
Gustavo Madeira Santana
7ba8dd112f
Telegram: move group policy behind plugin boundary
2026-03-18 03:32:51 +00:00
Peter Steinberger
6d9bf6de93
refactor: narrow extension public seams
2026-03-17 09:58:33 -07:00
Peter Steinberger
4b125762f6
refactor: clean extension api boundaries
2026-03-17 09:38:21 -07:00