Show only one tip on first start - #495
Open
joe4dev wants to merge 1 commit into
Open
Conversation
joe4dev
force-pushed
the
devx-821-enforce-max-one-tip
branch
2 times, most recently
from
September 8, 2026 14:33
55008c9 to
2f6fbbe
Compare
1 task
Co-Authored-By: Claude <noreply@anthropic.com>
joe4dev
force-pushed
the
devx-821-enforce-max-one-tip
branch
from
September 9, 2026 12:44
2f6fbbe to
2360c8a
Compare
joe4dev
marked this pull request as ready for review
September 9, 2026 12:51
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.
Motivation
#484 added a shell-completion tip on first start, and it rendered directly below the rotating
lstk logs/lstk statustip. Two tips side by side compete for attention and neither lands. With no single owner for that line, every future nudge would race the existing ones for it.Solution
At most one
> Tip:line per run, enforced structurally rather than by convention:selectTip(newinternal/container/tips.go) is the only place that decides which tip to show, and it returns one string, not a list. The first-run completion tip outranks the rotating per-emulator tips: first run happens once per install, while the rotating tips come back on every later start.container.Startis the only place that emits it. Its body moved to an unexportedstart, leaving the public entry point a thin wrapper around the single emit.emitPostStartPointersno longer emits a tip, andinternal/uino longer emits one either —RunOptions.CompletionTipis replaced byStartOptions.FirstRun.Adding a tip now means ranking it inside
selectTip; there is nowhere else to put it. The rule is written up under "Post-start tips" inCLAUDE.md.User-visible change: a first interactive start shows the completion tip and nothing else. Every other run is unchanged, rotation included —
tipsForTypeand all six tips moved to the new file byte-for-byte.Tests:
internal/container/tips_test.gopins the priority order and that no input combination can produce two lines; the existing first-run integration test now asserts the set of distinct tips is exactly the completion tip, and the subsequent-run test asserts exactly one tip.Docs
No documentation change needed — no new command, flag, or env var. The only user-facing change is that a first interactive start shows one tip instead of two. The shell-completion tip text and the
#shell-completionsdocs anchor it points at are unchanged, so that anchor should still stay stable.Separately, @gtsiolis suggested a short URL for terminal output (#484 comment). That needs a docs-repo redirect (e.g. reserving
/go/<topic>) before the CLI can point at one, so it is out of scope here.Manual testing (on fish shell)
The first CLI invocation shows the tab completion tip exactly once (including false positive for Homebrew install):

Every subsequent

lstk startcommand rotates the existing tips as usual:Review
Human review advised — it changes user-facing output on the shared start path, and @gtsiolis raised the original concern on #484, so it's worth confirming this is the resolution he had in mind.
Related
Follow up from DEVX-821
Resolves DEVX-1119