Commit Graph

344 Commits

Author SHA1 Message Date
Peter Steinberger
568ea29d2e refactor(plugins): inherit shared package boundary settings (#117474) 2026-08-01 09:11:09 -07:00
Vincent Koc
9a14ee3ad2 fix(meeting-bot): keep node capability internal 2026-07-31 11:09:03 +08:00
Vincent Koc
1bd2f93214 fix(meeting-bot): negotiate realtime output generations 2026-07-31 11:09:03 +08:00
Vincent Koc
4250552080 fix(meeting-bot): preserve node audio responses 2026-07-31 11:09:03 +08:00
pash-openai
e52354ea13 fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
Peter Steinberger
4232126bba chore: update dependencies across workspace (#115677)
* chore(deps): update dependencies

* fix(deps): restore CI compatibility
2026-07-29 05:16:42 -04:00
Peter Steinberger
ddd0b48673 refactor: remove 3,527 lines of runtime and test duplication (#115626)
* refactor: remove obsolete runtime and test duplication

* test: preserve typed cron and realtime fixtures
2026-07-29 02:21:20 -04:00
Vincent Koc
086d17dd0d refactor(google-meet): reuse OAuth option resolver (#115096) 2026-07-28 11:05:31 +02:00
Peter Steinberger
74045d3f4c test(google-meet): cover machine output descriptor (#114562) 2026-07-27 08:22:11 -04:00
Peter Steinberger
269bc5c89e fix(cli): preserve machine-readable stdout (#113654)
Co-authored-by: 1052326311 <65798732+1052326311@users.noreply.github.com>
2026-07-27 05:44:16 -04:00
Peter Steinberger
e717d24c2e refactor(meetings): close manual action state (#114247) 2026-07-26 23:25:19 -04:00
Peter Steinberger
7594e09100 refactor(meetings): centralize talk-back readiness (#114229) 2026-07-26 22:03:12 -04:00
Peter Steinberger
f6131a4fbf build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006)
* build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks

npm 12 removed shrinkwrap (command + tarball/root loading). Delete all 82
committed npm-shrinkwrap.json files and stop publishing lockfiles; keep
pnpm-lock.yaml as the single reviewed dependency boundary. The generator
becomes scripts/generate-npm-package-lock.mjs and feeds plugin bundling via
a transient package-lock.json + npm ci (works on npm 11 and 12). Tarball
validation treats the published 2026.7.2 beta train as a shrinkwrap
transition; self-update npm detection now uses install topology instead of
the shipped shrinkwrap.

* fix(deps): repair lint, deadcode, and test-type lanes for the npm 12 migration

- sort integrity comparisons with an explicit comparator (oxlint)
- keep resolveBunGlobalNodeModules module-local (knip unused-export gate)
- model npm pack --json as npm<=11 array / npm 12 name-keyed object
- default calver destructuring in the tarball test fixture
2026-07-26 01:29:55 -04:00
Peter Steinberger
517978a808 refactor(meetings): converge Google Meet probes and adapter parsing (#113970)
* refactor(meetings): converge Google Meet adapters

* fix(meetings): guard manual action category lookup

* fix(meetings): type manual action category map
2026-07-25 19:00:44 -07:00
Peter Steinberger
c5a2e9b9fb test(google-meet): deduplicate browser scenarios (#113573) 2026-07-25 01:51:07 -07:00
Peter Steinberger
4aa9c9f916 test(google-meet): remove release validation races (#113387) 2026-07-25 03:28:22 +08:00
Vincent Koc
3d486066ca test(google-meet): accept remaining browser act budget (#113384) 2026-07-25 02:55:58 +08:00
Peter Steinberger
7d5fb6f242 test(release): align extension prerelease contracts (#113381) 2026-07-25 02:30:35 +08:00
Peter Steinberger
89122bf298 refactor(google-meet): consolidate plugin test fixtures (#113256)
* test(google-meet): consolidate plugin fixtures

* test(google-meet): keep fixture internals private
2026-07-24 01:02:39 -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
acd92f6a3d chore(deps): refresh repository dependencies (#112453)
* build(deps): update QA broker dependency

* build(deps): refresh repository dependencies

* build(deps): reconcile rebased shrinkwraps

* test(plugins): remove stale loader test state

* test(deps): stabilize updated dependency coverage

* fix(swift): use caller-isolated TaskLocal overload

* build(deps): regenerate rebased shrinkwraps

* test(msteams): preserve DNS validation in fetch helper

* fix(deps): avoid vulnerable optional image stack

* test(deps): validate generated LRU override

* refactor(ui): extract chat resizable divider

* test(ui): update divider ownership path

* fix(matrix): retain restart-compatible SDK

* style(cron): format update test
2026-07-23 16:17:13 +00: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
bac2bbd243 refactor(google-meet): split CLI modules (#112937)
* refactor(google-meet): split CLI modules

* test(google-meet): align CLI split routing

* refactor(google-meet): isolate CLI command contract
2026-07-23 03:00:34 -04:00
Peter Steinberger
cca67fc842 fix(meetings): verify talk-back loopback signal (#112939)
* fix(meetings): verify talk-back loopback signal

* refactor(meetings): keep verification helper private

* fix(meetings): type loopback buffers generically

* fix(meetings): bound loopback reference buffers

* fix(meetings): align loopback proof with playback

* chore(meetings): defer release note ownership

* fix(meetings): keep loopback health type private
2026-07-23 02:32:24 -04:00
Peter Steinberger
32014bd84f refactor(google-meet): split plugin entry modules (#112903) 2026-07-23 01:03:51 -04:00
Peter Steinberger
dfc88210be refactor(google-meet): split Meet API client (#112873)
* refactor(google-meet): split Meet API client

* refactor(google-meet): keep internal API types private
2026-07-23 00:29:21 -04:00
Peter Steinberger
939ecb5ef8 refactor(meeting-bot): hoist meeting adapter runtime glue (#112785)
* refactor(meeting-bot): hoist adapter runtime glue

* refactor(meeting-bot): specialize runtime adapters

* refactor(google-meet): reuse runtime adapter alias

* refactor(meeting-bot): privatize consult internals

* refactor(plugin-sdk): ratchet meeting runtime surface
2026-07-22 18:52:17 -04:00
sunlit-deng
74c5415e2e fix(google-meet): reject malformed audio base64 (#106474)
* fix(google-meet): reject malformed audio base64

* refactor(meeting-bot): validate node audio centrally

Make the shared meeting-bot owner reject malformed push and pull audio for Google Meet, Teams, and Zoom without plugin-specific callbacks or permissive fallbacks.

Co-authored-by: sunlit-deng <yang.jiajun1@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-22 14:25:42 -07:00
Peter Steinberger
6f2fa019bd fix: honor configured default agent in consults (#111749) 2026-07-20 01:43:00 -07:00
xingzhou
7b3a8dba14 fix(meeting-bot): preserve spawn failure diagnostics (#107614) 2026-07-19 16:17:46 +08:00
Peter Steinberger
b4187ced90 feat: add live-validated Zoom meeting guest plugin (#111048)
* feat(zoom-meetings): add browser guest transport

* fix(zoom-meetings): type reusable refresh result

* test(meeting-bot): bind reusable refresh callback

* chore(zoom-meetings): use existing plugin label

* chore(zoom-meetings): defer changelog to release

* test(zoom-meetings): cover node setup through public host
2026-07-18 17:17:26 -07:00
Peter Steinberger
d7b0bacf10 fix(teams-meetings): join and transcribe live meetings reliably (#110615)
* fix(teams-meetings): validate live web flows

* chore(plugin-sdk): update meeting runtime baseline

* test(teams-meetings): align live validation fixtures

* fix(teams-meetings): harden live browser validation

* fix(teams-meetings): preserve live transition lifecycles

* fix(meeting-bot): pass wait budget during recovery

* test(teams-meetings): satisfy extension lint

* fix(teams-meetings): preserve browser session ownership

* fix(teams-meetings): retire audio bridges after leave

* fix(teams-meetings): harden leave and audio ownership

* fix(teams-meetings): preserve leave transition ownership

* fix(teams-meetings): serialize leave cleanup safely

* fix(teams-meetings): guard live transition cleanup

* fix(teams-meetings): preserve adapter boundaries

* fix(teams-meetings): await caption readiness

* fix(teams-meetings): surface caption blockers

* fix(teams-meetings): retry transient media playback

* chore(teams-meetings): defer release notes

* refactor(meeting-bot): isolate navigation error helper

* test(teams-meetings): keep page control helper private

* fix(meeting-bot): bound caption lifecycle cleanup

* chore(plugin-sdk): refresh API baseline

* test(teams-meetings): split caption ownership coverage

* fix(teams-meetings): retry pending audio routing

* fix(teams-meetings): retain leave transition ownership

* fix(teams-meetings): refresh transcript target

* fix(teams-meetings): bound audio routing retries

* fix(teams-meetings): retry pending remote audio

* fix(teams-meetings): harden media source ownership
2026-07-18 15:57:22 +01:00
Peter Steinberger
fcdf3954d7 fix(meetings): wait for audio bridge cleanup (#110548)
* fix(meetings): wait for audio bridge cleanup

Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com>

* test(meetings): skip POSIX signal proof on Windows

---------

Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com>
2026-07-18 09:00:19 +01:00
Peter Steinberger
72d597c202 fix(google-meet): harden talkback bridge recovery (#110092)
* fix(meeting-bot): harden deferred runtime findings

* fix(google-meet): gate paired-node talkback bridge

* fix(google-meet): preserve tracked tab during bridge recovery

* docs(google-meet): explain external bridge exception
2026-07-17 23:50:30 +01:00
Peter Steinberger
ecd285222c fix: harden recovered meeting browser sessions (#110089)
* fix(meeting-bot): harden browser session recovery

* chore: leave meeting notes to release generation

* docs: fix release-gate example lint
2026-07-17 23:20:51 +01:00
Peter Steinberger
ee762ad761 feat(teams-meetings): join Microsoft Teams meetings via the meeting-bot core (#109964)
* feat(teams-meetings): join Microsoft Teams meetings via the meeting-bot core

* fix(teams-meetings): satisfy lint and package-boundary contracts
2026-07-17 13:23:39 +01:00
Peter Steinberger
5c21b70144 fix(google-meet): preserve attendance CSV row boundaries (#109926)
* fix(google-meet): harden attendance CSV export

* chore: defer google meet release note
2026-07-17 11:47:00 +01:00
Peter Steinberger
3d7346f96b test(google-meet): keep CLI test on plugin boundary (#109915) 2026-07-17 11:26:49 +01:00
Pavan Kumar Gondhi
93e9e2fe93 fix(google-meet): neutralize attendance CSV formulas [AI] (#109725)
* fix: neutralize meet attendance csv cells

* fix: cover fullwidth csv formula prefixes

* test: use temp dir tracker for meet csv export
2026-07-17 15:38:12 +05:30
Peter Steinberger
1a2d9e5e5c refactor(meeting-bot): extract browser meeting-bot core behind MeetingPlatformAdapter (#109755)
* refactor(meeting-bot): extract browser meeting-bot core behind MeetingPlatformAdapter

* chore(google-meet): prune max-lines baseline entries shrunk by extraction

* fix(meeting-bot): drop orphaned extension realtime files and refresh lint/test types after extraction

* chore(google-meet): prune deleted realtime max-lines baseline

* chore(meeting-bot): remove release-owned changelog entry

* fix(meeting-bot): harden session leave, cleanup retry, and engine teardown paths
2026-07-17 10:35:56 +01:00
Peter Steinberger
0471b293bb style: format google-meet index test
68c4cb31d2 (#109674) landed unformatted, failing check-lint repo-wide.
2026-07-17 02:14:31 -07:00
Wynne668
68c4cb31d2 fix(google-meet): report blank Twilio setup credentials as missing (#109674)
* fix(google-meet): reject blank Twilio setup credentials

* fix: centralize Google Meet voice setup values

Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-17 01:54:43 -07:00
Peter Steinberger
e3618454f2 refactor(talk): add realtime voice session harness and adopt in google-meet and voice-call (#109497)
* refactor(talk): add realtime voice session harness and adopt in google-meet and voice-call

* fix(google-meet): satisfy prefer-const in realtime engine wiring
2026-07-16 21:28:44 -07:00
Peter Steinberger
92146f9f80 refactor(talk): share audio-energy stats and speech-threshold gate across voice surfaces (#109466) 2026-07-16 18:10:26 -07:00
Peter Steinberger
edd052989b refactor(google-meet): merge host and node realtime engines behind one audio transport (#109413)
* refactor(google-meet): merge host and node realtime engines behind one audio transport

* refactor(google-meet): internalize engine helpers left test-only after realtime-node removal
2026-07-16 17:39:53 -07:00
Peter Steinberger
0631252f4b refactor: reduce plugin SDK test import overhead (#109333)
* refactor(test): split plugin SDK test helpers

* fix(test): align plugin SDK test subpaths
2026-07-16 13:55:23 -07:00
Peter Steinberger
525db34f80 refactor: privatize diagnostics, Meet, and QA test seams (#107869)
* refactor(diagnostics-prometheus): privatize metrics test surface

* refactor(google-meet): remove Chrome test dependency exports

* refactor(qa-lab): test retained runtime boundaries

* chore(deadcode): shrink export baseline
2026-07-14 17:42:34 -07:00
Peter Steinberger
f81f9d8570 chore: enforce max-lines suppression ratchet (#107315)
* ci: enforce max-lines suppression ratchet

* chore: prune stale max-lines suppression

* fix: close max-lines ratchet enforcement gaps

* fix: harden max-lines ratchet checks

* fix(ci): satisfy max-lines ratchet checks

* style: format max-lines declarations

* fix(ci): match oxlint suppression grammar

* test: isolate max-lines git fixtures

* chore: prune resolved max-lines debt

* test: skip newline path fixture on Windows

* fix: harden max-lines suppression ratchet

* chore: refresh max-lines baseline

* fix: close max-lines ratchet bypasses

* fix: derive ratchet base from PR merge tree

* fix: support older Git in staged ratchet

* fix: align max-lines declarations and baseline

* chore: refresh max-lines baseline for current main

* fix: exclude generated wizard locales from max-lines

* chore: prune resolved max-lines debt
2026-07-14 09:27:02 -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