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
kevinlin-openai
245b91b83d
feat(slack): support Enterprise Grid org installs ( #102372 )
...
* feat(slack): support Enterprise Grid org installs
* docs: refresh generated docs map
* fix(slack): satisfy enterprise routing CI
* fix(slack): accept org auth without app id
* docs(plugin-sdk): document channel policy hooks
* fix(slack): reuse canonical sender for enterprise replies
* test(slack): fix enterprise sender lint
---------
Co-authored-by: Kevin Lin <kevin@dendron.so >
2026-07-08 23:53:19 -07:00
Peter Steinberger
f7d7148cf0
docs: rewrite published docs grounded in current source ( #100142 )
...
Source-grounded rewrite of 529 published docs pages with per-unit information-loss verification: 1,713 factual corrections cited to src/**, generated surfaces regenerated, frontmatter titles preserved for i18n, release notes pages untouched. All docs gates green.
Closes #100141
2026-07-05 00:32:47 -04:00
Ted Li
b67df3797a
fix(telegram): explain disabled plugin approval failures ( #95973 )
...
* fix: explain disabled Telegram plugin approvals
* fix: handle disabled Telegram native plugin approvals
* fix: resolve exec approval surface independently
* fix: tie plugin approval setup guidance to plugin surface
* Revert "fix: tie plugin approval setup guidance to plugin surface"
This reverts commit 34e3c10e23ec8d3cf00ff803188df4226cd60f8d.
* fix: gate plugin approval setup guidance
* fix: gate plugin approval availability by delivery
* fix: preserve plugin approval approver auth
* fix: make plugin setup guidance explicit
* test: trim approval guidance proof radius
* Avoid setup guidance on routed approval timeout
* Carry plugin approval delivery route into timeouts
* Keep turn-source approval route visible
* fix(approvals): prefer delivered approval clients
* fix(approvals): prefer delivered approval clients
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-02 14:15:25 -07:00
张贵萍
56baf9d079
fix(outbound): reject reserved Telegram targets
2026-06-25 08:37:00 -07:00
Peter Steinberger
08ae0e6d29
refactor: store Zalo hosted media in plugin state
...
Move Zalo hosted outbound media metadata and expiry into plugin state, add SDK chunked hosted media storage, and keep CI/type/lint gates green after rebase.
2026-06-06 22:56:48 -07:00
Kevin Lin
c57671176e
refactor: share native approval route gates
...
Share native approval route gate helpers across mainstream channel approval runtimes and keep PR #87770 green on current main.
2026-05-29 15:32:31 -07:00
Peter Steinberger
1507a9701b
refactor: centralize inbound supplemental context
...
* refactor: centralize inbound supplemental context
* refactor: trim supplemental finalizer typing
* docs: clarify supplemental context projection
* refactor: move inbound finalization into core
* refactor: simplify channel inbound facts
* refactor: fold supplemental media into inbound finalizer
* refactor: migrate channel inbound callers to builder
* docs: mark inbound finalizer compat types deprecated
* refactor: wire runtime turn context builder
* refactor: replace channel turn runtime API
* fix: respect discord quote visibility
* fix: avoid deprecated line dispatch helper
* refactor: deprecate channel message SDK seams
* docs: trim channel outbound SDK page
* test: migrate irc inbound assertion
* refactor: deprecate outbound SDK facades
* refactor: deprecate channel helper SDK facades
* refactor: deprecate channel streaming SDK facade
* refactor: move direct dm helpers into inbound SDK
* chore: mark legacy test-utils SDK alias deprecated
* refactor: remove unused allow-from read helper
* refactor: route remaining channel dispatch through core
* refactor: enforce modern extension SDK imports
* test: give slow image root tests more time
* ci: support node fallback on windows
* fix: add transcripts tool display metadata
* refactor: trim legacy channel test seams
* fix: preserve channel compat after rebase
* fix: keep deprecated channel inbound aliases
* fix: preserve discord thread context visibility
* fix: clean final rebase conflicts
* fix: preserve channel message dispatch aliases
* fix: sync channel refactor after rebase
* fix: sync channel refactor after latest main
* fix: dedupe memory-core subagent mock
* test: align clickclack inbound dispatch assertions
* fix: sync plugin sdk api hash after rebase
* fix: sync channel refactor after latest main
* fix: sync plugin sdk api hash after rebase
* fix: sync plugin sdk api hash after latest main
* test: remove stale inbound context awaits
2026-05-27 09:26:06 +01:00
Agustin Rivera
08a73dbe4b
fix(qqbot): gate fallback approval buttons ( #87154 )
...
QQBot fallback approval buttons now reuse the same slash-command authorization path as real commands, including access groups and default-account config merging.
Verification:
- node scripts/test-extension.mjs qqbot
- node --max-old-space-size=8192 --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check && git diff --check
- pnpm lint --threads=8
- node scripts/run-vitest.mjs src/agents/agent-command.live-model-switch.test.ts
- GitHub PR checks for 7cc0f15031 : passed
Thanks @eleqtrizit.
Co-authored-by: Agustin Rivera <agustin@rivera-web.com >
2026-05-27 08:44:55 +01:00
Peter Steinberger
c4f0da00a9
refactor: use channel target resolution APIs ( #85814 )
...
* refactor: use channel target resolution apis
* refactor: satisfy delivery lint
* refactor: remove unused target parsing shim
* fix: preserve routed cron topic targets
2026-05-23 21:26:55 +01:00
Peter Steinberger
07f05e972e
refactor: move inbound event classification into core
2026-05-17 00:10:29 +01:00
Feelw00
a2f1f73107
docs(plugins): note cancelDelivered in channel plugin interactions list
...
ClawSweeper R3 flagged that the previous follow-up added the
`cancelDelivered` hook to the public approval-handler runtime interaction
surface but left the channel plugin docs describing `interactions` as
only bind/unbind/clear-action hooks. Extend the bullet so plugin authors
whose `deliverPending` registers in-process or persistent state know
when to implement the cancellation hook.
AI-assisted: drafted with claude code (claude-opus-4-7).
2026-05-16 16:41:07 +01:00
Peter Steinberger
40789da1ef
fix(wizard): narrow setup i18n SDK surface
2026-05-15 15:33:27 +01:00
Peter Steinberger
4f32a32ed6
refactor: move rare sdk seams into owners
2026-05-10 12:37:10 +01:00
Peter Steinberger
a0fb7fb045
refactor: centralize channel ingress access
2026-05-10 00:18:36 -04:00
Vincent Koc
4395f1dd66
docs: typography hygiene + drop one in-body H1 across 5 pages
...
Replaced 98 typography characters (curly quotes, apostrophes, em/en
dashes, non-breaking hyphens) with ASCII equivalents per
docs/CLAUDE.md heading and content hygiene rules.
- docs/plugins/sdk-migration.md: 20 chars
- docs/help/testing.md: 20 chars
- docs/automation/tasks.md: 20 chars
- docs/plugins/sdk-channel-plugins.md: 19 chars
- docs/channels/yuanbao.md: 19 chars; removed the duplicate '# Yuanbao'
H1 (Mintlify renders title from frontmatter).
2026-05-05 19:46:32 -07:00
Peter Steinberger
ceca7fdfda
docs: document channel message plugin api
2026-05-06 01:46:42 +01:00
Peter Steinberger
1ead1b2d18
refactor(channels): finish turn kernel migration
2026-04-30 01:31:00 +01:00
Peter Steinberger
8c68e7535f
refactor: centralize channel DM access resolution
2026-04-29 16:35:37 +01:00
Peter Steinberger
8831d2cf0a
fix: normalize docs mintlify components
2026-04-28 07:52:17 +01:00
Peter Steinberger
48a0be8ff3
docs(plugins): document channel route sdk
2026-04-28 01:13:01 +01:00
Gustavo Madeira Santana
53618cca0d
docs: clarify plugin discovery loading
2026-04-24 22:26:52 -04:00
Peter Steinberger
5e640b93da
fix(discord): preserve outbound reply threading
2026-04-25 02:54:37 +01:00
Vincent Koc
b7c8c53af2
docs(plugins): define config ownership contract
...
* fix(plugins): flag channel config metadata gaps
* docs(plugins): clarify config ownership
2026-04-24 17:17:10 -07:00
Vincent Koc
9153598e65
docs(plugins): split architecture by extracting internals (load pipeline, runtime hooks, HTTP routes, schemas)
2026-04-23 20:03:22 -07:00
Vincent Koc
367b9721b6
docs(concepts,automation,plugins): add Related sections to pages missing them
2026-04-23 15:48:46 -07:00
Vincent Koc
c5c163d078
docs: standardize frontmatter field order (summary before title)
2026-04-23 13:18:17 -07:00
Vincent Koc
2777b089b5
docs: normalize frontmatter titles to sentence case
2026-04-23 13:15:17 -07:00
Vincent Koc
4a2cd533ac
docs: remove duplicate H1 where frontmatter title already sets it
2026-04-23 13:11:14 -07:00
pashpashpash
89932593bb
Show typing while heartbeats are running ( #69963 )
...
* Heartbeat: show typing during runs
* Heartbeat: fix typing review issues
* Discord: preserve heartbeat typing config
2026-04-22 13:50:27 +09:00
Peter Steinberger
ef66798433
fix: preserve outbound thread sessions
2026-04-22 02:56:23 +01:00
Gustavo Madeira Santana
24db09a19b
fix(cli): keep channel status checks off plugin runtimes ( #69479 )
...
Merged via squash.
Prepared head SHA: 63f6e416a9
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-21 13:53:08 -04:00
Tak Hoffman
1303b03241
fix: add silent reply policy by conversation type ( #68644 )
...
Thanks @Takhoffman.
2026-04-21 05:17:55 +01:00
Peter Steinberger
418056f7a0
perf: narrow plugin SDK import surfaces
2026-04-17 16:05:09 +01:00
Gustavo Madeira Santana
78ac118427
fix(plugins): stabilize bundled setup runtimes ( #67200 )
...
Merged via squash.
Prepared head SHA: e8d6738fd0
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-15 12:35:18 -04:00
slepybear
450c3a8ed2
fix(security): include Matrix avatar params in sandbox media normalization + preserve mxc:// URLs + log gmail watcher stop failures [AI-assisted] ( #64701 )
...
Merged via squash.
Prepared head SHA: 54de3f019b
Co-authored-by: slepybear <108438815+slepybear@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-14 12:22:29 -04:00
Peter Steinberger
972ed139a7
fix: make docs anchor audit use Mintlify CLI
2026-04-10 21:39:52 +01:00
Gustavo Madeira Santana
cfe71e2e44
Docs: document approval adapter subpaths
2026-04-07 16:06:02 -04:00
Gustavo Madeira Santana
d78512b09d
Refactor: centralize native approval lifecycle assembly ( #62135 )
...
Merged via squash.
Prepared head SHA: b7c20a7398
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-07 14:40:26 -04:00
Peter Steinberger
13a60aa93b
docs: document shared mention policy
2026-04-07 07:51:00 +01:00
Peter Steinberger
8ff570ee42
refactor: resolve channel env vars from plugin manifests
2026-04-06 19:53:27 +01:00
Gustavo Madeira Santana
0ef9383487
fix(approvals): make exec approval fallback guidance channel-specific ( #61424 )
...
Merged via squash.
Prepared head SHA: cb5d3c249c
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-05 14:26:46 -04:00
Peter Steinberger
1903be5401
refactor: remove generated plugin sdk facades
2026-04-05 09:07:33 +01:00
Peter Steinberger
420f2191f5
docs: refresh whatsapp helper sdk refs
2026-04-04 20:36:30 +01:00
Peter Steinberger
131a78d3f3
docs: refresh setup runtime helper refs
2026-04-04 18:45:12 +01:00
Peter Steinberger
414e834c26
docs: refresh matrix and slack native approval refs
2026-04-04 18:31:47 +01:00
Peter Steinberger
f81d55d7ea
docs: refresh native approval routing refs
2026-04-04 18:28:23 +01:00
Peter Steinberger
eb4c5890ab
docs: refresh optional setup helper refs
2026-04-04 15:45:28 +01:00
Peter Steinberger
3b502882b9
docs: refresh setup runtime and promotion refs
2026-04-04 15:43:34 +01:00
Peter Steinberger
60206817b3
docs: refresh telegram command sdk refs
2026-04-04 14:38:33 +01:00