Repository navigation
[ZEPPELIN-6743] Mount an opt-in AI Assistant shell in the notebook sidebar - #5565
Conversation
|
This PR adds the opt-in Assistant sidebar shell and its Angular/React mount point. Conversation UI and server transport are outside this diff. The current diff is +924/-7 across 21 files. Excluding 299 lines in The SDK build, React typecheck, focused React and Angular tests, lint, and React production build pass locally. Webpack reports an asset-size warning. This depends on #5558 and #5561. The temporary base contains those prerequisites so reviews can proceed now. After they merge, I will rebase this branch onto the latest |
aee705e to
654d828
Compare
The opt-in Assistant host handles panel visibility and error states. Include it in the page coverage registry so the reporter tracks its currently untested browser flow. Confidence: high Scope-risk: none Not-tested: Full browser E2E and GitHub CI
Cover the flagged notebook shell through its visible sidebar controls. Create and remove a disposable notebook for each test run. Confidence: high Scope-risk: none Not-tested: full E2E suite and runtime fault injection
699239b to
3e95adf
Compare
654d828 to
d0763c9
Compare
| './ConfigurationTable': './src/pages/ConfigurationTable', | ||
| './NotebookRepoList': './src/pages/NotebookRepoList' | ||
| './NotebookRepoList': './src/pages/NotebookRepoList', | ||
| './AssistantWorkspace': './src/pages/AssistantWorkspace' |
There was a problem hiding this comment.
Non-blocking: Step 6 of Adding a new React module in the React README calls for a re-export from main.ts, but AssistantWorkspace is not re-exported there.
Module Federation loads the implementation directly through exposes, so this does not affect functionality. I verified that the production build, remote loading, and panel interactions work without the re-export. Just noting the difference between the documented procedure and this implementation.
What is this PR for?
Add an opt-in AI Assistant button and empty panel shell to the notebook sidebar. With
?reactAssistant=true, the Angular notebook mounts the React shell, coordinates it with the file tree and table of contents, and shares the sidebar width for resizing. The panel closes when the active note changes and shows a fallback if the React remote fails to load.This establishes the notebook mount point for later conversation UI work. Conversation components, server transport, and message handling are outside this PR.
This PR depends on #5558 and #5561. Its temporary base contains those changes so the shell can be reviewed separately.
What type of PR is it?
Feature
Todos
What is the Jira issue?
ZEPPELIN-6743
How should this be tested?
Run from
zeppelin-web-angular/:npm run build-project:sdk npm run typecheck:react npm --prefix projects/zeppelin-react test -- src/pages/AssistantWorkspace.spec.tsx npm run test:shell -- src/app/pages/workspace/notebook/assistant src/app/pages/workspace/notebook/sidebar/sidebar.component.spec.ts src/app/services/react-feature.service.spec.ts npm run lint npm run build:reactIn an authenticated notebook, open
?reactAssistant=trueand check opening, closing, resizing, switching sidebar sections, and switching notes. Confirm that the button is absent without the flag and in view-only and revision views.Screenshots (if appropriate)
N/A
Questions: