[Hackathon] feat(workspace): add interactive onboarding tours with AI tutor#5104
[Hackathon] feat(workspace): add interactive onboarding tours with AI tutor#5104xuang7 wants to merge 3 commits into
Conversation
Gated behind gui.workflow.workspace.tutorial-enabled. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #5104 +/- ##
============================================
- Coverage 43.17% 43.15% -0.02%
+ Complexity 2214 2211 -3
============================================
Files 1045 1045
Lines 40260 40261 +1
Branches 4250 4250
============================================
- Hits 17381 17376 -5
- Misses 21812 21813 +1
- Partials 1067 1072 +5
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Thank you for participating in the hackathon. We really enjoyed your idea and appreciate the contribution. We are now archiving hackathon submissions by closing the submission PRs. However, we strongly encourage you to continue developing your idea and explore the possibility of merging it into the main branch. To move forward, please:
Thanks again for your participation and contribution! |
|
@xuang7 how likely can we merge this into main? |
I think the full hackathon PR is not ready to merge into main directly yet. The current version is still tightly coupled to UI internals, such as CSS selectors and class names, so future UI refactors could silently break the tours. I do think the tutorial feature is useful and worth continuing. A possible path forward is to split the work into smaller focused PRs. We can start with a simple guided tour based on this existing PR and introduce a data-tour-id attribute contract on key workspace UI elements to reduce the impact of UI refactors. Then we can consider adding more advanced parts like the AI tutor, progress tracking, and trophy shelf in later PRs. |
|
I think this is a well designed feature (you have an end to end experience). I suggest you open an umbrella issue and start to create sub-issues to add those components piece by piece. The hackathon project can easily cut into 10+ PRs. |
Demo video (2 min, onboarding journey): basics component, first workflow, agent, trophy shelf.
demo.mov
Motivation
New users land in the Texera workspace and face a dense canvas-and-panels UI with no in-product guidance. The only path to fluency today is reading external docs, watching recorded videos, or asking an instructor in person — high friction for new user onboarding.
To address this gap, this PR introduces a self-contained, opt-in onboarding tutorial that meets users inside the workspace they actually use: short 1–2 minute guided tours, hands-on build flows, an always-on AI tutor, and a trophy shelf to make progress visible.
Changes
This PR ships three pieces that together turn first-time workspace use from a doc-reading exercise into a guided, interactive experience. New users can go from "where do I click?" to a working visualization in minutes without leaving the page, get unstuck via an in-context AI tutor when the spotlight isn't enough, and have a visible reason to come back and finish the flows.
1. Tutorial tour mode (driver.js-powered, 1–2 min, multiple difficulty levels, resumable)
2. Argus, an all-seeing AI tutor (in-context, can act on the canvas)
3. Trophy shelf (per-flow badges plus bonus achievements, makes progress visible and replayable)
Demos
Screenshot 1: tour selection
Screenshot 2: step-by-step guided tour
Screenshot 3: resume popover after returning mid-tour
Screenshot 4: Argus AI tutor chat interface
Screenshot 5: trophy shelf with earned badges and coming-soon flows
Tests
20 new tests, all passing locally:
tutorial-progress.spec.ts(7 cases): load/save round-trip, legacy-flag migration, stale-schema reset, malformed-JSON fallback.flows-integrity.spec.ts(13 invariants over the FLOWS registry): unique flow + badge ids, validskipToSteptargets, intactchainTo/prerequisitesreferences, branching layout foroverview-workspace.workspace.component.spec.ts:tutorialEnabledgetter passthrough.Future improvements
build-ml(Logistic Regression on prebuilt workflow) andhub-tourstubs are already in place.add_operatortoconnect,configure,run, etc.