xingzhou and GitHub
ee74d7b8dc
fix(teams-meetings): expose listening probe timeout ( #111486 )
2026-07-20 23:39:27 +08:00
8518603392
fix(tts): contract speech requests hang on stalled endpoints ( #110725 )
...
* fix(tts): time out stalled contract speech requests
* fix(tts): release discarded contract responses
* test(tts): reuse canonical HTTP server helper
* test(tts): mark fixture credential synthetic
---------
Co-authored-by: Mason Huang <masonxhuang@proton.me >
2026-07-20 21:02:39 +08:00
269099585a
fix(discord): activity widgets recover from stalled gateway responses ( #111380 )
...
* fix(discord): bound Activity gateway requests
* test(discord): tighten Activity shell harness
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-19 09:32:29 -07:00
xingzhou and GitHub
b4a206fc41
fix(gmail): prevent duplicate watch renewals during stalls ( #108974 )
2026-07-19 22:05:04 +08:00
xingzhou and GitHub
7ea4e6701e
fix(export): prevent broken emoji in HTML tool call previews ( #104054 )
2026-07-19 22:00:31 +08:00
xingzhou and GitHub
e2ca148d4b
fix(codex): preserve JSONL framing across WebSocket writes ( #110384 )
...
* fix(codex): preserve UTF-8 websocket frames
* test(codex): satisfy websocket transport lint
* fix(codex): preserve websocket JSONL framing
2026-07-19 17:07:03 +08:00
xingzhou and GitHub
48ecb31bc6
fix(discord): time out stalled Activity token bodies ( #110667 )
2026-07-19 17:05:58 +08:00
zhang-guiping and Mason Huang
dd16befe58
fix(logs): bound stalled journal subprocesses
2026-07-19 16:56:54 +08:00
xingzhou and GitHub
7b3a8dba14
fix(meeting-bot): preserve spawn failure diagnostics ( #107614 )
2026-07-19 16:17:46 +08:00
xingzhou and GitHub
59124313f4
fix(release): plugin npm preflight no longer hangs on stalled registries ( #110862 )
...
* fix(release): bound plugin npm freshness lookups
* fix(release): fail closed on npm view timeouts
* test(release): fix npm timeout mock types
2026-07-19 16:10:49 +08:00
69aeba9d86
fix(discord): sustained gateway bursts stop growing memory ( #110954 )
...
* fix(discord): sustained gateway bursts stop growing memory
* fix(discord): contain gateway queue overflow
* fix(discord): drop oldest saturated gateway sends
Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com >
* fix(discord): surface gateway overflow warnings
Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 19:14:16 -07:00
9b42782f76
fix(plugins): agent runs hang when tool-result middleware never settles ( #110731 )
...
* fix(plugins): prevent tool-result middleware from freezing runs
* test(plugins): cover middleware timeout policy
* test(plugins): provide hook context in timeout test
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 17:11:59 -07:00
faf3dbdda8
fix(ci): classify proxied APNs TLS tunnel ( #110480 )
...
* fix(ci): classify proxied APNs TLS tunnel
* fix(ci): prove network CodeQL contract changes
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 16:18:29 +01:00
33151cbc40
fix(apns): keep diagnostics valid when response capture reaches its byte limit ( #110483 )
...
* fix(apns): preserve UTF-8 response captures
* test(apns): cover UTF-8 at the real capture limit
* fix(apns): preserve UTF-8 in bounded response captures
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 15:51:31 +01:00
1af6d99658
fix: surface cron errors for empty isolated agent replies ( #100229 )
...
* fix(cron): fail empty isolated agent completions
* fix: surface cron errors for empty isolated agent replies
* fix(cron): preserve intentional terminal progress
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-18 10:41:31 +01:00
609e5d2318
fix(gateway): session workspace reveal hangs on foreground opener ( #110277 )
...
* fix(gateway): bound session workspace reveal opener
* refactor(gateway): share bounded path opener lifecycle
---------
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-18 10:36:35 +01:00
91ded68990
fix(vault): SecretRef resolution no longer hangs on stalled response bodies ( #108970 )
...
* fix(vault): keep request deadline through response body
* test(vault): use generic stalled-body fixture
* test(vault): mark fixture token synthetic
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 09:46:50 +01:00
xingzhou and GitHub
34440523cd
fix(voice-call): ngrok tunnels no longer survive cleanup ( #110122 )
...
* fix(voice-call): ngrok tunnels no longer survive cleanup
* fix(voice-call): document bounded ngrok shutdown
* fix(voice-call): reap ngrok after startup timeout
* fix(voice-call): type ngrok process with ignored stdin
* fix(voice-call): compose ngrok timeout lifecycle
2026-07-18 09:09:29 +01:00
xingzhou and GitHub
75982be9a3
fix(cli): oversized secrets plans consume unbounded memory ( #109652 )
...
* fix(cli): reject oversized secrets plan files
* fix(cli): keep generated secrets plans applyable
* fix(cli): reject special plan files without blocking
* docs(cli): refresh secrets plan documentation map
2026-07-18 07:18:21 +01:00
713b6151d1
fix(qa): preserve crabbox command output unicode ( #110278 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 07:13:25 +01:00
xingzhou and GitHub
ab99029b3b
test(ui): stabilize browser initialization checks ( #110403 )
2026-07-18 07:10:47 +01:00
46101687e0
fix(ui): long chats retain generated image memory ( #110305 )
...
* fix(ui): bound managed image blob cache
* test(ui): prove managed image cache eviction
* fix(ui): reopen evicted managed images safely
Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com >
* fix(ui): preserve deferred image preview handle
Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 07:00:15 +01:00
66990b207f
fix(ci): bound CLI installer smoke curl with connect and max-time ( #109927 )
...
* fix(ci): bound CLI installer smoke curl with connect and max-time
The non-root CLI installer smoke pipes curl directly into bash under a
single docker-run timeout. curl has no default connect or total timeout,
so a stalled CDN connect or hung response body could pin the container
until the outer docker-run budget kills it. Bound the curl with the same
--connect-timeout 30 --max-time 300 shape already used by install-sh-smoke
and install-sh-e2e, and enable pipefail so curl failures are not masked
by the bash consumer.
* test(ci): cover bounded CLI installer pipeline
* fix(ci): bound preceding non-root installer download
* fix(ci): harden bounded installer URL handoff
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 06:59:29 +01:00
40e7447546
fix(imessage): clear stop timeout after child closes ( #108909 )
...
* fix(imessage): clear stop timeout after child closes
* test(imessage): preserve timer spy types
* test(imessage): preserve writable end return contract
* docs(imessage): explain stop timer cleanup
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 05:53:33 +01:00
xingzhou and GitHub
cc9c2c7cca
fix(ui): stop local assistant attachments from checking forever ( #109230 )
...
* fix(ui): stop local assistant attachments from checking forever
* test(ui): reject stalled attachment fetches with errors
2026-07-18 05:26:33 +01:00
xingzhou and GitHub
c6abd2e4d4
fix(elevenlabs): stop oversized streaming TTS audio ( #109621 )
...
* fix(elevenlabs): cap streamed TTS audio size
* fix(elevenlabs): avoid stream cap cancellation race
* fix(elevenlabs): release bounded stream reader locks
* fix(elevenlabs): release stream resources on early cleanup
* fix(elevenlabs): satisfy typed stream cleanup lint
2026-07-18 05:15:08 +01:00
xingzhou and GitHub
1bd6280f85
fix(doctor): preserve Unicode in migration reports ( #104851 )
2026-07-18 03:26:39 +01:00
c6d4559811
fix(mcp): doctor probes no longer start every server at once ( #109870 )
...
* fix(mcp): bound doctor server checks
* fix(mcp): defer doctor concurrency helper loading
* fix(mcp): preserve doctor check coverage
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 00:59:10 +01:00
2e64628a23
fix(azure): responses model aliases route correctly ( #93833 )
...
* fix(agents): keep Azure Responses model aliases routed
* Fix Azure Responses alias owner fallback
* Fix provider-level Azure alias owner
* Fix Azure custom deployment alias ownership
* Fix Azure alias endpoint ownership
* fix: remove redundant static catalog boolean wrapper
* fix(azure): preserve alias tests after main sync
* fix(azure): infer transport from retained alias
* fix(azure): derive transport from manifest alias
* chore: drop local CodeGraph metadata
* fix(azure): keep alias transport ownership consistent
* fix(azure): preserve alias ownership across fallbacks
* fix(agents): keep codex-only model suppression authoritative
* refactor(agents): split model compatibility helpers
* fix(agents): preserve conditional suppression ownership
* test(agents): deduplicate alias resolution assertions
* fix(agents): reject ambiguous model aliases
* test(agents): keep alias regressions within lint caps
* fix(agents): preserve alias target transport
* fix(agents): honor configured alias transports
* fix(agents): preserve retained alias transport
* fix(agents): narrow alias transport precedence
* test(agents): complete alias transport fixture
* test(agents): trim redundant alias fixture fields
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-17 17:47:08 +01:00
0a868179e4
fix(session): stop repeated restart recovery after retry budget ( #96230 )
...
* fix(session): bound restart recovery across gateway restarts
Co-authored-by: Mason Huang <masonxhuang@proton.me >
* style(session): format restart recovery changes
* fix(session): fence recovery notice state
* test(session): align internal recovery types
* test(session): type recovery completion fixture
* style(session): satisfy recovery lint rules
* test(plugin-sdk): split recovery boundary coverage
* test(plugin-sdk): use tracked recovery temp dirs
* fix(session): preserve stale admission errors
* fix(session): close recovery lifecycle races
* fix(session): rotate rejected recovery dispatch ids
* fix(session): enforce recovery quarantine boundaries
* fix(session): close restart recovery exhaustion gaps
* fix(session): preserve recovery command narrowing
* test(session): type restart recovery fixtures
* fix(session): enforce restart recovery quarantine
* fix(session): close restart recovery races
* fix(session): type recovery lifecycle state
* fix(session): enforce recovery ownership fences
* fix(session): fence recovery lifecycle completion
* fix(session): quarantine cross-process recovery
* fix(session): retire stale recovery ownership
* fix(session): restore rejected recovery admission
* fix(session): preserve restored recovery target
* fix(session): retry pending recovery races
* fix(session): preserve concurrent recovery aborts
* fix(session): quarantine recovery lifecycle state
* fix(session): settle exact recovery delivery fences
* fix(session): keep recovery restoration internal
* fix(session): close recovery admission races
* fix(session): retry durable recovery rollback
* fix(session): guard cached recovery settlement
* fix(session): close recovery ownership gaps
* fix(session): resume after delayed recovery rollback
* fix(session): finalize unrecoverable restart state
* fix(session): retry admitted recovery restoration
* fix(session): preserve recovery cleanup guarantees
* fix(session): restore failed terminal settlement
* chore(plugin-sdk): refresh API baseline
* fix(session): close recovery owner retry races
* test(session): type recovery owner fixture
* refactor(session): remove obsolete owner validator
* fix(session): preserve explicit abort recovery
---------
Co-authored-by: Mason Huang <masonxhuang@proton.me >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-17 15:36:09 +01:00
72f4cbd8f2
fix(line): prevent profile cache growth across users ( #109750 )
...
* fix(line): prevent profile cache growth across users
* docs: explain LINE profile cache eviction order
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-17 10:23:51 +01:00
ae40ce40d6
fix(auto-reply): prevent reply usage state growth ( #109610 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 21:43:50 -07:00
afd0fe32c2
fix(qa-lab): preserve boundary emoji in gateway startup diagnostics ( #104840 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 18:26:26 -07:00
xingzhou and GitHub
2b4b688581
fix(github-copilot): release failed catalog responses ( #109071 )
2026-07-16 17:07:24 -07:00
xingzhou and GitHub
2cd236385b
fix(reef): close provider streams after guard errors ( #109196 )
2026-07-16 15:53:23 -07:00
950ec3c620
fix(telegram): stalled getChat errors retain connections ( #109007 )
...
* fix(telegram): abort stalled getChat errors
* test(telegram): satisfy promise executor lint
* fix(telegram): close getChat lookup transports
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 13:50:50 -07:00
xingzhou and GitHub
0e1fad711c
fix(channels): prevent lifecycle listener buildup ( #109108 )
2026-07-16 13:08:12 -07:00
d15e84610a
fix(discord): keep voice allowlists from granting owner authority ( #108813 )
...
* fix(discord): keep voice allowlists from granting owner authority
* fix(discord): normalize wildcard voice admission
* refactor(discord): separate voice admission from ownership
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 08:44:42 -07:00
xingzhou and GitHub
16c2bbb540
fix(mantis): bound Crabbox source checkout ( #108940 )
2026-07-16 07:49:07 -07:00
0c067fbfa4
fix(ui): reject nondecimal cron repeat amounts ( #107480 )
...
* fix(ui): reject nondecimal cron repeat amounts
* fix(ui): satisfy cron LOC ratchet
* fix(ui): validate cron intervals exactly
Co-authored-by: xingzhou <zhang.guiping@xydigit.com >
* chore(pr): stage cron UI proof
Co-authored-by: xingzhou <zhang.guiping@xydigit.com >
* chore(pr): remove staged cron UI proof
Co-authored-by: xingzhou <zhang.guiping@xydigit.com >
* fix(ui): remove unused cron type export
Co-authored-by: xingzhou <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-16 04:04:01 -07:00
6e594ca7ca
fix(qa-lab): preserve Unicode in capped evidence previews ( #108545 )
...
* fix(qa-lab): preserve UTF-8 evidence previews
* fix(qa-lab): complete short evidence preview reads
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 03:50:30 -07:00
c7f58f5bed
fix(gateway): suppress MCP notification responses ( #101730 )
...
* fix(gateway): suppress mcp notification responses
* fix(gateway): MCP clients receive responses for JSON-RPC notifications
* Handle MCP lifecycle notifications before tool resolution
* Filter notification entries from internal-error batches
* fix(gateway): centralize MCP response eligibility
Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com >
* test(gateway): use public MCP loopback helper
Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 03:34:01 -07:00
cb7f37d0fa
fix(oc-path): reject oversized non-ASCII path URIs ( #108576 )
...
* fix(oc-path): reject oversized non-ASCII path URIs
* test(oc-path): cover exact UTF-8 byte limit
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 02:11:39 -07:00
f98de3fc25
fix(control-ui): preserve emoji in plugin fallback monograms ( #105240 )
...
* fix(control-ui): preserve emoji in plugin monograms
* test(ui): cover combining-mark monograms
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Colin Johnson <colin@solvely.net >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-16 00:59:37 -07:00
5a494acd64
fix(agents): tool calls lose arguments when Responses item IDs rotate ( #108630 )
...
* fix(agents): tool calls lose arguments when Responses item IDs rotate
* test(github-copilot): prove rotating tool item IDs
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-15 23:58:34 -07:00
cde78074b2
fix(providers): preserve UTF-8 in local service diagnostics ( #108518 )
...
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-15 18:26:50 -07:00
3b1f26bb0e
fix(control-ui): keep Workspace UI on the newest version after overlapping reloads ( #108204 )
...
* fix(control-ui): keep Workspace reloads on newest version
* test(control-ui): cover workspace loading ownership
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
* fix(control-ui): preserve workspace navigation intent
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
* fix(control-ui): settle superseded load state
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
* fix(control-ui): cancel removed workspace deep links
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
* fix(control-ui): prefer newer workspace documents
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
* refactor(control-ui): finalize workspace load ownership
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
* fix(control-ui): invalidate consumed workspace intent
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-15 17:30:26 -07:00
3b51889c3b
fix(extensions): prevent corrupted UTF-8 in api.exec output ( #108365 )
...
* fix(extensions): preserve split UTF-8 in api.exec
* test(agents): cover incomplete exec UTF-8 at EOF
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-15 15:59:59 -07:00
7ea249463c
fix(qa): handle Matrix CLI stream errors ( #102698 )
...
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
2026-07-15 12:33:35 -07:00
c508e4a2b8
fix(workspaces): array bindings can select the wrong item for malformed pointers ( #107317 )
...
* fix(workspaces): reject malformed array indices in file bindings
* test(workspaces): cover canonical array pointers
Co-authored-by: xingzhou <zhangguiping@xydigit.com >
* test(workspaces): reject zero-padded array index
Co-authored-by: xingzhou <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: xingzhou <zhangguiping@xydigit.com >
2026-07-14 21:40:39 -07:00
095693ee05
fix(control-ui): preserve emoji in long build branch labels ( #104901 )
...
* fix(control-ui): preserve emoji in long build branch labels
* refactor(ui): harden Unicode build labels
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 13:54:49 -07:00
e035601b9a
fix(agents): omitted image metadata reports inflated byte sizes ( #106066 )
...
* fix(agents): omitted image metadata reports inflated byte sizes
* fix(gateway): report decoded audio byte sizes
* refactor(agents): keep media sanitizers lean
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 07:17:41 -07:00
fe6e6a5072
fix(searxng): stop web search requests when runs are aborted ( #104216 )
...
* fix(searxng): cancel pending searches with parent runs
* fix(searxng): preserve parent cancellation
* refactor(web-search): isolate provider execution
* fix(web-search): use stable provider type
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 06:36:21 -07:00
8acbf209cd
fix(gateway): prevent broken emoji in WebSocket log IDs ( #105001 )
...
* fix(gateway): preserve Unicode in WebSocket log IDs
* test(gateway): cover UTF-16-safe log IDs
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 02:41:55 -07:00
46457b3610
fix(ui): Sessions filters silently accept trailing text ( #107072 )
...
* fix(ui): reject partial session filter values
* fix(ui): validate session filters strictly
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-13 22:22:20 -07:00
6b0a835116
fix(diagnostics): prevent broken emoji in long model identifiers ( #106986 )
...
* fix(diagnostics): preserve Unicode boundaries in timeline attributes
* fix(diagnostics): keep timeline truncation within LOC guard
* test(diagnostics): strengthen Unicode timeline regression
* test(diagnostics): type Unicode boundary cases
* test(diagnostics): await wrapped timeline call
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-13 21:41:15 -07:00
ad7f849490
fix(agents): prevent local provider sidecars surviving canceled startup ( #104070 )
...
* fix(agents): prevent local provider sidecars surviving canceled startup
* test(agents): harden local service abort regression
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-13 20:02:13 -07:00
xingzhou and GitHub
88a45fe495
fix(chat): keep large paste previews Unicode-safe ( #106328 )
2026-07-13 16:00:18 -07:00
c3cb1af93c
fix(transcripts): stop live capture when the agent run is canceled ( #104123 )
...
* fix(transcripts): stop live capture when the agent run is canceled
* fix(transcripts): preserve startup cleanup ownership
* fix(transcripts): keep runtime session type internal
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-13 03:11:25 -07:00
fb48df4a0f
fix(claude-cli): max-turn stops omit run and recovery context ( #94130 )
...
* fix(anthropic): handle max_turns stop reason and surface retry-limit details to users
* fix(anthropic): classify max_turns as length-limited
* fix(anthropic): preserve max_turns diagnostics
* fix(anthropic): preserve max_turns side-effect warning
* fix(claude-cli): max-turn stops omit run and recovery context
* fix(claude-cli): preserve max-turn terminal boundaries
* refactor(claude-cli): centralize terminal error conversion
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
* fix(claude-cli): warn before retrying max-turn failures
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
* fix(claude-cli): preserve max-turn stops through wrappers
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
* fix(claude-cli): prioritize terminal max-turn output
---------
Co-authored-by: 张贵萍 <zhangguiping@zhangguipingdeMac-mini.local >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 19:57:34 -07:00
57c2d65ad5
fix(apps): reconcile slow Apple chat replies ( #97722 )
...
* fix(apps): reconcile slow chat replies
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
* style(apps): wrap wait diagnostic
* chore(apps): refresh native i18n inventory
* chore: leave changelog release-owned
* style(apps): normalize Swift modifiers
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 17:01:40 -07:00
xingzhou and GitHub
8c98832a85
fix(mcp): reject hexadecimal timeout options ( #104633 )
2026-07-11 15:50:21 -07:00
4a0086d085
fix(sessions): prevent corrupted Unicode in persisted tool details ( #104540 )
...
* fix(sessions): prevent corrupted Unicode in persisted tool details
* test(sessions): consolidate UTF-16 persistence coverage
* test(sessions): build redaction fixture from placeholder
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 15:49:43 -07:00
2077ebe8b4
fix(exec): long retained process output corrupts boundary emoji ( #104531 )
...
* fix(process): preserve Unicode in captured output tails
* test(process): consolidate captured output coverage
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 15:35:59 -07:00
xingzhou and GitHub
fc0fd1bdda
fix(ui): browser annotation prompts corrupt boundary emoji ( #104396 )
2026-07-11 14:20:45 -07:00
03558dc008
fix(openrouter): Fusion prompt corrupts boundary emoji in model IDs ( #104433 )
...
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-11 12:11:36 -07:00
04037e35c0
fix(chat): tool titles corrupt boundary emoji in long inputs ( #104464 )
...
* fix(chat): tool titles corrupt boundary emoji in long inputs
* test(chat): simplify UTF-16 title boundary coverage
* test(chat): satisfy title boundary lint
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 10:45:04 -07:00
f73c5541fe
fix(agents): cancel pending bundle LSP requests ( #104110 )
...
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-11 22:02:43 +08:00
745cfc028e
fix(codex): bound shared app-server startup waits ( #89442 )
...
* fix(codex): isolated cron reports Codex startup stalls
* fix(codex): isolated cron reports Codex startup stalls
* fix(codex): bound shared app-server startup waits
Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com >
* test(codex): satisfy startup lifecycle checks
* test(codex): align deferred auth test type
* test(codex): type auth mock as async void
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 04:58:55 -07:00
af80736057
fix(qa-lab): keep bounded web snapshots UTF-16 safe ( #104249 )
...
* fix(qa-lab): keep bounded web snapshots UTF-16 safe
* fix(qa-lab): keep diagnostic truncation UTF-16 safe
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 04:49:00 -07:00
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
e009a41410
fix(agents): repair orphaned queued turns before assembly ( #90759 )
...
* fix(agent): keep orphaned user turns contextual
* test(agent): prove orphan repair targets active prompt
* fix(agent): repair orphaned user behind session metadata
* fix(agent): satisfy orphan repair CI types
* fix(agent): preserve orphan repair state entries
* fix(agent): filter repaired orphan from assembled history
* fix(embedded-agent): repair orphan session entry types
* fix(embedded-agent): remap replayed metadata labels
* fix(embedded-agent): skip dangling replay labels
* fix(agents): repair orphan history before assembly
---------
Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com >
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-07-11 09:56:40 +05:30
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
babc287afe
fix(slack): time out stalled external file uploads ( #103442 )
...
* fix(slack): time out stalled external file uploads
* fix(slack): scope external upload timeout
* fix(slack): restrict external upload transport
* fix(slack): restrict external upload transport
* fix(slack): preserve external upload retry safety
* test(slack): use compatible guarded fetch runtime
* test(plugin-sdk): update public export baseline
* fix(slack): harden external upload delivery
* refactor(slack): isolate upload completion
Keep ordinary Enterprise Grid traffic on the Bolt listener client. Use a team-scoped no-retry client only for one-shot external upload completion, while preserving the bounded raw-upload timeout and safe durable replay classification.
* fix(slack): refresh upload release metadata
* chore(slack): leave release notes release-owned
* fix(slack): classify failed uploads before completion
* fix(slack): keep upload completion untimed
* test(plugin-sdk): refresh public export baseline
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:52:35 +01:00
4257875448
fix(qa-lab): keep saved view text truncation UTF-16 safe ( #103789 )
...
* fix(qa-lab): keep saved view text truncation UTF-16 safe
* refactor(qa-lab): use semantic truncation helper
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:10:53 +01:00
xingzhou and GitHub
6f6c802ea5
fix(infra): keep restart log tails UTF-16 safe ( #103757 )
2026-07-10 22:50:25 +01:00
8d5f7e27b2
fix(sms): replayed Twilio webhooks process again after high inbound traffic ( #101107 )
...
* fix(sms): replayed Twilio webhooks process again after high inbound traffic
* fix(sms): harden Twilio replay saturation
* test(sms): expose response header spy
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 17:58:53 +01:00
4d004e2054
fix(logging): keep support diagnostics truncation UTF-16 safe ( #103580 )
...
* fix(logging): keep support diagnostics truncation UTF-16 safe
* docs(changelog): credit support diagnostics fix
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 16:43:47 +01:00
xingzhou and GitHub
328eaa3a23
fix(logging): keep redacted token hints UTF-16 safe ( #103341 )
2026-07-10 14:14:13 +01:00
87a652bc37
fix(fal): image generation hangs on slow generated-image downloads ( #103071 )
...
* fix(fal): timeout generated image downloads
* fix(fal): honor image operation timeout budget
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 06:08:03 +01:00
f1e7081b4d
fix(active-memory): recall context breaks when recent turns contain emoji ( #102877 )
...
* fix(active-memory): keep recall query snippets utf16-safe
* test(active-memory): exercise recall hook for utf16 bounds
* test(active-memory): detect only unpaired surrogates
* fix(active-memory): bound timeout partials safely
Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 18:03:34 +01:00
763ef215e0
fix(ui): keep event payload previews UTF-16 safe ( #102625 )
...
* fix(ui): keep event payload previews UTF-16 safe
* chore: use shared utf16 truncator in presenter
* fix(ui): use canonical utf16 truncator import
* refactor(ui): reuse canonical text truncation
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 15:01:17 +01:00
xingzhou and GitHub
4ad94febcb
fix(agents): keep cleanup timeout details UTF-16 safe ( #102565 )
2026-07-09 10:17:59 +01:00
b23fdcfac9
fix(codex): avoid broken emoji in dynamic tool timeout logs ( #102509 )
...
* fix(codex): keep dynamic tool log fields UTF-16 safe
* test(codex): narrow dynamic tool response item
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 09:26:22 +01:00
4adfc30b90
fix(codex): app inventory error diagnostics stay UTF-16 safe ( #102414 )
...
* fix(codex): keep app inventory error messages UTF-16 safe
* refactor(codex): unify app inventory error truncation
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 07:31:18 +01:00
1017ea5bc8
fix(discord): prevent stale gateway error listeners after restart ( #101617 )
...
* fix(discord): remove gateway error listener on dispose
* fix(discord): preserve late gateway error guard
* fix(discord): retain late gateway diagnostics
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 04:25:37 +01:00
xingzhou and GitHub
4e29b2f5ab
fix(slack): bound conversation info cache ( #101562 )
2026-07-07 05:55:00 -07:00
f14eb97ae7
fix(codex): honor Pro reasoning effort contracts ( #101484 )
...
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-07 03:13:50 -07:00
de152b1f65
fix(plugin-sdk): align speech runtime packaging ( #89899 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-07 07:38:41 +01:00
xingzhou and GitHub
e80e8a2b67
fix(device-pair): mobile pairing rejects local IPv6 cleartext URLs ( #101008 )
...
* fix(device-pair): allow local IPv6 pairing URLs
* test(device-pair): cover IPv6 cleartext lower bound
2026-07-06 22:35:09 +01:00
565097fc10
fix(media-understanding): video auto-selection runs without a model ( #99791 )
...
* fix: require video media provider models
* fix video media test typing and skip coverage
* fix(media-understanding): preserve self-defaulting video providers
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-06 12:42:01 -07:00
f805bb4e02
fix(feishu): avoid mention forwarding when bot open id is unavailable ( #100891 )
...
* fix(feishu): avoid forwarding mentions without bot open id
* fix(feishu): require bot identity for mention forwarding
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 18:54:02 +01:00
xingzhou and GitHub
5aa7c6267c
fix(irc): monitor stays disconnected after IRC socket closes ( #100799 )
2026-07-06 06:07:12 -07:00
d86cb67a4a
fix(agents): MiniMax VLM can consume oversized success responses ( #100694 )
...
* Cap MiniMax VLM success response reads
* fix: share bounded MiniMax response reader
* test: return fresh MiniMax response bodies
* test: allow stream prefetch at MiniMax bound
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 12:03:53 +01:00
a8709996a2
fix(agents): Anthropic-compatible streams hang on oversized partial responses ( #100686 )
...
* fix: bound Anthropic SSE pending frame buffer
* fix(anthropic): document parser-local SSE cap
* docs: place Anthropic hardening under fixes
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 12:01:59 +01:00
xingzhou and GitHub
37022833c5
fix(anthropic): include Fable 5 in context1m wrapper ( #100572 )
2026-07-06 02:07:36 -07:00
xingzhou and GitHub
cecb6cf600
fix(openai): keep missing-auth hint on default model ( #100579 )
2026-07-06 08:56:20 +01:00
xingzhou and GitHub
a13acacd3c
fix(discord): keep command previews emoji-safe ( #99539 )
2026-07-06 05:40:39 +00:00
7a49b160a4
fix(browser): downloads complete over CDP connections ( #89416 )
...
* fix(browser): surface navigate downloads in CDP mode
* Validate navigation downloads before saving
* fix(browser): observe navigation download capture timeouts
* refactor(browser): unify managed download capture
* test(browser): satisfy download fixture lint
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 02:26:20 +01:00
a77ea59ce7
fix(bedrock): bound Mantle model discovery fetches ( #99961 )
...
* fix(bedrock): bound Mantle model discovery fetches
* fix(bedrock): release rejected Mantle responses
* docs(changelog): position Bedrock Mantle fix
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 02:21:00 +01:00