Skip to content

feat(vc-agent): add Botmux meeting listener and agent consumer flow#392

Open
sensuossss wants to merge 19 commits into
masterfrom
design/vc-bot-subscriptions
Open

feat(vc-agent): add Botmux meeting listener and agent consumer flow#392
sensuossss wants to merge 19 commits into
masterfrom
design/vc-bot-subscriptions

Conversation

@sensuossss

Copy link
Copy Markdown
Collaborator

Summary

  • Add VC meeting listener runtime: bot invite handling, bot join, activity ingestion, transcript/chat normalization, listener group sync, ended cleanup, tombstones, and restart restore.
  • Add meeting consumer flow: listener group selection card, configurable sync interval, cross-daemon agent injection, catch-up before user @agent turns, compact meeting envelope, and output approval gates.
  • Add meeting text output and realtime voice path: request-output IPC, review cards, meeting-message send, realtime voice session wiring, output policies, and trusted-operator checks.
  • Add dashboard/global settings: machine-wide VC listener switch, listener bot identity selection with validation, permission readiness checks, and interactive documentation source.
  • Remove obsolete VC workflow trigger helper and add focused tests for daemon, runtime store, realtime protocol, dispatcher, dashboard IPC, settings, and permissions.

Validation

  • pnpm exec tsc --noEmit
  • pnpm exec vitest run test/global-config.test.ts test/settings-write-applier.test.ts test/vc-meeting-daemon-session.test.ts test/event-dispatcher.test.ts test/daemon-internal-api.test.ts test/daemon-internal-smoke.test.ts test/trigger-api.test.ts test/bot-registry.test.ts test/setup-verify-permissions.test.ts test/vc-agent.test.ts test/vc-realtime-voice.test.ts test/vc-meeting-runtime-store.test.ts test/daemon-discovery.test.ts
  • pnpm build

Dogfood Notes

  • Manual invite -> bot join -> listener group -> transcript sync -> ended cleanup passed.
  • Agent selection -> cross-daemon injection -> @agent catch-up passed.
  • Meeting text send passed after vc:meeting.message:write scope.
  • Realtime voice M0 passed in a live meeting.
  • Restart restore passed during meeting dogfood.

Known Follow-ups

  • Restore-time polling reconcile for ended events missed while daemon is down.
  • Listener group live dashboard card / less noisy human-readable sync.
  • Final summary consumer based on rolling summary or full transcript.
  • User-identity ambient listener remains deferred.

- dispatcher 注册 vc.bot.meeting_invited/activity/ended_v1,ACK-safe
- push 解析官方 typo 容器 meeting_actitivty_items,复用 normalizer/dedup/transcript upsert
- daemon 按 larkAppId:meetingId 单 state + 单 timer flusher,wall-clock 稳定化
- polling 保留为 TAT gate / backfill;vcMeetingAgent bot 配置 + VC scopes
- botmux vc-agent tat-gate / poll CLI
@sensuossss sensuossss requested a review from deepcoldy as a code owner July 7, 2026 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant