Conversation
First run: the Overview's "never used" empty state becomes a three-step checklist (add an upstream, connect a client, send a first request). Each step is ticked from the facts — how many upstreams there are, which clients are connected (adopted, or set up by hand with a key, or whose probes the gateway already answered) — not from which buttons were pressed, so an upstream added elsewhere counts too. Only the current step offers its button; the last one shows that it is waiting for a request. The checklist gives way to the usage figures when the first real request arrives. During use, one-line hints at the moment they apply, each with the button for the next step and "Don't show again": - Overview: the first request went through (only for people who saw the checklist; upgraders are not told about a "first" request), with a button that opens it. - Upstreams: there are upstreams but no client is connected yet. - Clients: no upstream yet; or clients are connected but no request has arrived, naming them. - Traffic: what opening a request shows. - Security: how many protections are in Observe, and that they can be set to Enforce once the log shows no false positives. Hints disappear on their own when their condition stops holding. What was dismissed is kept on this computer (localStorage), not in config.yaml, and Settings › General gains "Guidance › Show again". The checklist and hints use the existing Banner (one lightbulb icon for hints only) and the "接管" terminology. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
First run. The Overview's "never used" empty state becomes a three-step checklist:
Each step is ticked from the current facts, not from which buttons were pressed:
So an upstream added elsewhere counts too. Only the current step offers its button ("New upstream…", "Go to Clients"), and the third step shows that it is waiting for a request. When the first real request arrives (local answers to probes do not count, matching the Overview's existing rule), the checklist gives way to the usage figures.
During use. One-line hints appear at the moment they apply. Each carries the button for the next step and "Don't show again", and disappears on its own when its condition stops holding:
Settings. Dismissed hints are kept on this computer (
localStorage, keytw-guide), not inconfig.yaml. Settings › General gains Guidance › Show again, which is disabled when nothing has been dismissed.Implementation. Everything lives in
src/guide/and builds on the existingBanner. Hints get one lightbulb icon used for nothing else. The copy follows the terminology table ("接管"). The copy test bans 「知道了」 as conversational, so the dismiss action is 「不再显示」.Tests:
src/guide/hints.test.tscovers showing, dismissing across a restart, resetting, the setup-seen flag, unreadable storage and storage that cannot be written; the full suite andtscpass. Checked in the preview harness in light and dark mode, zh and en, at 1100×720:🤖 Generated with Claude Code