feat(casual-ux): inline hints + advanced hide + help FAB - #10
Merged
Conversation
Implements docs/tasks/casual-ux-prd.md. Where onboarding-prd shipped the registration FLOW (PR #8) and persona-system (PR #3), this PR makes every CONFIGURATION SURFACE friendly to casual (non-tech) users without changing anything for dev/team/admin. Foundation: - New hooks/use-casual.ts: useIsCasual() — sugar over usePersona() - New components/casual-gates.tsx: <HideForCasual> + <CasualOnly> - New components/ui/field-hint.tsx: FieldHint component renders as inline always-visible 💡 line for casual, as ? + popover for dev Surfaces patched: - /welcome wizard: persona / brand / client card descriptions rewritten verbose-by-default (single-time post-signup screen, all users benefit from extra context) - /keys Simple purpose picker: per-purpose casual hint pairing each purpose with the matching client (Chat ↔ Cherry Studio, Coding ↔ Cursor, etc.) so users immediately understand "what next" - /onboarding tutorial pages: CopyField on Base URL + Model gets FieldHint underneath (auto-renders inline for casual, hover for dev) - /wallet topup: casual mode hides custom-amount input + redemption code section entirely (presets-only experience). Dev / admin still see the full surface. Global help FAB (components/help-fab.tsx): - Fixed bottom-right of every authenticated page - Casual users see a pulsing rose dot until first interaction (localStorage flag `dr_help_seen`) - 4 sections, all admin-configurable via /api/status: - help_video_url → 3-minute tutorial video - help_wechat_qr → WeChat group QR / id - help_wechat_id → alternative wechat reference - help_support_email → mailto link - Unset URLs render as disabled "coming soon" placeholders, never dead links. Operations team fills these via System Settings → Operations options without touching code. Backend (controller/misc.go): GetStatus now surfaces 4 new help_* keys reading from common.OptionMap. Zero schema changes. i18n: 30 new en + zh keys for hints / FAB labels / welcome descriptions. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
10 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
实施 `docs/tasks/casual-ux-prd.md`(PR #9)的 5 天工程方案。让 casual(非技术)用户在每个配置界面都看到"白话解释",同时对 dev/team/admin 零打扰。
三层改造
Foundation:
应用到 4 个高频配置面:
全局求助 FAB:
后端改动极小
`controller/misc.go::GetStatus` 多吐 4 个 `help_*` key from `common.OptionMap`。零 schema migration。
兼容性
Test plan
文件
新增 (4):
修改 (8):
🤖 Generated with Claude Code