Skip to content

feat(studio): support private and shared Bot bindings - #1171

Merged
warm-wm merged 1 commit into
volcengine:mainfrom
PolarisCzh:czh/studio-bot-binding-types
Oct 16, 2026
Merged

warm-wm merged 1 commit into
volcengine:mainfrom
PolarisCzh:czh/studio-bot-binding-types

Conversation

@PolarisCzh

@PolarisCzh PolarisCzh commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Studio currently omits bindingType, so adding a Bot through the UI always relies on the Runtime default. This change adds an advertised Shared/Private choice to Feishu and Lark binding, with Shared as the default when available. QR creation, QR retry and manual binding forward the selection; retries keep the original type locked.

The private description is intentionally concise: “私聊可召回同 Bot 的历史,包括群聊。” / “Private chats can recall this Bot’s history, including group chats.” Runtime authorization and recall isolation are unchanged.

  • Missing, empty or unknown-only botBindingTypes retains the legacy UI and request body. Other providers remain unchanged; Lark keeps domain=lark.
  • Reuses the existing Radio component and fieldset styling. Type selection resets with the Runtime/provider/add-panel lifecycle; existing accounts have no type editing control.
  • Includes bilingual design/spec/user documentation and rebuilt packaged WebUI assets. No Python production, dependency, storage or deployment changes.

Validation:

  • 15 new component cases; test-first run had 9 expected failures, then all 87 component tests passed.
  • Related component/client regression: 116 passed.
  • Full frontend suite: 1,389 Node tests + 118 Vitest tests passed.
  • Changed executable line coverage: 100% (6/6), derived from Istanbul/Cobertura against the Git diff. Entire RuntimeChannels file: 94.71% lines.
  • Production build, locale consistency (2 locales / 21 namespaces), packaged assets (113 files / 350 references), channel proxy tests (6 passed), pre-commit and whitespace checks passed.
  • Real browser with mocked Runtime: private/shared selection, keyboard navigation, concise description, QR/manual/retry payloads, locked retry selection, legacy UI, empty/loading/error/retry. Actual tested viewport was 708px; the attempted 390px override did not take effect.

No live Feishu registration/cloud deployment or real IME input was performed. Existing component IME and duplicate-submit regression passed. Full Python regression was not run because Python production code is unchanged. Existing toolchain warnings remain. This PR was based on origin/main at edae5b58.

Design and verification: prd-spec/features/bot-binding-types/2026-10-16-bot-binding-types.md and its Chinese counterpart.

CI follow-up (2026-10-16): all six upstream workflow runs are action_required pending fork approval; no CI jobs have executed. The author account cannot approve them (GitHub returns 403, repository admin rights required). Re-ran the backend Sidecar gate locally: 289 tests passed and the coverage gate passed (96%). Frontend Sidecar gate: 22 tests passed, 100% lines / 94.44% branches. Full frontend suite and pre-commit passed again. These local results do not replace upstream CI approval or the Linux release-bundle smoke job. No code change was needed for the observed approval blocker.

@warm-wm
warm-wm merged commit ba2cd7a into volcengine:main Oct 16, 2026
14 checks passed
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.

3 participants