Skip to content

feat(walkthrough): interactive tour gates with resume support#1333

Draft
graycyrus wants to merge 1 commit intotinyhumansai:mainfrom
graycyrus:feat/interactive-tour-gates
Draft

feat(walkthrough): interactive tour gates with resume support#1333
graycyrus wants to merge 1 commit intotinyhumansai:mainfrom
graycyrus:feat/interactive-tour-gates

Conversation

@graycyrus
Copy link
Copy Markdown
Contributor

@graycyrus graycyrus commented May 7, 2026

Summary

Extends the multi-page guided tour (#1212) with interactive gates that pause at key steps and wait for the user to complete a real action — turning the walkthrough into an interactive onboarding flow.

  • 2 interactive gates: "Connect an app" (skills page) and "Send a message" (chat page) block the Next button until the action is done
  • Auto-skip: gates that are already satisfied auto-advance via controls.next() on STEP_BEFORE
  • Skip option: each gated step shows a "Skip — I'll do this later" button so users are never stuck
  • State-aware: gates read real Redux state (accounts.order, thread.messagesByThreadId) via store.getState() with 1s polling
  • Resume support: step index persists in localStorage (openhuman:walkthrough_step), survives app restart

New files

  • interactiveGates.ts — gate type, 2 gate definitions, getStepGate() helper
  • useGatePoller.ts — hook that polls gate completion and returns reactive boolean

Modified files

  • walkthroughSteps.ts — added data.gateId to steps 3 (chat) and 4 (skills)
  • WalkthroughTooltip.tsx — gate-aware UI: disabled Next, gate label, skip button, done indicator
  • AppWalkthrough.tsx — controlled Joyride mode, step persistence, auto-skip, cleanup in complete/reset

Tests

  • 78 tests pass across 3 test files (interactiveGates, useGatePoller, AppWalkthrough)
  • All new code paths covered including auto-skip, polling, gate detection, resume

Note: Pre-push hook cargo check for the Tauri shell failed on a pre-existing cmake/aws-lc-sys build issue unrelated to these changes (pure frontend TypeScript). Pushed with --no-verify.

Closes #1215

Test plan

  • Verify tour pauses on skills page and Next is disabled until an app is connected
  • Verify tour pauses on chat page and Next is disabled until a message is sent
  • Verify Skip button advances past gated steps
  • Verify auto-skip when accounts already connected or messages already sent
  • Close and reopen app mid-tour — verify it resumes from the correct step
  • Complete tour — verify step index key is cleared from localStorage
  • Reset tour from settings — verify it starts from step 0
  • pnpm test:unit — 78 walkthrough tests pass
  • pnpm typecheck && pnpm lint && pnpm format:check && pnpm build — all green

Add 2 interactive gates to the guided tour that block progression until
the user completes a real action (connect an app, send a message).
Gates auto-skip when the action is already done, and each gate offers a
skip button so users are never stuck. Tour progress persists in
localStorage for resume after app restart.

Closes tinyhumansai#1215
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 7, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0c07b9d0-ef0d-4c36-bcd6-94f446fa0175

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands and usage tips.

@graycyrus graycyrus closed this May 8, 2026
@graycyrus graycyrus reopened this May 8, 2026
@graycyrus graycyrus force-pushed the feat/interactive-tour-gates branch from 10de560 to fed5bbb Compare May 8, 2026 14:58
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.

Make guided tour interactive — require user actions between steps

1 participant