Skip to content

[ZEPPELIN-6749] Connect the AI Assistant conversation panel to the notebook server - #5616

Open
miinhho wants to merge 2 commits into
apache:masterfrom
miinhho:ZEPPELIN-6749-assistant-notebook-integration
Open

miinhho wants to merge 2 commits into
apache:masterfrom
miinhho:ZEPPELIN-6749-assistant-notebook-integration

Conversation

@miinhho

@miinhho miinhho commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

What is this PR for?

Replace the fixture-backed notebook Assistant flow with the existing conversation REST API and WebSocket transport. Users can create, select, and delete conversations, load saved history, and submit questions from the notebook sidebar.

The Angular host provides the notebook connection and authentication handling to the React panel. Requests and subscriptions are scoped to the open panel and current notebook session. Paragraph references in answers use the notebook’s existing selection and scrolling behavior.

What type of PR is it?

Feature

What is the Jira issue?

How should this be tested?

With Zeppelin running, set PLAYWRIGHT_BASE_URL to the server address. If authentication is enabled, set ZEPPELIN_E2E_SHIRO_INI to the server’s Shiro configuration. From zeppelin-web-angular, run:

npm run e2e -- e2e/tests/notebook/assistant --project=chromium --workers=1

Verify conversation creation and submission, streamed answer completion, history restoration, conversation isolation, and loading earlier messages. The tests mock Assistant REST/WebSocket responses while using the running server for notebook and authentication traffic.

For an existing conversation, delay or fail its initial history request. The draft should remain editable, and sending should become available only after a successful history retry, without automatic submission. New local conversations and history requests after initial success should remain unaffected.

Questions:

  • Does the license files need to update? No.
  • Is there breaking changes for older versions? No.
  • Does this needs documentation? No.

Use the Angular notebook connection and authentication lifecycle in the React Assistant. Keep notebook paragraph rendering at the workspace composition boundary and expose generic answer rendering to the conversation panel.

Cover session retirement, notebook isolation, authentication handling, and saved and streaming answer rendering with unit tests.
Mock Assistant REST and WebSocket traffic in Playwright while retaining the real notebook and authentication host. Replace the production fixture flag with test-owned wire responses and explicit streaming completion gates.

Exercise saved history, streaming completion, notebook isolation, and paginated answer merging without an external LLM.

This branch has not been deployed

No deployments
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