Skip to content

[Hackathon] feat: add Texera Assistant floating panel (notifications, AI, search)#5093

Open
jaeyun0503 wants to merge 3 commits into
apache:mainfrom
jaeyun0503:jaeyun-hackathon
Open

[Hackathon] feat: add Texera Assistant floating panel (notifications, AI, search)#5093
jaeyun0503 wants to merge 3 commits into
apache:mainfrom
jaeyun0503:jaeyun-hackathon

Conversation

@jaeyun0503
Copy link
Copy Markdown
Contributor

@jaeyun0503 jaeyun0503 commented May 16, 2026

What changes were proposed in this PR?

Adds a Texera Assistant — a floating, draggable, resizable panel that lives in every page (logged-in users only) and surfaces workflow, social, and admin activity, plus first-class AI agent integrations and global search.

Demo Video

https://drive.google.com/file/d/1HeDvcvLqs_d2nEf8uhtVr1Z9Oo0tokKH/view?usp=sharing

Sample Screenshots

image image image image image

New UI surface

  • Floating launcher (robot icon) — draggable around the viewport; the panel adapts which corner it opens into based on available space and is user-resizable from any free edge.
  • Three tabs for regular users (Notifications, Workflows) plus a fourth Requests tab for admins. Each tab has its own Clear button and the Clear state persists across reloads.
  • Settings overlay (gear icon) — per-type toggles to mute specific notification kinds (successful runs, dataset likes, etc.).
  • Search overlay (search icon) — calls the existing dashboard search API and lets users jump to any workflow or dataset they can access, with creation/modified dates inline.

Notification feeds

  • Run notifications — push on Completed / Failed / Killed transitions, with workflow-aware name capture (survives navigation), Retry / Kill actions, and a dedup window to handle websocket replays after HMR or refresh.
  • Social notifications — polls the hub for likes / clones on the user's workflows and datasets; baseline-on-first-poll so users don't get spammed on login.
  • Admin requests — polls for INACTIVE users and uses a new DB-backed request_viewed flag (see schema changes below) so the "viewed" state is global across admins and survives reloads. Clicking a request marks it viewed and navigates to the admin user page; Clear marks every currently-pending request viewed in one transaction.

AI agent integration

  • Per-workflow agent bindingAgentPanelComponent now persists which agent the user last activated, keyed by workflow id, so re-opening a workflow restores the right agent (or shows the registration tab if none is bound). Switching workflows correctly swaps the active agent.
  • AI failure explanations — when a workflow fails, the assistant looks up the bound agent for that workflow, sends a structured prompt with operator-level error details, and streams the agent's reply into the notification as rendered markdown. The reply also appears in the AI panel chat. Conversational follow-ups (questions, offers to "fix it for you") are trimmed via prompt instructions plus a post-processor so the notification stays focused on causes and remediation steps.
  • Operator tab (workflow page only) — shows the currently selected operator's type and properties with an Explain with AI button that streams a markdown explanation. Explanations are cached per operator id, and the tab is "sticky" — deselecting an operator on the canvas doesn't wipe the view.
  • Coordinated launcher buttons — a new AgentPanelControlService keeps the floating "AI Agent Builder" flask button in sync with the existing agent panel's open state; clicking either dismisses the other.

Persistence

Several pieces of state are persisted to localStorage so reloads don't reset the user's view:

  • Notifications, dismissed terminal-state dedup entries, session workflow list (with per-wid dismissal), drag position, panel size, notification settings, and the workflow → agent map.

Schema / backend changes

  • Adds request_viewed BOOLEAN NOT NULL DEFAULT FALSE to the user table (sql/texera_ddl.sql + sql/updates/23.sql). The migration backfills all existing rows to TRUE so admins don't get flooded with notifications for accounts that pre-date this feature.
  • Updates the JOOQ-generated User table descriptor with the new column.
  • AdminUserResource exposes the field in /admin/user/list and adds two endpoints:
    • POST /admin/user/mark-requests-viewed (per-uid)
    • POST /admin/user/mark-all-requests-viewed (bulk)
  • Frontend User type, AdminUserService, and the assistant all consume the new field.

How was this PR tested?

Manually Tested.

Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude 4.7

@github-actions github-actions Bot added engine ddl-change Changes to the TexeraDB DDL frontend Changes related to the frontend GUI common labels May 16, 2026
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented May 16, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 42.88%. Comparing base (7bb102e) to head (53e6d0a).
⚠️ Report is 9 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##               main    #5093      +/-   ##
============================================
+ Coverage     42.85%   42.88%   +0.03%     
- Complexity     2207     2209       +2     
============================================
  Files          1045     1045              
  Lines         40146    40141       -5     
  Branches       4240     4240              
============================================
+ Hits          17203    17214      +11     
+ Misses        21878    21860      -18     
- Partials       1065     1067       +2     
Flag Coverage Δ *Carryforward flag
access-control-service 39.53% <ø> (ø) Carriedforward from 7bb102e
agent-service 33.72% <ø> (ø) Carriedforward from 7bb102e
amber 43.74% <ø> (+<0.01%) ⬆️ Carriedforward from 7bb102e
computing-unit-managing-service 0.00% <ø> (ø)
config-service 0.00% <ø> (ø)
file-service 32.18% <ø> (ø)
frontend 33.93% <ø> (+<0.01%) ⬆️ Carriedforward from 7bb102e
python 88.99% <ø> (ø) Carriedforward from 7bb102e
workflow-compiling-service 56.81% <ø> (+9.09%) ⬆️

*This pull request uses carry forward flags. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mengw15
Copy link
Copy Markdown
Contributor

mengw15 commented May 16, 2026

Please modify the title to follow the Hackathon title convention

@jaeyun0503 jaeyun0503 changed the title feat: add Texera Assistant floating panel (notifications, AI, search) [Hackathon] feat: add Texera Assistant floating panel (notifications, AI, search) May 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

common ddl-change Changes to the TexeraDB DDL engine frontend Changes related to the frontend GUI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants