Commit Graph

29 Commits

Author SHA1 Message Date
Peter Steinberger 7d4066639e feat(meetings): enable Linux Chrome talk-back (#118451)
* feat(meetings): add Linux audio routing

* chore(plugin-sdk): refresh meeting audio API baseline
2026-08-09 02:13:17 -07:00
Peter Steinberger 75dbe52e3e refactor: one code path behind doctor legacy-state migrations (#120716)
* refactor(doctor): prefer manifest route-state owners

* refactor(doctor): unify config repair declarations

* refactor(doctor): unify legacy state migrations

* fix(doctor): satisfy migration pipeline guards

* fix(plugin-sdk): keep doctor adapter inside boundary
2026-08-08 18:23:15 -07:00
Peter Steinberger da4a656cdb improve: doctor migration checks no longer load every bundled plugin runtime (#120678)
* perf(plugins): declare doctor contract surfaces

* perf(doctor): slim migration import closures

* perf(plugins): narrow doctor declaration record surface and wire owner-test lane

Registry records carry only the doctorContract declaration instead of the whole
parsed manifest, and check:changed now selects the src/plugins-owned declaration
honesty and closure-guard tests for extension module/manifest changes so
cross-lane drift cannot pass PR classification.

* fix(doctor): keep control-plane dist imports require-safe

Keep doctor and channel control-plane chunks off exec-class dependencies, and enforce native require(esm) loading during postbuild.

* chore(plugin-sdk): regenerate API baseline

* chore(plugin-sdk): sync export ordering

* fix(plugins): satisfy doctor contract CI boundaries

* perf(doctor): make qqbot doctor closure dependency-light

qqbot was the last plugin above 5s in doctor state-migration enumeration
(~8s under tsx/jiti). The cost was not the state-key builder (already a
leaf): its doctor closure value-imported the runtime-doctor SDK barrel,
whose plugin-state-store/state-db re-exports pull kysely (~330 modules),
plus security-runtime for one fileExists (~200 modules), all resolved
per-module by jiti during enumeration.

Split the migration-define helpers and light re-exports into a new
private-local plugin-sdk/runtime-doctor-migrations subpath; runtime-doctor
re-exports it so its public surface is byte-identical (API baseline hash
unchanged). qqbot's doctor-contract and state-migrations now import only
the light subpath, swapping fileExists for the equivalent async
legacyStateFileExists already in the closure.

qqbot enumeration: ~8.0s/531 modules -> ~0.25s/18 modules.

* chore(plugin-sdk): drop private-local subpath from API baseline

runtime-doctor-migrations is private-local-only; the baseline tracks public
modules, and the earlier line was generated before the classification.

* fix(plugins): register runtime-doctor-migrations boundary paths

The private-local subpath list feeds the extension package boundary map;
the shared paths config and xai's derived overrides must carry the same
entry or the boundary contract test fails.
2026-08-08 13:29:18 -07:00
Peter Steinberger 129f86bbf5 feat: auto-collect durable meeting transcripts (#113122)
* feat(meetings): auto-collect durable transcripts

* chore(plugin-sdk): refresh meeting transcript API baseline

* fix(plugin-sdk): keep meeting transcript options implicit

* fix(meetings): satisfy transcript bridge typecheck

* fix(google-meet): preserve optional caption policy context

* fix(google-meet): retain caption mode callback type

* refactor(meetings): split transcript lifecycle helpers

* chore(plugin-sdk): refresh split meeting runtime baseline

* refactor(google-meet): split session helpers

* fix(meetings): decouple transcript retries from leave

* fix(meetings): isolate provider subscribers

* fix(meetings): harden capture lifecycle

* fix(meetings): preserve capture during storage outages

* fix(meetings): preserve pending transcript ordering

* fix(meetings): retry capture initialization

* test(agents): reflect default transcript registration
2026-07-23 11:41:08 -07:00
Peter Steinberger 12d7009f71 feat(google-meet): enable plugin by default (#113053)
* feat(google-meet): enable plugin by default

* docs(google-meet): preserve browser enable recovery
2026-07-23 07:34:32 -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
Patrick Erichsen 0feffda3fc fix(plugins): remove simpleicons icon color paths (#95987) 2026-06-23 12:16:02 -07:00
Patrick Erichsen 0a97f73402 feat: add bundled plugin icon manifest URLs (#95845) 2026-06-22 22:14:18 -07:00
Goutam Adwant 2c286c3465 fix(google-meet): declare realtime provider secret inputs (#93677)
* fix(google-meet): declare realtime provider secret inputs

* test(secrets): cover Google Meet installed manifest

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-17 01:58:37 +08:00
Shadow 1806b152a9 fix: add ClawHub plugin display names (#87354) 2026-05-27 12:37:35 -05:00
Vincent Koc c52b5657a2 fix(google-meet): expose voice call delay schema 2026-05-03 20:16:50 -07:00
Peter Steinberger 11c600cf19 fix: split google meet realtime providers 2026-05-04 04:07:41 +01:00
Peter Steinberger c956946b26 fix(google-meet): clamp audio buffer config 2026-05-04 03:38:32 +01:00
Peter Steinberger 30b201eff0 fix(google-meet): hide realtime alias from agent schema 2026-05-04 03:22:08 +01:00
Peter Steinberger 45cfe1dfa1 feat(google-meet): default talk-back to agent mode 2026-05-04 02:53:02 +01:00
Peter Steinberger b13e9f1864 fix: stabilize Google Meet realtime talkback 2026-05-04 01:24:01 +01:00
Shakker 7641783d6b fix: enforce plugin tool manifest contracts 2026-05-02 06:21:08 +01:00
ShihChi Huang 0c3d1892cd fix: support Google Meet realtime barge-in (#73834)
Replay #73834 onto current main and preserve provider-side interruption when Google Meet detects a local human barge-in.

Thanks @shhtheonlyperson.
2026-05-01 09:00:50 +01:00
Peter Steinberger ae07d57f9d fix: sequence meet dtmf before realtime bridge 2026-05-01 07:05:01 +01:00
Shakker f1aaa2cd91 feat: declare startup plugin imports explicitly 2026-04-28 04:33:47 +01:00
Peter Steinberger 1f7b7c249a fix(google-meet): grant browser media permissions 2026-04-27 14:54:07 +01:00
Peter Steinberger d73e2ee774 fix(google-meet): use PCM audio for Chrome realtime 2026-04-27 12:55:00 +01:00
BsnizND d5e6abcb3d Add Google Meet realtime consult agentId (#72381)
Remote proof:
- CI run 24982271745 passed on 6122e13c9f.
- Blacksmith Testbox tbx_01kq6vwehcszjfpp52f0pb3v1q passed focused Google Meet formatting, docs/link checks, realtime consult runtime tests, Google Meet tests, extension test typecheck, the core-unit-fast-support shard, and the core support boundary shard.

Thanks @BsnizND.

Co-authored-by: BSnizND <199837910+BsnizND@users.noreply.github.com>
2026-04-27 08:36:59 +01:00
Peter Steinberger bda391e4c2 fix: use browser automation for Google Meet join 2026-04-24 17:01:57 +01:00
Peter Steinberger 2b45a112cb feat: harden Google Meet realtime join 2026-04-24 16:18:26 +01:00
Peter Steinberger 56fe2aab9c fix: attach Google Meet realtime bridge 2026-04-24 09:41:33 +01:00
Peter Steinberger 569290c36d feat: add Google Meet paired-node Chrome transport 2026-04-24 05:31:32 +01:00
Peter Steinberger 0c9659b70c feat(plugins): simplify google meet realtime defaults 2026-04-24 03:03:21 +01:00
Peter Steinberger 59a8afe6fa feat: add Google Meet participant plugin 2026-04-24 02:15:53 +01:00