Commit Graph

2110 Commits

Author SHA1 Message Date
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