Repository navigation
fix(onboarding): Scout's welcome says who it is and that typing works (TASK-644) - #3036
Conversation
… (TASK-644) Two of this week's four Google signups opened their workspace 3-4s after signing up and left without clicking a start or typing. The welcome was one bare question, "What would you like to do first?", which says neither who Scout is nor that the person can just type. A staging walk found nothing wrong with the render, so the change is the line itself, as ruled by UX Lead (A, with "a start", an internal name, replaced by "one below"). The tests pin both exact strings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N4VWLC9MiWprFWXFNjJSnr
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Welcome message and validation backend/config/native-agents/scout.ts, backend/__tests__/unit/config/nativeAgents.scoutKnowledge.test.js, backend/__tests__/unit/config/scoutWelcome.test.js, backend/__tests__/unit/controllers/authController.guideIdentity.test.js |
The English and Chinese welcome strings introduce Scout and invite users to choose an action or describe their work. Tests expect the revised text and check the Chinese copy and English wording. |
Estimated code review effort: 2 (Simple) | ~8 minutes
Change: Bug fix
Possibly related issues
Team-Commonly/commonly#871— The issue concerns the guide agent speaking first in an empty workspace. This change adds an introductory Scout welcome, addressing the first-message aspect.Team-Commonly/commonly#709— The issue requests broader zh-CN support. This change updates the zh-CN Scout welcome, which is one onboarding string.
Possibly related PRs
- Team-Commonly/commonly#2489 — It introduced the previous
SCOUT_WELCOMEtext and updated the matching test assertion. - Team-Commonly/commonly#2737 — It added the localized Scout welcome and the test file that this change updates.
Merge Risk: 
Minimal · up to 8f9a4
-
No current-head merge-blocking risk was identified in this copy-only change.
Pre-merge checks: 
4
-
Full details: Title check
-
Explanation
The title names the main change: Scout's welcome message now states who Scout is and that typing works. It also names the area (onboarding) and a ticket ID. The changeset updates the English and Chinese Scout welcome copy in scout.ts and the related tests, which matches the title. The title is 80 characters and 12 words, so it is somewhat long, but it is specific and accurate.
Full details: Description check
-
Explanation
The description matches the changeset. It explains that Scout's first message in new workspaces now identifies Scout and says the user can type. It gives before and after copy for English and zh-CN, which matches the scout.ts change. It also lists the updated tests (scoutWelcome.test.js, nativeAgents.scoutKnowledge, authController.guideIdentity) and says the start buttons are unchanged. The rationale uses onboarding metrics that are not verifiable from the diff, but the description is clearly related to the changeset.
-
Finishing Touches
-
Generate docstrings
-
- Commit to this branch
- Create a new PR
Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
lilyshen0722
left a comment
There was a problem hiding this comment.
Sable gate, #3036 at 8f9a4a9 (TASK-644, Tier 1).
- Both strings match UX Lead's ruling (Sharpen 118409) exactly. I compared the source byte for byte against the ruled text: ASCII apostrophes in "I'm" and "you're", a half-width space before Scout, and full-width ,and 。 in zh-CN. scoutWelcome.test.js pins both strings with toBe, and the knowledge and guideIdentity tests pin the English one. As mutants, "Pick a start below" fails 4 tests and 选一个开始 fails 1.
- The starts payload is unchanged. In scout.ts the diff touches only the doc comment and the two SCOUT_WELCOME_BY_LOCALE values. SCOUT_STARTS, SCOUT_HOSTED_START and authController's hostedEngineAvailable branch are untouched. guideIdentity still asserts the full
kind: 'starts'payload, and that assertion passes. - The old line is quoted nowhere except the new history comment in scout.ts.
git grepfor "would you like to do first" and 想先做什么 at this head finds no prompt, knowledge, frontend or docs copy. Scout's knowledge text says "Your welcome offered starts as buttons", which is still true.
Ran: the 3 changed suites, 40/40 pass on a fresh checkout at this head.
Non-blocking: the scoutWelcome.test.js case is still titled "keeps the English welcome unchanged", but the English welcome has now changed.
Written by Sable, a Commonly agent — https://commonly.me/v2/pods/6a692a1be833c668acdb84cf
GATE: PASS
Scout's first message in a new workspace now says who Scout is and that the person can just type. The start buttons don't change.
Why (TASK-644). Of this week's four Google signups, two opened My Workspace 3-4s after signing up and left without clicking a start, typing, or opening Bring your own. The ones who engaged clicked within 7-26s. Since 10-20, 3 of 10 outside signups never acted at all. A fresh staging signup at 1440 and 390 found the screen renders cleanly: the welcome comes in the first fetch, the buttons sit above the fold and nothing covers them. So the line was the problem: one bare question that didn't say who was asking.
Copy, as ruled by UX Lead (Sharpen 118409):
"A start" is our internal name for the buttons, so the line says "one below" instead. In zh-CN, 选下面一项开始 points at the buttons, where 选一个开始 could read as "choose a beginning".
The welcome is stored once at signup, so this reaches new workspaces only. Existing welcomes keep their text.
Tests.
scoutWelcome.test.jspins both exact strings and checks the line never says "start". The tests that pinned the old English,nativeAgents.scoutKnowledgeandauthController.guideIdentity, are updated. The zh-CN check that the line has no English now allows Scout's name.🤖 Generated with Claude Code
https://claude.ai/code/session_01N4VWLC9MiWprFWXFNjJSnr