Peter Steinberger
72cf43fa80
refactor(discord): unify custom-id value codecs into one shared module ( #104334 )
2026-07-11 02:12:37 -07:00
Peter Steinberger
0ef9a62eaf
fix(codex): allow slower Mac session catalogs ( #104332 )
2026-07-11 02:05:55 -07:00
Vincent Koc
85a96409f1
feat(memory): surface llama.cpp diagnostics
2026-07-11 16:40:14 +08:00
chengzhichao-xydt
a11449211a
fix(inworld): add timeout to voices list request ( #102965 )
...
* fix(inworld): add timeout to voices list request
* refactor(inworld): reuse guarded timeout test helpers
* test(inworld): rely on harness timeout
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 01:35:25 -07:00
Vincent Koc
64a76d18ee
fix(memory): tolerate minimal plugin runtimes
2026-07-11 16:22:22 +08:00
Vincent Koc
1aca83abf5
fix(lmstudio): isolate embedding alias credentials
2026-07-11 16:22:22 +08:00
Vincent Koc
105419ae5f
fix(lmstudio): resolve embedding alias credentials
2026-07-11 16:22:22 +08:00
Vincent Koc
065873e5ec
fix(lmstudio): preserve local service endpoint forms
2026-07-11 16:22:22 +08:00
Vincent Koc
63dbb336ca
fix(ollama): preserve embedding readiness base path
2026-07-11 16:22:22 +08:00
Vincent Koc
cce3fd55c4
test(lmstudio): type local service override fixture
2026-07-11 16:22:22 +08:00
Vincent Koc
d2ac533c6c
fix(embeddings): skip local services for remote overrides
2026-07-11 16:22:22 +08:00
Vincent Koc
5988420f89
fix(ollama): drop stale embedding config alias
2026-07-11 16:22:22 +08:00
Vincent Koc
1b3438d7ec
fix(plugin-runtime): keep local service config host-owned
2026-07-11 16:22:22 +08:00
Vincent Koc
8b8e66cfa4
test(embeddings): align runtime fixture casts
2026-07-11 16:22:22 +08:00
Vincent Koc
ccab708c16
fix(plugin-sdk): align local service release contract
2026-07-11 16:22:22 +08:00
Vincent Koc
e62c216d75
refactor(embeddings): inject local service acquisition
2026-07-11 16:22:22 +08:00
Vincent Koc
06fbade796
fix(lmstudio): lease embedding local services
2026-07-11 16:22:22 +08:00
Vincent Koc
fa5f24b021
fix(ollama): lease embedding local services
2026-07-11 16:22:22 +08:00
Peter Steinberger
20fe3f46db
fix: paired Mac Codex sessions finish loading ( #104299 )
...
* fix(codex): allow cold Mac session catalogs
* chore: keep release notes in PR body
2026-07-11 01:14:36 -07:00
Pavan Kumar Gondhi
5f709cfd87
fix: isolate Synology webhook preauth throttling [AI] ( #103619 )
...
* fix: scope Synology preauth throttling by client ip
* fix: clarify Synology preauth limiter comments
2026-07-11 13:44:21 +05:30
Peter Steinberger
7128e8ea2b
fix(telegram): allow 12-option polls ( #104303 )
...
* fix(telegram): allow 12-option polls
* chore: keep release notes in pr body
2026-07-11 01:11:30 -07:00
Peter Steinberger
7bf80dc2c6
chore(tooling): enforce formatting and refresh TypeScript checks ( #104239 )
...
* chore(tooling): enforce current formatter and refresh checks
* chore(tooling): keep release changelog formatter-owned
* chore(tooling): retain compatible Node type surface
* ci: enforce formatting for docs-only changes
* ci: isolate docs formatter check
* chore(tooling): apply updated lint and format rules
* chore(tooling): satisfy updated switch lint
* style(ui): apply Linux formatter layout
* test(doctor): match quiet local audio contribution
* test(doctor): assert quiet output only
* test(doctor): follow restored information contract
2026-07-11 01:09:51 -07:00
Alix-007
5219c9353d
fix(tts): bound voice-list requests ( #102865 )
...
* fix(microsoft): add timeout to voices list request
* fix(tts): bound voice-list requests
Co-authored-by: llagy009 <0668001470@xydigit.com >
---------
Co-authored-by: llagy009 <0668001470@xydigit.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 00:55:06 -07:00
Yuval Dinodia
df883ab81a
fix(discord): stop retrying non-idempotent sends on post-connect-ambiguous errors ( #103867 )
...
* fix(discord): stop retrying non-idempotent sends on post-connect-ambiguous errors
Discord's outbound retry runner treated every transient transport error as
retryable, including ECONNRESET, ETIMEDOUT, AbortError, and the undici
headers/body/socket timeouts. Those errors can fire after Discord has already
received and created the message but before the client reads the response, so
replaying the non-idempotent createChannelMessage POST delivers the same
message twice while reporting success.
Add a pre-connect-only classifier (isRetryableDiscordPreConnectError) covering
errors that provably never reached Discord (DNS/connect refused/connect
timeout) plus rate-limit rejections, mirroring the Telegram send-path
carve-out. The retry runner now accepts a per-call nonIdempotent option; the
message-create and thread-create call sites opt in so ambiguous post-connect
errors surface to the caller instead of double-sending. Idempotent REST calls
(reactions, edits, DM-channel lookup, uploads) keep the broader transient set.
* fix(discord): retry nonce-enforced message creates
* fix(discord): scope create retries by endpoint
* fix(discord): stabilize sticker and poll create nonce across retries
* fix(discord): tighten create retry safety
* fix(discord): preserve nonce-safe retries
* fix(discord): scope nonce fields to message creates
* test(discord): cover nonce-safe direct sends
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 00:54:23 -07:00
Peter Steinberger
dce871540b
test(qa): consolidate web search scenario ( #104280 )
...
Co-authored-by: Jimmy Puckett <jimmy.puckett@spinen.com >
2026-07-11 00:54:15 -07:00
Alix-007
18362758d0
fix(openai): add timeout to realtime client-secret requests ( #102860 )
...
* fix(openai): add timeout to realtime client-secret requests
* test(openai): prove realtime timeout through real guard
* test(openai): route realtime timeout proof through guard
* fix(openai): bound realtime client-secret requests
Co-authored-by: llagy009 <0668001470@xydigit.com >
* fix(openai): align realtime secret timeout
---------
Co-authored-by: llagy009 <0668001470@xydigit.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 00:54:06 -07:00
Vincent Koc
597888680c
feat(browser): expose managed graphics diagnostics ( #104291 )
...
* feat(browser): expose managed Chrome graphics diagnostics
* feat(browser): surface graphics facts in doctor
* docs(browser): explain managed graphics diagnostics
* fix(browser): remove unused graphics type import
* fix(browser): keep graphics facts sorting immutable
* fix(browser): bind graphics facts to owned process
* fix(browser): classify disabled graphics as software
* fix(browser): detect Windows software renderers
* fix(browser): classify disabled renderer sentinel
2026-07-11 15:41:16 +08:00
Peter Steinberger
f94a7dc183
feat(codex): supervise native Codex sessions ( #104045 )
...
* feat(codex): add native session supervision
* fix(codex): harden supervision integration
* fix(codex): preserve locked harness ownership
* fix(codex): fence native session archive
* fix(codex): revalidate archive binding ownership
* feat(codex): integrate supervision runtime
* feat(sessions): preserve harness-owned execution
* feat(sessions): persist harness ownership invariants
* feat(gateway): enforce harness-owned sessions
* feat(setup): enable detected Codex supervision
* feat(mac): expose supervised Codex sessions
* feat(ui): make Codex sessions actionable
* docs(codex): document session supervision
* test(codex): cover integration ownership
* chore(i18n): refresh supervision inventories
* fix(setup): finalize Codex activation atomically
* test(codex): narrow binding store update
* fix(sessions): preserve legacy model locks
* test(macos): serialize Codex catalog fixtures
* fix(sessions): preserve legacy lock admission
* chore(i18n): reconcile supervision metadata
* test(sessions): mark legacy lock fixture
* fix(macos): drain final Codex catalog frame
* docs: leave supervision note to release
* style(macos): satisfy Codex catalog type length
* chore: record session accessor seam owners
* fix(macos): honor configured Codex supervision
* fix(codex): preserve harness-owned model locks
* fix(codex): satisfy supervision lint gates
* chore(i18n): refresh native supervision inventory
* fix(codex): align supervision validation contracts
* fix(codex): close supervision boundary gaps
* fix(codex): preserve supervision activation contracts
* fix(codex): dispose standalone supervision runtime
* fix(codex): pin supervised source connection
* fix(plugins): bind delegated runs to exact session target
* fix(codex): scope supervised sessions to configured agents
* fix(codex): fingerprint effective supervision home
* fix(codex): normalize supervision plugin policy
* fix(codex): keep supervised bindings stable across upgrades
* fix(codex): guard all supervised binding connections
* fix(codex): preserve catalog filters and pending CAS identity
* fix(codex): preserve supervision identity for diagnostics
* fix(codex): bind uncertain commits to supervision connection
* fix(codex): satisfy supervision type boundaries
* fix(macos): reconcile current main validation
* fix(codex): handle absent runtime config in supervision
* fix(doctor): own local audio acceleration check
* fix(codex): satisfy integration lint gates
* fix(codex): satisfy lifecycle safety guards
2026-07-11 00:12:08 -07:00
cxbAsDev
4fcee4f4fd
fix(google-meet): force English UI when reusing existing Chrome tabs ( #103719 )
...
* fix(google-meet): force English UI when reusing existing Chrome tab
* fix(google-meet): narrow reused tab before forcing English UI
* test(google-meet): assert /navigate target id is adopted in reused tabs
* fix(google-meet): preserve active call tabs and normalize English before recovery
* fix(google-meet): preserve localized active tabs
* test(google-meet): avoid shadowing path import
* test(google-meet): align mocks with English-pinned tab reuse
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 00:11:00 -07:00
Peter Lee
99ddde8726
fix(voice-call): consolidate webhook logs on the injected plugin logger and assert transcript privacy boundary ( #103555 )
...
* fix(voice-call): redact transcript and AI response content from webhook logs
* fix(voice-call): wrap catch error in record for subsystem logger meta param
* fix(voice-call): consolidate webhook diagnostics on the injected logger and assert privacy boundary in tests
* fix(voice-call): restore [voice-call] attribution on shared plugin logger wrapper
* fix(voice-call): narrow optional debug callback before constructing wrapper
* test(voice-call): consolidate privacy assertions
* test(voice-call): share transcript privacy assertions
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:05:34 -07:00
Peter Lee
964a83b363
fix(voice-call): redact phone numbers in event logs via subsystem logger ( #103547 )
...
* fix(voice-call): redact phone numbers in event logs via subsystem logger
* fix(voice-call): add output-level privacy assertions that raw phone numbers are absent from event logs
* test(voice-call): consolidate privacy assertions
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 22:57:09 -07:00
Peter Steinberger
82abf7244d
fix(codex): expose selectable node exec ( #104198 )
...
* fix(codex): expose selectable node exec
* chore: defer Codex node release note
2026-07-10 22:50:55 -07:00
Peter Steinberger
87618930db
fix(google-meet): align DTMF delay metadata ( #104119 )
...
* fix(google-meet): align DTMF delay metadata
Co-authored-by: llagy007 <0668001470@xydigit.com >
* chore: defer Google Meet release note
---------
Co-authored-by: llagy007 <0668001470@xydigit.com >
2026-07-10 22:43:28 -07:00
Peter Steinberger
afa3212e90
fix(release): stage Telegram QA inside runtime root ( #104125 )
2026-07-10 22:39:09 -07:00
Peter Steinberger
81a201df26
feat: add portable table presentation blocks ( #103583 )
...
* feat(presentation): add portable table blocks
* chore(presentation): refresh generated contracts
* fix(slack): preserve table fallback payloads
* docs(changelog): note portable message tables
* fix(presentation): preserve cross-channel fallback delivery
* chore(plugin-sdk): refresh rebased contracts
* test(slack): align accessibility expectations
* fix(presentation): harden cross-channel fallback delivery
* chore(plugin-sdk): refresh rebased contracts
* docs(changelog): defer portable table release note
* fix(presentation): satisfy extension lint
* chore(plugin-sdk): refresh surface budgets
* fix(telegram): preserve reactions after progress replies
* fix(slack): preserve rendered preview fallback text
* fix(feishu): preserve oversized presentation fallbacks
* docs(changelog): note portable message tables
* docs(changelog): defer portable table release note
* chore(plugin-sdk): refresh rebased contracts
---------
Co-authored-by: Peter Steinberger <steipete@openai.com >
2026-07-10 22:29:13 -07:00
Peter Steinberger
9f53f8a256
feat(macos): import local browser login ( #104177 )
...
* feat(macos): import local browser login
* chore: leave release notes to release workflow
* chore(macos): refresh native i18n inventory
* chore(macos): refresh native i18n inventory
* chore(macos): refresh native i18n inventory
* chore: sync release summary executable bit
* chore(macos): refresh native i18n inventory
* style(macos): wrap browser import result
* chore(macos): refresh native i18n inventory
* chore(macos): refresh native i18n inventory
2026-07-10 22:14:36 -07:00
Peter Steinberger
36e0ac3576
fix(logs): clean up gateway and channel startup/shutdown log output ( #104174 )
...
* fix(logs): clean up gateway and channel startup/shutdown log output
Scope Discord slash-command deploy REST diagnostics to command routes so
concurrent startup traffic (voice-state probes, channel lookups) keeps its
owner's error handling; make per-request deploy error lines verbose-only and
drop JSON bodies that only repeat message+code. Log allowlist summaries one
line per call so unresolved lines keep their timestamp/subsystem prefix, and
skip identity lookups that resolved to themselves. Remove embedded subsystem
prefixes, demote routine signal/shutdown/force/postbuild/diag chatter to
debug or verbose, merge the duplicate Control UI build notices, drop doctor's
duplicate backup line, and name the config surface or platform limit in the
transcripts autoStart and command-limit warnings.
Fixes #104163
* fix(slack): keep bare-name allowlist resolutions in startup log summary
Only omit identity lookups where the input already is the resolved id;
name-based lookups that translated to an id stay logged even when the
display name matches the input.
* fix(telegram): keep isolated-ingress readiness marker on the runtime log
test/e2e/qa-lab telegram-bot-token-runtime waits for this line via the
injected RuntimeEnv.log; verbose-only logging would deterministically time
out that live proof. Comment the contract at the call site.
2026-07-10 22:13:33 -07:00
Alix-007
8f8aad9ae6
fix(minimax): add timeouts to OAuth HTTP requests ( #102862 )
...
* fix(minimax): add timeouts to OAuth HTTP requests
* fix(minimax): remove duplicate OAuth abort signals
* refactor(minimax): keep OAuth timeout internal
* test(minimax): make OAuth timeout proof deterministic
---------
Co-authored-by: llagy009 <0668001470@xydigit.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 22:02:34 -07:00
Alix-007
b09f9b0482
fix(openrouter): apply request policy to video catalog requests ( #102062 )
...
* fix(openrouter): apply request policy to video catalog requests
* fix(openrouter): key video catalog cache by request policy
* test(openrouter): preserve auth literal types
* fix(openrouter): preserve catalog auth overrides
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 22:01:18 -07:00
Alix-007
c4f46baec3
fix(nextcloud-talk): add timeout to room info lookup ( #102859 )
...
* fix(nextcloud-talk): add timeout to room info lookup
* test(nextcloud-talk): assert room lookup deadline
Co-authored-by: llagy009 <0668001470@xydigit.com >
---------
Co-authored-by: llagy009 <0668001470@xydigit.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 21:59:32 -07:00
xingzhou
6595d1756b
fix(discord): stream multipart uploads ( #102972 )
...
* fix(discord): bound multipart REST uploads
* Preserve Discord media upload payload limits
* fix(discord): stream multipart uploads
---------
Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com >
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-07-11 10:10:41 +05:30
Josh Avant
fbd330b7aa
fix(channels): honor configured read target policies ( #99905 )
...
* fix(channels): enforce configured read targets
* test(channels): align policy checks with boundaries
* fix: bind channel reads to trusted turn context
* test: satisfy gateway lint
* fix: narrow message action channel imports
* fix(feishu): authorize message reads before provider access
* fix(slack): await reaction clear authorization
* fix(channels): align provider action contracts
* fix(matrix): read direct-room account data before sync
* fix(channels): reject unsupported attachment actions early
* fix: restore trusted operator conversation reads
* fix(matrix): authorize pin actions before provider reads
* fix: preserve trusted channel read workflows
* fix(discord): resolve current channel ids consistently
* fix(agents): preserve message action turn capability
* fix(plugins): enforce host-owned read provenance
* fix(channels): harden Teams and Discord read policy
* fix(channels): preserve exact-current action compatibility
* fix(imessage): authorize trusted current chat aliases
* fix(channels): preserve normalized current aliases
* fix(channels): preserve external current target aliases
* fix: reconcile channel policy with current main
* fix(discord): isolate DM read policy
* fix(channels): enforce provider read gates
* fix(gateway): await serialized message action identity tokens
* fix(ci): refresh channel protocol contracts
2026-07-10 22:29:37 -05:00
Peter Steinberger
feae1faf06
fix(release): expose Telegram launcher failures safely ( #104099 )
...
* fix(release): expose Telegram launcher failures safely
* test(release): prove namespace launcher diagnostics
2026-07-10 20:03:36 -07:00
Peter Steinberger
dba64d574f
chore(release): set version to 2026.7.2
2026-07-11 04:00:49 +01:00
Peter Steinberger
bb26753705
fix(telegram): satisfy lint in transport-close proof test
...
restrict-plus-operands (Buffer + string) and no-promise-executor-return
tripped the lint shards on every PR since #101783 landed; scoped fixes
only, no behavior change.
2026-07-10 19:44:03 -07:00
ly-wang19
780f8d6f62
fix(telegram): clean up split reasoning previews ( #97828 )
...
Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com >
2026-07-10 19:43:14 -07:00
sunlit-deng
4d55b116c6
fix(feishu): keep native-card payloads in topic threads ( #102804 )
2026-07-10 19:33:18 -07:00
xingzhou
85fa8af4bb
fix(telegram): close evicted client-options cache transports after in-flight sends ( #101783 )
...
Long-running Telegram senders leaked HTTP transports: the client-options cache in extensions/telegram/src/send.ts created an owned undici dispatcher per account/network entry but evicted entries without closing it. Cache entries now own their transport; eviction retires the entry and closes the transport once the operation-level lease releases, so cache pressure never aborts an in-flight, retrying, or still-preparing send. Includes a real-socket e2e regression against a local Bot API server.
Co-authored-by: zhangguiping-xydt <zhangguiping-xydt@users.noreply.github.com >
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-07-11 07:57:44 +05:30
soldforaloss
200e1df007
fix(exa): cache disabled content options separately ( #103653 )
...
* fix(exa): partition cache by disabled content options
* fix(exa): align cache keys with effective contents
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-11 10:25:22 +08:00
mushuiyu886
f5eacacea5
fix(memory-wiki): stop duplicate bridge imports under polling ( #91828 )
...
* fix(memory-wiki): coalesce concurrent source syncs
Co-authored-by: mushuiyu_xydt <yang.haoyu@xydigit.com >
* test(memory-wiki): track alias fixture cleanup
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 19:20:15 -07:00