Commit Graph

18082 Commits

Author SHA1 Message Date
Dallin Romney
56ffa2bca4 fix(qa): preserve Slack fallback evidence (#117420) 2026-08-01 21:31:41 +08:00
Dallin Romney
39cc0a3199 fix(qa): Matrix replies disappear after final replacement (#117390)
* fix(qa): preserve Matrix relations through replacements

* fix: honor Matrix replacement relation semantics

* fix(qa): reconcile late Matrix replacement targets

* test(qa): exercise Matrix recorder through public behavior
2026-08-01 21:27:15 +08:00
Jacob Tomlinson
20ac22f647 fix(codex): guide recovery from unimported agent auth (#116807)
* fix(codex): diagnose unimported agent auth

Add agent-scoped Codex migration guidance and expose a validated --agent target so non-default credentials cannot be imported into the default agent store.

Fixes #116763

* fix(codex): surface auth migration before route planning

* fix(codex): scope auth migration recovery

* fix(codex): preserve API key auth fallback

* test: repair memory importer routing expectation

* test: drop superseded memory routing repair

* test(tui): report PTY progress verbosely

---------

Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com>
2026-08-01 07:08:02 -06:00
Dallin Romney
fb9c8e74e6 fix(qa): keep Matrix SDK as QA Lab development dependency (#117392) 2026-08-01 20:59:04 +08:00
Peter Steinberger
8738fe1354 refactor(codex): deduplicate generated protocol schemas (#117382) 2026-08-01 05:32:37 -07:00
Vincent Koc
f117c2166d chore: merge main into xai realtime lifecycle
* origin/main:
  refactor(doctor): unify legacy auth migration ownership (#117361)
  fix(plugins): surface actionable doctor warnings (#117357)
  fix(ci): use corrected Kova release evaluator (#116920)
  fix(ci): stabilize release validation assertions (#117377)
  refactor(memory): use sqlite transcript identities (#117334)
  fix(plugins): require tracked owners for targeted updates (#117333)
2026-08-01 19:54:53 +08:00
Vincent Koc
11239da88f fix(ci): stabilize release validation assertions (#117377)
* test(plugins): align auto-enable metadata assertion

* test(memory): isolate agent enablement coverage
2026-08-01 19:40:51 +08:00
Peter Steinberger
597699401a refactor(memory): use sqlite transcript identities (#117334) 2026-08-01 04:38:40 -07:00
Vincent Koc
378e7d6b2c fix(xai): preserve immediate restart ownership 2026-08-01 19:34:24 +08:00
Vincent Koc
a4496a7778 test(xai): cover realtime lifecycle ownership 2026-08-01 19:30:58 +08:00
Vincent Koc
b4ec765e00 fix(xai): own realtime connection lifecycle 2026-08-01 19:30:55 +08:00
Peter Steinberger
a88f3ffc96 fix(line): preserve ordered oversized table delivery (#117335)
* fix(line): preserve ordered delivery of oversized markdown tables

* fix(line): type ordered delivery at provider and test boundaries

* fix(line): narrow ordered provider messages to flex or text

---------

Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 03:44:30 -07:00
Peter Steinberger
dabba0ce10 fix(openrouter): apply image request transport policy (#117336)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 03:32:37 -07:00
Peter Steinberger
aa2a5c96f6 feat(channels): record account lifecycle facts and retire inferred health vocabularies (#117300)
* fix(channels): record account lifecycle facts

* fix(channels): bound recorded lifecycle grace

* fix(channels): preserve authored health state

* test: dedupe health snapshot type literal and fix spread order
2026-08-01 02:51:47 -07:00
Peter Steinberger
3edbe19fbd fix(canvas): remove unsupported snapshot delay hint (#117326)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 02:44:22 -07:00
Peter Steinberger
060a541c92 fix(canvas): honor paired-node invocation deadlines (#117316)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 02:40:19 -07:00
Peter Steinberger
f216d3cc86 refactor(memory): unify session ingestion (#117293) 2026-08-01 02:12:50 -07:00
Miorbnli
0d8b70f39e fix(channels): strip internal tool text in Reef and Zalo Personal (#112621) 2026-08-01 02:10:19 -07:00
Peter Steinberger
b721cffa44 fix(inference): simplify lifecycle and preserve Codex tool identity (#117298) 2026-08-01 02:05:45 -07:00
Vincent Koc
71a09dcfe3 fix(codex): preserve app-server close diagnostics (#117296) 2026-08-01 17:01:42 +08:00
Harjoth Khara
41051fe37c fix(imessage): keep fenced role-marker mapping keys out of the outbound stripper (#117159)
* fix(imessage): stop the outbound sanitizer deleting fenced role keys

sanitizeOutboundText strips standalone `user:`/`system:`/`assistant:`
lines (leaked turn boundaries), `#+#` separators and `assistant to=`
markers, but the three regexes had no code-fence awareness. A bare YAML
mapping key like `user:` on its own line inside a ```yaml block matched
ROLE_TURN_MARKER_RE and was silently deleted before iMessage delivery,
reparenting its children under the wrong node — still-valid YAML, wrong
meaning, and nothing signalling a line was removed.

Skip matches whose offset falls inside a markdown code region for all
three patterns, reusing findCodeRegions/isInsideCode already applied by
the sibling reflection-guard on this channel. Regions are recomputed per
pass because each strip shifts later offsets. Leaked markers in prose are
still stripped.

Refs: #116942

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* test(imessage): cover code-aware marker stripping

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-01 16:52:47 +08:00
DaigoSoup
75830f027a fix(synology-chat): deliver long messages without webhook rejection (#116645)
* fix(synology-chat): chunk long messages before webhook delivery

* test(synology-chat): expose chunk limit in channel mock
2026-08-01 01:51:52 -07:00
Peter Steinberger
b0b708d919 fix(canvas): emit successful control results in JSON mode (#117297)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 01:28:41 -07:00
Peter Steinberger
338a7ccb2f fix(imessage): settle native inbound reply delivery (#117282)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 01:24:05 -07:00
Peter Steinberger
8b7fad18ec fix(line): centralize card and template message alt text (#117280)
* fix(line): unify card and template alternative text limits

* test(line): use synchronous provider request listener

---------

Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 01:17:34 -07:00
Peter Steinberger
870c6b240e fix(media): validate provider-owned generated media downloads (#117281)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 01:05:44 -07:00
Peter Steinberger
a1f2fb45bc fix(feishu): restore custom HTTPS API domains (#117278)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 01:00:09 -07:00
Peter Steinberger
04f9a204fd fix(memory): reuse targeted session corpus snapshot (#117247) 2026-08-01 00:53:14 -07:00
joshavant
07b7d6446c fix(matrix): reconcile durable sends after response loss 2026-08-01 02:45:12 -05:00
Vincent Koc
f5a8cb02ea test(release): repair full validation regressions (#116931)
* test(discord): mock thread delete listener

* test(qa): expect blocked update evidence

* test(telegram): preserve recovered context body

* fix(test): configure kitchen-sink personality

* test(browser): expect canonical staged upload paths

* test(browser): canonicalize macOS download roots

* test(feishu): seed legacy session rows offline

* test(telegram): isolate message context session stores

* test(qqbot): expect canonical media paths

* test(anthropic): match canonical transcript paths

* test(qa): expect canonical session store keys

* test(gateway): isolate rewind media reads

* test(release): review plugin child spawns

* test(plugins): expect process-stable manifest metadata

* test(google): retire usage telemetry contracts
2026-08-01 15:42:50 +08:00
wahaha1223
dccb1b9013 fix(linux-canvas): report socket watcher fallback (#109502) 2026-08-01 00:36:15 -07:00
Vincent Koc
754dcb8b2f merge: preserve verified completion handoff series (#117148)
* commit '619682ed010f4e6c56c73feb4948fd7265083e10':
  fix(agents): bind completion messages to source
  fix(agents): mint completion delivery grant
  fix(agents): retain tools for direct completion delivery
  fix(agents): integrate verified completion delivery
  test(codex): use typed completion handoff fixture
  fix(agents): verify completion tool handoffs
2026-08-01 15:35:41 +08:00
Peter Steinberger
378d4ff938 fix(codex): preserve authoritative turn completion (#117185)
Retain terminal and assistant-completion facts when pre-start notifications exceed the bounded buffer. Exclude commentary from replies, accept legacy unphased final messages, and let completed terminal items own the final answer while rejecting interrupted, failed, or non-terminal outcomes.

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: Peter Steinberger <58493+steipete@users.noreply.github.com>
2026-08-01 15:34:30 +08:00
Ayaan Gazali
11069c3df5 fix(channels): config validation rejects documented channels.<id>.configWrites on 13 channels (#117206) 2026-08-01 15:33:16 +08:00
Ahmed Tarek
730cf56915 fix(msteams): prevent duplicate final replies (#116398)
* fix(msteams): preserve message-tool thread routing

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>

* test(msteams): prove thread-aware final dedupe

* fix(agents): suppress duplicate source previews

* fix(agents): dedupe current-source reply previews

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-01 15:32:56 +08:00
Peter Steinberger
edfeec49e7 refactor(channels): centralize progress draft events (#117269) 2026-08-01 00:26:56 -07:00
Peter Steinberger
7aacd1314d fix(slack): recover bot identity after transient auth.test failure (#117253)
* fix(slack): recover bot identity after transient auth.test failure

* docs(slack): document identity selection invariant

* fix(slack): resolve startup auth fetch through plugin runtime
2026-08-01 00:23:03 -07:00
Peter Steinberger
08fc4f5a06 fix(telegram): hide disabled send actions from discovery (#117241)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 00:15:17 -07:00
Peter Steinberger
8ed6c98b08 fix(whatsapp): reuse hydrated group participant metadata (#117234)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 00:11:34 -07:00
Peter Steinberger
1f130ce61d fix(whatsapp): normalize provider self-echo identities (#117228)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 00:08:28 -07:00
Peter Steinberger
ee320a6e41 fix(imessage): preserve outbound attachment delivery facts (#117238)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 23:36:48 -07:00
Peter Steinberger
51c41c25c8 fix(minimax): validate complete generated audio at producer owners (#117195)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 23:29:50 -07:00
Peter Steinberger
0a146d5a18 fix(line): centralize Flex alternative-text bounds (#117217)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 23:23:52 -07:00
Peter Steinberger
ad3e36ef33 fix(feishu): unify outbound delivery lifecycle (#117223)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 23:16:04 -07:00
Yuval Dinodia
2364078063 fix(clickclack): thread replies stop being answered past the 100-reply thread window (#117225)
* fix(clickclack): answer thread replies past the server thread-reply window

Thread replies stopped being answered once a ClickClack thread passed 100
replies, with no reply, no transcript entry, no gateway warning, and no
replay after reconnect.

The gateway resolved a thread.reply_created event by fetching the whole
thread and searching its reply list. The ClickClack thread endpoint caps
that response at 100 earliest replies by default, so reply 101 was absent,
the lookup returned null, and the event was treated as handled while the
websocket cursor advanced past it. A DM thread reply was worse: it hit the
DM branch first, and thread replies never appear in the root DM timeline
that branch pages, so every DM thread reply was dropped.

Resolve the event's own message_id through the authoritative single-message
endpoint the plugin already uses, which collapses the three window
heuristics into one canonical path. Transient failures still propagate so
reconnect replays them; only a 404 resolves to unreadable, and that now
records an operator warning instead of counting as a handled event.

* test(clickclack): harden reply recovery proof

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-01 14:10:47 +08:00
Vincent Koc
6922ddd936 fix(qa): isolate runner discovery facades (#117203) 2026-08-01 13:40:11 +08:00
Dallin Romney
bcff3a0de3 fix(qa): bind Codex auth fixture to runtime version (#116859)
* fix(qa): update Codex auth fixture protocol version

* test(qa): bind Codex auth fixture to runtime version

* test(qa): load Codex fixture version through public surface
2026-08-01 13:36:31 +08:00
Dallin Romney
947886e764 fix(qa): align release harness contracts (#116812) 2026-08-01 13:24:10 +08:00
Dallin Romney
8b1a9ccaa4 fix(voice-call): preserve tool invocation context (#116856)
* fix(voice-call): preserve tool invocation context

* fix(voice-call): trust requester tool context

* style(voice-call): format invocation context test
2026-08-01 13:23:24 +08:00
Dallin Romney
2261a9c5b4 test(qa): align fanout catalog with public evidence (#117202) 2026-08-01 13:07:18 +08:00