Peter Steinberger
0b849a316d
refactor(plugins): single-source interactive dispatch and its auth downgrade via plugin SDK ( #120062 )
2026-08-06 16:31:04 -07:00
Peter Steinberger
b4a26783f7
refactor(test): consolidate duplicated requireRecord and provider HTTP mock helpers ( #119982 )
...
* refactor(test): consolidate duplicated test helpers
* test: remove stale record guard import
* fix(test): remove orphaned record guards
* refactor(test): keep record requirement messages exhaustively typed
* fix(test): keep packages/ai record guard package-local
2026-08-06 14:48:01 -07:00
Peter Steinberger
f5e3b5ef54
refactor(plugins): single-source question reactions and preflight audio ( #119987 )
2026-08-06 14:47:36 -07:00
Peter Steinberger
913b53ad80
fix(channels): preserve bundled delivery contracts
...
Preserves pending Telegram replies, Discord webhook preview policy, forwarded Slack file context, and QQBot target recognition.
2026-08-06 18:44:15 +05:30
Alix-007
ab74723229
fix(discord): prevent credentials from appearing in non-JSON errors ( #119536 )
...
* fix(discord): redact non-JSON API error details
* fix(discord): redact JSON API error details
2026-08-05 20:38:17 -07:00
Peter Steinberger
21bc2c43f2
fix(discord): explain failed form openings instead of silently doing nothing ( #119657 )
...
* fix(discord): report failed modal presentation to the operator
* refactor(discord): reuse canonical interaction failure recovery
2026-08-05 09:02:59 -07:00
wanyongstar
57a237ab13
fix(discord): preserve authored block order in presentation components ( #119506 )
...
buildDiscordPresentationComponents rendered presentations in two
passes - all text/context/divider blocks first, then every
buttons/select block - so any block authored after a control was moved
above it and controls always sank below all prose. Discord Components
V2 layouts interleave freely and the deprecated single-pass renderer
pins interleaving as the contract, so merge the passes into one
order-preserving loop (title still pinned first).
2026-08-05 15:16:55 +08:00
zhanxingxin1998
353b4a339a
fix(discord): invalidate member cache on lifecycle events ( #110414 )
...
Clear cached member and user entities when members join or leave, matching the existing update-event behavior and preventing stale role authorization.
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-04 22:14:42 -07:00
Peter Steinberger
60a8ec821c
refactor(plugins): reuse canonical error coercion ( #119451 )
2026-08-04 21:05:45 -07:00
Peter Steinberger
9214e6381d
refactor(discord): consolidate interactive response handling ( #119448 )
2026-08-04 21:01:32 -07:00
Syu
b316c9cacf
fix(channels): honor explicit preview streaming settings
...
Explicit Telegram and Discord preview modes now override inherited block streaming while explicit channel block settings remain authoritative.
Co-authored-by: Syu <zhuqimo@gmail.com >
2026-08-05 09:04:49 +05:30
Vincent Koc
1ee0564b09
fix(discord): avoid doctor runtime loading ( #119391 )
...
* fix(discord): publish doctor capability metadata
Punchcard-Session: amber-workshop-river-yr
* fix(doctor): read packaged channel metadata
Punchcard-Session: amber-workshop-river-yr
2026-08-05 11:05:35 +08:00
Dinesh H Suthar
50c7444edf
fix(sessions): preserve compatible auth profiles on model changes ( #117550 )
...
* fix(model-picker): preserve compatible auth profiles
* chore(plugin-sdk): refresh API baseline
* fix(model-picker): keep profile policy core-owned
* fix(model-picker): preserve profiles across auth aliases
* chore(plugin-sdk): update public surface budgets
* fix(model-picker): honor explicit profile clearing
* fix: preserve compatible auth profiles on model changes
* perf: reuse prepared auth profile metadata
* docs(plugin-sdk): document direct model persistence fallback
* test: expose auth snapshot in directive mock
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
Co-authored-by: Dinesh Suthar <dineshsld20@gmail.com >
2026-08-05 07:40:00 +05:30
Josh Avant
618fba92bf
feat(audit): add execution identity inspection ( #117034 )
...
* feat(audit): add opt-in execution identity inspection
* fix(audit): gate recovery identity retention
* fix(audit): keep recovery identity type private
* test(audit): type internal recovery fixture
* test(audit): split recovery identity coverage
* docs(audit): define operator read trust boundary
* test(qa): register identity scenario child
* fix(audit): enforce shared identity retention bounds
* fix(audit): seal public ingress identity boundary
* fix(audit): keep ingress guard lint-clean
* fix(gateway): preserve advertised method order
* chore(protocol): sync advertised method order
* fix(protocol): encode audit selector invariants
* test(audit): prove exact execution guard
* fix(audit): keep identity storage lazy
2026-08-04 20:05:15 -05:00
Vincent Koc
c238564d27
fix(discord): count retained speech bytes
2026-08-04 22:27:43 +08:00
Vincent Koc
193317fd68
test(discord): isolate exact speech overflow
2026-08-04 22:08:37 +08:00
Vincent Koc
47f8c4febb
test(discord): cover exact speech overflow
2026-08-04 21:43:38 +08:00
Vincent Koc
00f3fb2469
fix(discord): bound realtime exact speech
2026-08-04 21:29:29 +08:00
Patrick Erichsen
1aea2df935
fix(plugins): refresh bundled channel skills ( #119020 )
2026-08-03 17:31:00 -07:00
Peter Steinberger
f9d9d1225a
refactor(channels): own the lifecycle status contract in SDK patch factories ( #118795 )
...
* refactor(sdk): add channel lifecycle patch factories
* refactor(channels): adopt lifecycle patches in a-m
* refactor(channels): adopt lifecycle patches in n-z
* refactor(runtime): lifecycle-own ambient registries
* test(slack): assert lifecycle factory fields
* fix(sdk): preserve lifecycle patch extras types
* test(zalouser): widen lifecycle status sink
* test(irc): avoid shadowed status patch
* fix(zalo): reuse account-agnostic media route
* fix(gateway): accept explicit channel ready recovery
* test(qa): assert terminal Slack block fact
* test(qa): restore Slack blocked lifecycle scenario
* test(gateway): lock explicit lifecycle recovery contract
2026-08-03 12:39:48 -07:00
Pavan Kumar Gondhi
f63f2fd3db
fix(reef): restrict management commands to owners [AI] ( #118578 )
...
* fix(reef): require owner for management commands
* fix(reef): preserve general command access
* fix: preserve explicit owner authority
* fix(discord): separate voice admission from ownership
* docs(reef): explain owner command recovery
* docs(reef): clarify owner recovery paths
2026-08-03 23:18:05 +05:30
Peter Steinberger
ed8881c308
fix(channels): deny unauthorized Discord and Telegram binding access ( #118704 )
...
* fix(channels): deny unauthorized Discord and Telegram binding access
* test(discord): remove retired access-group config key
2026-08-03 08:37:00 -07:00
Peter Steinberger
06957a69d8
fix(discord): keep acknowledged interaction replies private ( #118611 )
2026-08-03 03:34:05 -07:00
Peter Steinberger
e97f484ef9
fix(discord): report pending message search indexes ( #118573 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-03 02:13:42 -07:00
Peter Steinberger
c6bcd93561
fix(discord): preserve final slash-command failure outcomes ( #118545 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-03 00:01:58 -07:00
Peter Steinberger
d01f03b91c
fix(discord): preserve accepted partial reply receipts ( #118354 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-02 19:44:15 -07:00
Peter Steinberger
345343fb70
test(discord): consolidate activity HTTP fixtures ( #118314 )
2026-08-02 19:13:51 -07:00
Peter Steinberger
ee82689ea4
fix(channels): recorded lifecycle facts outrank derived signals at the consumer boundary ( #118251 )
...
* fix(gateway): preserve terminal blocked lifecycle
* fix(discord): classify application id probe failures
* fix(gateway): preserve authored terminal health state
2026-08-02 16:11:03 -07:00
Peter Steinberger
e09e03ed81
test(discord): deduplicate draft process fixtures ( #118167 )
2026-08-02 13:18:41 -07:00
Peter Steinberger
bc826d6866
refactor(discord): deduplicate presence listener tests ( #118155 )
2026-08-02 13:07:15 -07:00
Peter Steinberger
0c32879d45
feat(channels): publish recorded lifecycle from bundled channel transitions ( #118110 )
...
* feat(channels): publish recorded lifecycle from bundled channel transitions
* chore: remove lifecycle changelog entry
2026-08-02 13:04:49 -07:00
Peter Steinberger
47be8b8e10
fix(discord): commit callback state after provider acceptance ( #117417 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-02 11:30:37 -07:00
Peter Steinberger
ac28f4d558
fix: release channel delivery resources reliably ( #117855 )
...
* fix(channels): consolidate delivery lifecycle ownership
* test(msteams): match release mock contract
* test(plugin-sdk): satisfy promise executor lint
* chore(plugin-sdk): regenerate API baseline for delivery-correlation + fetch-runtime exports
2026-08-02 00:24:47 -07:00
Peter Steinberger
d6e537a859
refactor(channels): share persistent state error reporting ( #117813 )
2026-08-01 22:06:25 -07:00
Peter Steinberger
e98fdeefdf
refactor(errors): consolidate message formatting ( #117818 )
2026-08-01 22:05:49 -07:00
Peter Steinberger
b1f97bb7b3
refactor(discord): remove retired subagent progress runtime ( #117802 )
2026-08-01 21:36:28 -07:00
Peter Steinberger
6d6b3a852d
fix(discord): preserve workspace attachments in voice and thread replies ( #117767 )
2026-08-01 21:32:10 -07:00
WhatsSkiLL
d69dba245b
fix(discord): continue queued ingress cleanup ( #117524 )
...
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-08-01 17:52:29 -07:00
Peter Steinberger
e9d70a5345
test(discord): consolidate message media fixtures ( #117695 )
2026-08-01 17:11:16 -07:00
WhatsSkiLL
b2278f3d10
fix-discord-preserve-component-waiter-owner ( #117492 )
...
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-08-01 16:18:57 -07:00
Vincent Koc
c7b1399879
fix(discord): type active-run fallback
2026-08-02 02:21:31 +08:00
Vincent Koc
5b7fcce1bb
fix(discord): replay only unheard exact speech
2026-08-02 01:33:40 +08:00
Vincent Koc
19f7834e14
fix(discord): fence realtime provider generations
2026-08-02 01:27:00 +08:00
Vincent Koc
cc71e7c452
fix(discord): reset realtime provider continuity
2026-08-02 01:11:52 +08:00
Vincent Koc
4f2429a817
merge: refresh realtime continuity onto main
...
* origin/main: (41 commits)
fix(plugins): compare authoring metadata by canonical JSON semantics (#117486 )
fix(doctor): reject contradictory lint check selectors (#117495 )
fix(anthropic): honor configured model pricing (#117275 )
refactor(plugins): reuse scoped loader for capability discovery (#117373 )
refactor(test): derive changed tooling routes (#117407 )
fix(kova): clarify extension memory attribution (#117500 )
fix(imessage): sanitize private context on every outbound path (#117501 )
fix(ci): align release validation fixtures (#117494 )
fix(talk): preserve owner authorization in realtime consults (#114163 )
fix(ui): surface aborted-run diagnostics (#117497 )
perf(models): skip Ollama row runtime loading (#117465 )
fix(cli): report user profile command outcomes (#117466 )
fix(active-memory): detect Chinese recall intent in escalate mode (#117338 ) (#117419 )
fix(workboard): ignore caller-supplied archivedAt when creating a card (#116412 )
fix(models): avoid waiting on promotions before listing models (#117322 )
refactor(plugins): inherit shared package boundary settings (#117474 )
fix(systemd): parse all inline environment assignments (#117484 )
feat(web-fetch): add tools.web.fetch.headers for operator request headers (#115545 )
fix(qa): Slack progress lane misses successful delivery (#117391 )
refactor: deduplicate Codex prompt snapshot fixtures (#117476 )
...
2026-08-02 01:00:52 +08:00
Peter Steinberger
fdec6fe7d4
refactor(plugins): reuse scoped loader for capability discovery ( #117373 )
...
* refactor(plugins): reuse scoped loader for capabilities
* fix(plugins): retain channel capabilities during discovery
2026-08-01 09:50:34 -07:00
Peter Steinberger
568ea29d2e
refactor(plugins): inherit shared package boundary settings ( #117474 )
2026-08-01 09:11:09 -07:00
Peter Steinberger
30972edaea
fix(discord): recover zero-valued DAVE transition ( #117381 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 08:57:12 -07:00
Vincent Koc
d41fbf7d89
test(discord): close continuity reset response
2026-08-01 23:40:48 +08:00
Vincent Koc
fbed71958e
test(discord): scope continuity reset regression
2026-08-01 23:17:01 +08:00