Commit Graph

15979 Commits

Author SHA1 Message Date
Ayaan Zaidi
8b66fe773f feat(mcp): deliver requester-scoped MCP to shared-thread harnesses
Requester-scoped servers never enter harness-native MCP config: Codex
thread and CLI user-MCP projections partition them out (fail-closed,
static-partition fingerprints stay sender-independent so shared threads
never rotate). Codex delivers them as per-attempt dynamic tools through
a scoped-only runtime path on the same core manager, with a
session-stable advertised catalog so authed and unauthed senders share
one spec surface; unauthed calls get a clean not-connected tool error.
New SDK seam materializeRequesterScopedMcpToolsForHarnessRun lets any
future harness consume the same contract.
2026-07-14 17:09:53 +05:30
Peter Steinberger
2b0cd2761c test(anthropic): type node invoke mock from runtime (#107421) 2026-07-14 04:39:47 -07:00
Peter Steinberger
e798a76662 refactor(schemas): use TypeBox native enums 2026-07-14 04:25:58 -07:00
Peter Steinberger
97df597688 fix(twitch): abort timed-out user lookups (#107360)
Co-authored-by: Alix-007 <li.long15@xydigit.com>
2026-07-14 04:22:34 -07:00
Peter Steinberger
5688d90bf3 fix(signal): await daemon exit before restart (#107409)
Co-authored-by: zhoukailian <2415699291@qq.com>
2026-07-14 04:21:51 -07:00
Peter Steinberger
0604903f88 fix(session-catalog): authorize paired-node reads (#107410) 2026-07-14 04:19:09 -07:00
Peter Steinberger
b911f94be7 fix(signal): reconnect receive loop after stalled container handshake (#107386)
* fix(signal): bound container receive handshake waits

Co-authored-by: NIO <hu.genshen@xydigit.com>

* test(signal): stabilize adapter mocks

---------

Co-authored-by: NIO <hu.genshen@xydigit.com>
2026-07-14 04:13:12 -07:00
Peter Steinberger
4ea1c71b88 fix(signal): keep username targets out of phone normalization (#107365)
* fix(signal): canonicalize username targets

Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>

* fix(signal): canonicalize username targets

---------

Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
2026-07-14 04:11:46 -07:00
Peter Steinberger
c56d1bbbbb fix(reef): send through the connected gateway (#107373)
* fix(reef): route outbound through gateway

* chore: keep Reef release note in PR
2026-07-14 04:08:36 -07:00
Peter Steinberger
6ceb72d2bd refactor(memory): split QMD manager responsibilities (#107381)
* refactor(memory): split QMD manager responsibilities

* fix(memory): keep QMD helper types private

* style(memory): format QMD debug types
2026-07-14 04:07:51 -07:00
Peter Steinberger
dd42e80480 refactor(qa-lab): split mock and Slack runtimes (#107377)
* refactor(qa-lab): split mock and Slack runtimes

* refactor(qa-lab): narrow Slack helper exports
2026-07-14 04:06:48 -07:00
Peter Steinberger
236a6b815c refactor(diffs): trim internal export surface (#107400) 2026-07-14 04:02:26 -07:00
Peter Steinberger
610c25881b fix(feishu): remove unused schema builder export (#107395) 2026-07-14 03:56:36 -07:00
Peter Steinberger
ca83f1ca51 fix(ci): restore release validation after runtime migrations (#107371)
* test(ci): repair plugin prerelease validation

* test(zalo): preserve adapter narrowing in sender helpers

* test(ci): track current bundled startup metadata

* fix(google-meet): refresh plugin shrinkwrap
2026-07-14 03:52:44 -07:00
Peter Steinberger
e488dc0012 feat(sessions): signal watchers when an adopted upstream disappears (#107356) 2026-07-14 03:51:20 -07:00
Peter Steinberger
3229fbdc48 fix(config): render Feishu group policy in Form mode (#107336)
* fix(ui): scope unsupported config guidance to fields

* fix(config): export Feishu transform inputs

* chore: remove release-owned changelog entry
2026-07-14 03:42:43 -07:00
Peter Steinberger
723895d713 fix(deps): regenerate google-meet shrinkwrap for jszip
5c509efb02 added jszip without regenerating npm-shrinkwrap.json,
failing check-shrinkwrap on main.
2026-07-14 03:41:49 -07:00
Peter Steinberger
5c509efb02 refactor(google-meet): use JSZip for exports 2026-07-14 03:29:43 -07:00
Peter Steinberger
70dbbf3bcd fix(msteams): rename shadowed close callback in lifecycle test
ee472357cb added an app.listen callback param that the inner
server.close callback shadowed, failing oxlint no-shadow on main.
2026-07-14 03:17:59 -07:00
Ayaan Zaidi
42bd094c12 chore(telegram): keep test-only spool constants module-local
The retention bound, claim lease default, and liveness options type were
exported only for tests, which fails the dead-export gate. Tests pin the
policy literals locally instead.

Refs #107246
2026-07-14 15:40:29 +05:30
Ayaan Zaidi
c130ceb5e1 fix(telegram): accept delayed cross-lane spool replays exactly once
Telegram update ids are global across chats, but the update tracker rejected
any id at or below its single high-water mark. When one lane was delayed
while other lanes completed newer ids, the delayed durable-spool replay was
rejected as accepted-watermark and tombstoned without dispatch - silent
message loss. The tracker now rejects only restored-offset ids and exact ids
it already accepted, with the accepted-id set pruned at the persisted offset
plus a bounded retention window; the startup-only floor-replay special case
is deleted.

Refs #107246
2026-07-14 15:40:29 +05:30
Ayaan Zaidi
f942734bb1 fix(telegram): bind spool claim liveness to process start identity
Spool claim owners now encode pid:starttime:uuid, and live-owner detection
requires the pid to exist with a matching process start time. Bare
process.kill(pid, 0) treated Linux thread IDs and recycled PIDs of the new
gateway as a live foreign owner, wedging a chat lane behind a dead claim for
the full 30-minute lease after a restart. Legacy pid:uuid and explicit-x
owners keep existence-only lease protection so rolling upgrades and
no-starttime platforms cannot double-dispatch a live worker's claim.

Refs #107246
2026-07-14 15:40:29 +05:30
Peter Steinberger
ee472357cb refactor(msteams): use Express listen errors 2026-07-14 03:06:11 -07:00
Alix-007
a9c70f3956 fix(twitch): time out Helix user resolution lookups (#105883)
* fix(twitch): time out Helix user resolution lookups

* test(twitch): satisfy resolver lint guards

* test(twitch): satisfy resolver account typing

* test(twitch): prove resolver recovery after timeout

* test(twitch): use explicit credential placeholder

* chore(changelog): defer Twitch note to release

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-14 02:56:39 -07:00
Peter Steinberger
cd7290bc29 fix(discord): show only agent status in progress drafts (#107338)
* fix(discord): show agent status only in progress drafts

* test(discord): preserve explicit progress label expectation

* test(telegram): update default progress label fixtures

* test(ui): use supported hidden-label assertions
2026-07-14 02:52:01 -07:00
Peter Steinberger
673b163b72 refactor(cli): use Commander native APIs 2026-07-14 02:45:52 -07:00
Peter Steinberger
88e5dc1219 refactor(oc-path): reuse YAML path resolution 2026-07-14 02:33:33 -07:00
Dallin Romney
561cf56c53 refactor(workboard): share control ui contract (#102271)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-14 02:33:22 -07:00
Peter Steinberger
92cca9343e feat(linux): headless node device capabilities (camera, location, notifications) (#107193)
* feat(linux): add node device capabilities

* fix(linux-node): actionable pending-approval error + node-host advertise integration test

* fix(linux-node): map geoclue access-denied to LOCATION_DISABLED; floor camera maxWidth to avoid zero-height scale

* fix(linux-node): clamp small camera maxWidth to 2 instead of default

* docs(linux-node): clarify where-am-i -t is a process timeout, not update throttle

* refactor(gateway): extract legacy-node filter + rejection hint to fit LOC ratchet; docs-map + deadcode baseline

* fix(gateway): drop now-unused DEFAULT_DANGEROUS_NODE_COMMANDS import after hint extraction

* test(node-host): drop imports orphaned by removed error-code test
2026-07-14 02:30:36 -07:00
snowzlmbot
e8ad0466ff fix: render assistant transcript headers safely (#99404)
* fix: render assistant transcript headers safely

Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com>

* fix(markdown): nest crossing annotation spans

* fix(markdown): protect final transport projections

* refactor(markdown): split transcript render ownership

* test(ui): cover assistant transcript render flag

* refactor(markdown): keep transcript helpers private

* docs(changelog): note assistant transcript headers

* chore(plugin-sdk): refresh transcript annotation baseline

* fix(markdown): harden final transcript projections

* docs(changelog): defer transcript note to release

* refactor(markdown): centralize HTML tokenization

* fix(markdown): satisfy lint gates

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com>
2026-07-14 02:25:37 -07:00
Peter Steinberger
b54a455e38 test(zalo): prove poll backoff cancellation 2026-07-14 02:21:25 -07:00
NIO
cc76dc1d8f fix(zalo): make poll error backoff abort-aware 2026-07-14 02:21:25 -07:00
Peter Steinberger
31a845875d refactor(qa-matrix): trim internal exports (#107331) 2026-07-14 02:18:24 -07:00
Peter Steinberger
22d30bee2b test(zalo): narrow message adapter fixture (#107326) 2026-07-14 02:09:12 -07:00
Peter Steinberger
4893523d69 refactor(oc-path): trim internal exports (#107321) 2026-07-14 02:03:58 -07:00
Peter Steinberger
4341d85268 refactor(google): use GenAI runtime enums 2026-07-14 01:51:34 -07:00
Peter Steinberger
cbfad474a6 refactor(zalo): trim internal exports (#107312) 2026-07-14 01:51:09 -07:00
QiuYuang
9d1a75df2d fix(googlechat): bound auth transporter fetches (#106178)
* fix(googlechat): bound auth transporter fetches

* fix(googlechat): compose auth fetch deadlines

Co-authored-by: 毛宇豪0668001457 <mao.yuhao@xydigit.com>
Co-authored-by: 0668000787 <ma.weibin@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: 毛宇豪0668001457 <mao.yuhao@xydigit.com>
Co-authored-by: 0668000787 <ma.weibin@xydigit.com>
2026-07-14 01:50:15 -07:00
Dallin Romney
54d31a1306 refactor(qa): share Matrix flows across drivers (#101253) 2026-07-14 01:48:30 -07:00
Peter Steinberger
1e62d1f001 refactor(file-transfer): trim internal exports (#107307) 2026-07-14 01:43:19 -07:00
Peter Steinberger
f8fb478e4c refactor(ollama): trim internal exports (#107296) 2026-07-14 01:32:48 -07:00
Peter Steinberger
2444cc2f37 refactor(openshell): trim internal exports (#107291) 2026-07-14 01:20:03 -07:00
wahaha1223
b58e0875ed fix(voice-call): show ngrok errors when startup output is fragmented (#107122)
* fix(voice-call): preserve split ngrok startup errors across stderr chunks

* fix(voice-call): bound split ngrok error tail

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-14 01:16:10 -07:00
Peter Steinberger
16ff48c729 refactor(time): trust pretty-ms defaults 2026-07-14 01:15:43 -07:00
Peter Steinberger
3d15bf513e fix(onepassword): preserve pending tool authorization (#107275)
* fix(onepassword): preserve pending tool authorization

* refactor(onepassword): consume pending authorization in helper

* chore: defer release note generation
2026-07-14 01:12:04 -07:00
Peter Steinberger
bb6874fddf feat(sessions): upstream liveness for adopted catalog sessions (#107009) 2026-07-14 01:09:05 -07:00
Peter Steinberger
473753001a refactor(google-meet): trim internal exports (#107284) 2026-07-14 01:07:06 -07:00
Peter Steinberger
5bcee076a5 refactor(channels): deprecate the never-consumed group intro hint adapter (#107252)
* refactor(channels): deprecate the never-consumed group intro hint adapter

* chore(channels): compress the intro-hint deprecation note to satisfy the size ratchet
2026-07-14 01:06:13 -07:00
Peter Steinberger
202dea59bd fix(workboard): grant dispatch workers required tools 2026-07-14 01:00:37 -07:00
Peter Steinberger
b940339c32 fix: use plain agent progress labels (#107260)
* fix(channels): simplify agent progress labels

* chore: keep changelog release-owned

* chore: refresh bundled channel metadata
2026-07-14 01:00:24 -07:00