Commit graph

6900 commits

Author SHA1 Message Date
Peter Steinberger
b34ece705f
fix: retire idle bundled MCP runtimes 2026-04-25 07:49:12 +01:00
Alex Fries
66e66f19c6
feat(memory-core): expose hybrid search component scores
Expose raw `vectorScore` and `textScore` alongside the combined hybrid memory search `score`.

- Preserve vector/text component scores from `mergeHybridResults` output.
- Add optional component-score fields to both memory host SDK type surfaces.
- Extend hybrid merge tests for vector-only, text-only, and overlapping result cases.
- Document that component scores remain raw retrieval diagnostics while temporal decay/MMR only adjust or reorder the combined ranking `score`.

Closes #68166.

Maintainer verification:
- `pnpm test extensions/memory-core/src/memory/hybrid.test.ts`
- `pnpm check:changed`
- Fresh GitHub checks passed.

Co-authored-by: Alex Fries <alex@engramlabs.io>
2026-04-25 01:46:03 -05:00
Peter Steinberger
a983ea61ac
feat(google-meet): include transcript entries in artifacts 2026-04-25 07:43:49 +01:00
Vincent Koc
4df0e10623
fix(feishu): back off failed streaming card starts 2026-04-24 23:41:01 -07:00
Peter Steinberger
d37f165bee
feat(google-meet): add oauth doctor 2026-04-25 07:40:25 +01:00
Peter Steinberger
2ff7eb36cf
fix(models): expose codex runtime context caps 2026-04-25 07:38:31 +01:00
Peter Steinberger
1752b15a21
feat(google-meet): add artifacts and attendance commands 2026-04-25 07:36:10 +01:00
Peter Steinberger
209d50b52c
feat(browser): add coordinate click action
Co-authored-by: Daniel Lutts <daniellutts@10-19-94-204.dynapool.wireless.nyu.edu>
2026-04-25 07:31:33 +01:00
ToToKr
2aa313cd90
fix(feishu): prevent duplicate message after streaming card close (#67791) (#68491)
* fix(feishu): prevent duplicate message after streaming card close (#67791)

When onIdle closed the streaming card before the final delivery arrived, the streamed text was not tracked in deliveredFinalTexts. The subsequent final payload bypassed the streaming?.isActive() guard (already closed) and fell through to the non-streaming path, sending the same content as a redundant text/card message. Track raw streamText in deliveredFinalTexts when closeStreaming finalizes the card so the duplicate-final check catches it.

* test(feishu): cover idle streaming final dedupe

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-24 23:18:10 -07:00
Peter Steinberger
a7c8a1ba0d
fix(browser): finish existing-session attach port (#57245) 2026-04-25 07:08:36 +01:00
Peter Steinberger
ad8737af2c
fix(browser): tighten WS3 status probes
# Conflicts:
#	extensions/browser/src/browser/chrome-mcp.test.ts
#	extensions/browser/src/browser/chrome-mcp.ts
#	extensions/browser/src/browser/routes/basic.ts
2026-04-25 07:08:35 +01:00
Peter Steinberger
3c31facfa2
Fix sticky Chrome MCP status probes
# Conflicts:
#	extensions/browser/src/browser/chrome-mcp.ts
#	extensions/browser/src/browser/server-context.ts
2026-04-25 07:08:35 +01:00
Peter Steinberger
8e18b3cc20
fix(browser): report attach-only profile transport truthfully
# Conflicts:
#	extensions/browser/src/browser/routes/basic.ts
2026-04-25 07:08:35 +01:00
Peter Steinberger
0ff7aa5c3d
fix(browser): retry stale cached playwright attach once
(cherry picked from commit ec252ebd7b45d54e431e0d7599532e5a0c1a9b73)

# Conflicts:
#	extensions/browser/src/browser/pw-session.ts
2026-04-25 07:08:35 +01:00
Peter Steinberger
cfb551c709
test(openrouter): cover DeepSeek live cache hits 2026-04-25 06:49:08 +01:00
Peter Steinberger
537a8e25ed
fix(signal): classify filename-only voice notes 2026-04-25 06:45:54 +01:00
Sukhdeep
6c1d4414d9
fix(browser): dedupe concurrent lazy start (#61772) (#61772)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-25 06:39:14 +01:00
Peter Steinberger
d79b9e0af4
fix(openrouter): allow DeepSeek cache-ttl eligibility 2026-04-25 06:38:34 +01:00
Peter Steinberger
c2a2a481b2
fix(whatsapp): preserve audio-as-voice payload intent 2026-04-25 06:35:57 +01:00
Peter Steinberger
576c6c240f
fix(discord): collapse cron announce text 2026-04-25 06:22:30 +01:00
Sean Coley
a35333abe1
fix(browser): recover stale Chromium profile locks (#62935) (#62935)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-25 06:21:49 +01:00
Peter Steinberger
439f353cf6 fix(discord): bridge undici multipart types 2026-04-25 06:18:10 +01:00
TC500
52ebdabcfd fix(discord): use undici form data for multipart uploads 2026-04-25 06:18:10 +01:00
Vincent Koc
f0ceb4b68f
fix(cron): isolate fresh cron session state
* fix(cron): isolate fresh cron session state

* fix(cron): deep-copy isolated session state

* fix(cron): reset isolated session context

* test(providers): avoid shared mock races

* test(providers): type injected stream fakes

* ci: refresh package boundary on reply runtime changes

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-24 22:15:19 -07:00
Peter Steinberger
8acc92c881
feat(google): support Gemini TTS style profile 2026-04-25 06:11:23 +01:00
Peter Steinberger
104a8f3f52
test(browser): handle oom wrapper in chrome launch assertion 2026-04-25 06:02:03 +01:00
Peter Steinberger
fa22ca8883
test(qa): cover stale subagent child links
Some checks are pending
CI / -5 (push) Blocked by required conditions
CI / checks-node-core (push) Blocked by required conditions
CI / extension-fast (push) Blocked by required conditions
CI / check-lint (push) Blocked by required conditions
CI / check-policy-guards (push) Blocked by required conditions
CI / check-preflight-guards (push) Blocked by required conditions
CI / check-prod-types (push) Blocked by required conditions
CI / check-strict-smoke (push) Blocked by required conditions
CI / check-test-types (push) Blocked by required conditions
CI / check (push) Blocked by required conditions
CI / check-additional-boundaries (push) Blocked by required conditions
CI / check-additional-extension-bundled (push) Blocked by required conditions
CI / check-additional-extension-channels (push) Blocked by required conditions
CI / check-additional-extension-package-boundary (push) Blocked by required conditions
CI / check-additional-runtime-topology-architecture (push) Blocked by required conditions
CI / check-additional (push) Blocked by required conditions
CI / check-docs (push) Blocked by required conditions
CI / skills-python (push) Blocked by required conditions
CI / -6 (push) Blocked by required conditions
CI / -7 (push) Blocked by required conditions
CI / macos-swift (push) Blocked by required conditions
CI / -8 (push) Blocked by required conditions
Docs Sync Publish Repo / sync-publish-repo (push) Waiting to run
Docs / docs (push) Waiting to run
Plugin NPM Release / publish_plugins_npm (push) Blocked by required conditions
Plugin NPM Release / preview_plugin_pack (push) Blocked by required conditions
Plugin NPM Release / preview_plugins_npm (push) Waiting to run
Workflow Sanity / no-tabs (push) Waiting to run
Workflow Sanity / actionlint (push) Waiting to run
Workflow Sanity / generated-doc-baselines (push) Waiting to run
2026-04-25 05:59:42 +01:00
Peter Steinberger
e31aef7e19
fix(tts): migrate legacy edge config in doctor 2026-04-25 05:55:54 +01:00
Peter Steinberger
b0e834b2d9
fix(browser): support per-profile executable paths
Co-authored-by: nobrainer-tech <nobrainer-tech@users.noreply.github.com>
2026-04-25 05:50:20 +01:00
Peter Steinberger
938b53698e
test(voice-call): cover tunnel startup 2026-04-25 05:43:42 +01:00
Peter Steinberger
2b87d9f3ec
fix(voice-call): reject local webhook fallback 2026-04-25 05:41:29 +01:00
Peter Steinberger
b8239be46b
fix(voice-call): settle cleared tts queue 2026-04-25 05:38:36 +01:00
Jamil Zakirov
52267a6b75
fix(auto-reply): run message_sending before inbound delivery
Run inbound auto-reply delivery through message_sending hooks before sending replies.

Co-authored-by: Jamil Zakirov <15848838+jzakirov@users.noreply.github.com>
2026-04-25 10:07:35 +05:30
Peter Steinberger
6602092a40
fix(browser): require admin scope for browser request
Co-authored-by: RichardCao <RichardCao@users.noreply.github.com>
2026-04-25 05:27:20 +01:00
Peter Steinberger
c2139635ff
fix: format acpx doctor details safely 2026-04-25 05:15:00 +01:00
Peter Steinberger
97fd45a8c1
fix: honor acp allowed agents for acpx probe 2026-04-25 05:10:49 +01:00
Peter Steinberger
fa976e5b93
feat: update opencode-go default model
Co-authored-by: masrlinu <5259918+masrlinu@users.noreply.github.com>
2026-04-25 05:03:32 +01:00
Michiel van den Donker
2c716f5677
fix: enforce memory search session visibility (#70761) (thanks @nefainl)
* [EV-001] memory-core: filter memory_search session hits by visibility

- Move session visibility + listSpawnedSessionKeys to plugin-sdk; sync test
  hook with sessions-resolution __testing.setDepsForTest
- Extract loadCombinedSessionStoreForGateway to config/sessions; re-export
  from gateway session-utils
- Add session-transcript-hit stem resolver for builtin + QMD paths
- Post-filter memory_search results before citations/recall; fail closed when
  requester session key missing; optional corpus=sessions
- Tests: stem extraction, visibility filter smoke, existing suites green

* chore: sync plugin-sdk exports for session-transcript-hit and session-visibility

Run pnpm plugin-sdk:sync-exports so package.json exports match
scripts/lib/plugin-sdk-entrypoints.json. Fixes contract tests and
lint:plugins:plugin-sdk-subpaths-exported for memory-core imports.

* fix(EV-001): cross-agent session memory hits + hoist combined store load

- resolveTranscriptStemToSessionKeys: stop filtering by requester agentId so
  keys from other agents reach createSessionVisibilityGuard (a2a + visibility=all).
- Re-export loadCombinedSessionStoreForGateway from session-transcript-hit;
  filterMemorySearchHitsBySessionVisibility loads the combined store once per pass.
- Drop unused agentId from filter params; extend tests (Greptile/Codex review).

* fix(memory_search): honor corpus=sessions before maxResults cap

Pass sources into MemoryIndexManager.search so FTS/vector queries add
source IN (...) before ranking and top-N slice (Codex: non-session hits
could fill the window).

QMD path: oversample fetch limit for single-source recall, filter by
source, then diversify/clamp to the requested maxResults.

Wire corpus=sessions from tools; extend MemorySearchManager opts and
wrappers.

* fix(memory_search): apply corpus=memory source filter like sessions

Pass sources: ["memory"] into manager.search so maxResults applies only
within the memory index; post-filter for defense in depth. Document
corpus=memory in the tool description.

* fix: scope qmd session memory search

* fix: enforce memory search session visibility (#70761) (thanks @nefainl)

---------

Co-authored-by: NefAI <info@nefai.nl>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-25 09:30:21 +05:30
Peter Steinberger
978a50a3c5
fix(minimax): normalize tts pitch for api 2026-04-25 04:58:20 +01:00
Peter Steinberger
0f0c855a8b
fix(google-meet): surface browser create manual actions 2026-04-25 04:57:06 +01:00
Peter Steinberger
70fd1c91aa
fix(channels): harden tool progress previews 2026-04-25 04:54:29 +01:00
Peter Steinberger
225ff9a866
fix(minimax): transcode voice-note tts to opus 2026-04-25 04:52:25 +01:00
Peter Steinberger
7e52223d32
fix: register opencode image understanding 2026-04-25 04:50:01 +01:00
Peter Steinberger
7875092f4d
feat(openrouter): add tts provider 2026-04-25 04:36:49 +01:00
Peter Steinberger
6f72b74cec
fix: strip opencode image reasoning none 2026-04-25 04:35:12 +01:00
Peter Steinberger
b0709a894d
test(deepseek): cover V4 replay live 2026-04-25 04:30:38 +01:00
Peter Steinberger
05fbdd4b28
fix: handle missing tailscale binary 2026-04-25 04:28:32 +01:00
Peter Steinberger
678ed5d512
fix(deepseek): normalize V4 tool-call replay 2026-04-25 04:25:44 +01:00
Peter Steinberger
c81b3ab6b9
fix(minimax): mark tts output voice-compatible 2026-04-25 04:25:12 +01:00
Peter Steinberger
0764f86e18 test(memory): keep embedding provider selection isolated 2026-04-25 04:17:27 +01:00