Skip to content

A short welcome on the first visit, and What's new after an update - #8

Merged
EveAeternam merged 2 commits into
mainfrom
claude/onboarding-whats-new-guzwbv
Oct 13, 2026
Merged

EveAeternam merged 2 commits into
mainfrom
claude/onboarding-whats-new-guzwbv

Conversation

@EveAeternam

Copy link
Copy Markdown
Collaborator

Requested by Evie · project thread

What changed and why

Before: someone opening Shell:B for the first time landed on a new chat with no introduction, and changes only showed up in Settings → Changelog.

After: on a person's first visit, a three-screen welcome (Skip on every screen) says what Shell:B is, how agents work, and where to start. Its last button, Show me, scrolls to the new chat page's existing What Shell:B can do section instead of repeating it. After an update, the new chat page shows a small What's new card once, with up to three plain sentences and a See all changes link to Settings → Changelog.

How:

  • server/onboarding.py serves GET /api/onboarding and POST /api/onboarding/seen and keeps the state in the kv table, so it is remembered per person on the server and doesn't come back on another device. Each guest cell has its own database, so each guest is remembered separately.
  • The card is built from docs/changelog.json. An entry gets onto it through a new, optional news line (one plain sentence). Entries without one stay in the Changelog only. I wrote news lines for the new chat page, the Agent Store, Thalassa, and the French interface.
  • A new person gets the welcome and is not shown older news afterwards. Someone who already has chats skips the welcome and sees the latest news instead.
  • NewChatHome renders both on desktop and phone, and everyone sees the same UI.
  • AGENTS.md and CONTRIBUTING.md describe the news field.

How you tested it

  • scripts/check.sh: compile, pyflakes and tsc pass. Two tests fail in the cloud container and also fail on main there: /api/models with no Ollama, and an unreadable-file backup test that breaks when run as root.
  • User-visible change: entry added at the top of docs/changelog.json
  • New UI strings wrapped in t('…') with a French line in ui/src/i18n/fr.json. These are appended, not re-sorted. A new test checks that every news line has French.
  • Manual or API docs updated where a route, tool or table changed
  • No secrets, chats or personal data in the diff or the screenshots

New tests in tests/onboarding_test.py cover the first-run cases, news showing only once, and the welcome counting as having seen the news. I also tried it in Chromium against a scratch server. Finishing the welcome in one browser meant a second browser didn't get it, and the card showed on both desktop and phone widths.

Screenshots

Screenshots of the welcome, the card, and the card on a phone are in the project thread.

New dependencies

None.

🤖 Generated with Claude Code

https://claude.ai/code/session_018go55qk4ihWMhkzn8r7rpK


Generated by Claude Code

The first time someone opens Shell:B, a three-screen welcome (always skippable)
says what it is and how agents work; its last button leads to the new chat
page's own What Shell:B can do section. After an update, the new chat page
shows a small What's new card once, built from an optional `news` line on
docs/changelog.json entries. Both are remembered on the server (kv
"onboarding"), so they don't come back on another device; a guest's cell keeps
its own. People who already have chats skip the welcome and see the latest
news instead. French for every new string, appended to fr.json.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018go55qk4ihWMhkzn8r7rpK
@EveAeternam EveAeternam self-assigned this Oct 13, 2026
docs/changelog.json: both sides added an entry at the top; this branch's first, then main's.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018go55qk4ihWMhkzn8r7rpK
@EveAeternam
EveAeternam marked this pull request as ready for review October 13, 2026 03:19
@EveAeternam
EveAeternam merged commit 19259e4 into main Oct 13, 2026
2 checks passed
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.

2 participants