ooiuuii
16a800ebf1
fix(google-meet): keep zip exports beside output directories ( #122367 )
...
Punchcard-Session: brisk-summit-willow-jm
2026-08-23 06:01:07 -07:00
Peter Steinberger
baefd067bb
fix(deps): keep package runtime dependencies single-owned ( #126119 )
...
* fix(deps): consolidate shared runtime helpers
* test(concurrency): support current test lib target
* fix(time): preserve year-scale plugin durations
* fix(agents): preserve empty subagent completions
2026-08-18 22:12:45 -07:00
Peter Steinberger
ebac731352
fix(google-meet): classify gateway CLI fallback with typed guards instead of message matching ( #125495 )
...
* fix(google-meet): classify gateway CLI fallback with typed guards instead of message matching
Replaces the message-substring classifier in the Meet CLI's
gateway-unavailable local fallback with the structural
isGatewayTransportError/isGatewayClientRequestError guards (seam shared
verbatim with #125458 ). Decision surface chosen per Meet semantics:
uncoded transport closes (unreachable sockets, now incl. ETIMEDOUT/
ENETUNREACH) fall back; coded closes incl. 1006 deliberately do not,
since a live gateway may still own Meet browser sessions; unknown-method
fallback stays but requires a structural gateway request error. Adds
ECONNRESET to GATEWAY_UNREACHABLE_SOCKET_CODES so connect-time resets
wrap into the typed unreachable error instead of escaping raw.
* test(process): treat Linux zombies as terminated
2026-08-17 20:40:46 -07:00
Peter Steinberger
73ab74eccc
fix(discord): preserve routed agent for realtime voice ( #125111 )
2026-08-16 23:41:38 -07:00
Peter Steinberger
568b920b21
feat(lint): enforce import ordering and deduplication ( #124730 )
...
* refactor(imports): dedupe and hoist imports
* feat(lint): enforce import/no-duplicates and import/first
2026-08-16 11:44:52 -07:00
Peter Steinberger
605dece171
perf(test): shorten Google Meet reconnect proof ( #124602 )
2026-08-16 06:41:17 -07:00
Peter Steinberger
9877d6f8a8
test(google-meet): remove unused testing bags ( #124183 )
2026-08-15 07:08:22 -07:00
Peter Steinberger
6ef6d4d466
fix(google-meet): preserve exports on write failure ( #123959 )
2026-08-14 20:28:59 -07:00
Josh Lehman
c23c188902
fix: explicit agent ownership no longer breaks system surfaces ( #123339 )
...
* fix: honor explicit agent ownership in system surfaces
* oc-000: fix explicit-owner runtime preparation
2026-08-14 06:52:21 -07:00
Peter Steinberger
964c8c84c1
refactor: consolidate coercion ownership ( #122299 )
...
* refactor: consolidate coercion ownership
Centralize four canonical coercion helpers, migrate exact core and plugin duplicates through narrow Plugin SDK facades, and enforce declaration and plugin-normalization ownership boundaries.
The sweep adds eight focused SDK exports while deleting more production and tooling code than it adds. User-visible behavior is unchanged except for safer equivalent object and UI parsing at existing boundaries.
* fix: guard integer option ownership
Register resolveIntegerOption with the canonical function owner and extend the declaration-guard fixture so future local duplicates fail validation.
* fix: keep integer helpers on numeric facade
Remove the unshipped duplicate string-coerce exports and route every affected plugin consumer through the existing number-runtime contract.
* fix: point numeric coercion to number runtime
Make boundary and declaration diagnostics recommend the canonical numeric facade, with failing-before coverage for both guidance paths.
2026-08-11 17:14:53 -07:00
Peter Steinberger
c4fd5ad551
fix(google-meet): publish exports atomically ( #122306 )
2026-08-11 15:29:08 -07:00
Peter Steinberger
cad77fb39c
refactor: consolidate remaining coercion helpers ( #122020 )
2026-08-11 10:22:01 -07:00
Peter Steinberger
fa03d9b913
refactor: consolidate coercion helpers ( #121366 )
...
* refactor: consolidate coercion helpers
* fix: remove duplicate coercion imports
* fix: preserve serialized coercion guard
* chore: ratchet coercion helper carve-outs
* fix(test): keep gauntlet subprocess startup lean
* fix: preserve imported session timestamp semantics
* fix: preserve catalog timestamp string semantics
* chore: align plugin SDK surface ratchet
* fix: preserve trajectory and SDK string contracts
* fix(test): preserve QA record assertion semantics
* fix: complete standalone record guard rename
* refactor(cron): use canonical string coercion
* fix(acpx): preserve Pi timestamp parsing
* test(channels): adapt custody test harnesses
* test(telegram): classify media harness as test support
* test(acpx): split timestamp contract coverage
* test(channels): support generated custody contracts
* chore: ban the full coercion helper name set
Extends the declaration guard to all eleven consolidated helper names and
renames the cron schedule-identity readNumber wrapper to readScheduleInteger
so the banned generic name cannot regrow.
* fix(scripts): repair release-validation guard drift and lint cause
Restores the renamed isJsonRecord guard in assertTrustedWorkflowHarness after
main added isRecord call sites in parallel, and attaches the caught YAML error
as the thrown error cause (preserve-caught-error was red on main).
* fix: preserve Claude timestamp string semantics
* fix: preserve persisted timestamp string semantics
* fix: preserve date-first timestamp contracts
* fix(openai): harden delegation failure formatting
* chore: close coercion helper guard gaps
* test(openai): model non-error delegation rejection
* chore: refresh plugin SDK API contract
* fix(tasks): use canonical string field reader
* fix(ai): use canonical provider error field coercion
* fix(browser): migrate native bootstrap coercion
* docs(plugin-sdk): clarify text record export compatibility
* fix(gateway): normalize approval execution identity
* test(outbound): isolate message action poll harness
2026-08-11 00:02:18 -07:00
Peter Steinberger
620fcd0e27
refactor(plugins): make manifests own config ui hints ( #121329 )
2026-08-09 18:48:49 -07:00
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
673246c42a
fix(google-meet): stop failed voice gateway connections ( #120822 )
2026-08-08 19:20:19 -07:00
Peter Steinberger
d52827a8c0
fix(google-meet): redial after completed voice calls ( #120807 )
2026-08-08 18:40:50 -07:00
Vincent Koc
e41c574793
improve(gateway): defer inactive plugin runtime imports ( #119733 )
...
* perf(gateway): defer Talk relay cleanup imports
Punchcard-Session: coral-workshop-workshop-3f
* perf(acpx): defer Pi session catalog runtime
Punchcard-Session: coral-workshop-workshop-3f
* perf(google-meet): defer meeting runtime imports
Punchcard-Session: coral-workshop-workshop-3f
* improve(memory-core): defer scoped runtime access
Punchcard-Session: coral-workshop-workshop-3f
* perf(google-meet): defer SDK action helpers
Punchcard-Session: coral-workshop-workshop-3f
2026-08-06 07:38:24 +08:00
Peter Steinberger
4707934b30
refactor(google-meet): unify gateway and tool dispatch ( #119413 )
2026-08-04 19:52:26 -07:00
Peter Steinberger
3c45fc15f4
refactor(google-meet): consolidate CLI resolution ( #117949 )
2026-08-02 03:53:10 -07:00
Peter Steinberger
996b1e1e86
refactor(plugins): remove oauth pass-through wrappers ( #117867 )
2026-08-01 23:28:59 -07:00
Peter Steinberger
e98fdeefdf
refactor(errors): consolidate message formatting ( #117818 )
2026-08-01 22:05:49 -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
086d17dd0d
refactor(google-meet): reuse OAuth option resolver ( #115096 )
2026-07-28 11:05:31 +02: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
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
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
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
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
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