Skip to content

fix(tui): keep onboarding status notifications visible - #3378

Open
TheJhyeFactor wants to merge 1 commit into
charmbracelet:mainfrom
TheJhyeFactor:codex/fix-onboarding-status-order
Open

fix(tui): keep onboarding status notifications visible#3378
TheJhyeFactor wants to merge 1 commit into
charmbracelet:mainfrom
TheJhyeFactor:codex/fix-onboarding-status-order

Conversation

@TheJhyeFactor

@TheJhyeFactor TheJhyeFactor commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Fixes #3044

What was happening

Hey, I had a look at this on current main.

The status row was drawn before the onboarding dialog. Because that dialog is bottom-aligned, it could overwrite the row containing clipboard confirmations and update notices. The notification still existed in state, but it wasn't visible.

How I reproduced it

I've added a render regression test that puts the UI in onboarding state, draws a dialog over the bottom row, and checks that an update notice remains visible.

Before the change, the test fails because the dialog replaces the entire status row. After the change, it passes consistently.

What changed

During onboarding, the status row is now drawn after the dialog. The normal landing, chat, and initialize render order is unchanged.

The dialog cursor is preserved, and the status layer still hides onboarding help text as before.

Validation

Run on Apple M4, darwin/arm64, Go 1.26.5:

  • go test -race -failfast ./...
  • go build -race ./...
  • golangci-lint run --path-mode=abs --config=.golangci.yml --timeout=5m
  • ./scripts/check_log_capitalization.sh
  • go mod tidy (no diff)
  • go test ./internal/ui/model -run TestDraw_OnboardingStatusRendersAboveDialog -count=10

This isn't a performance change, so there isn't a benchmark comparison.

Risk

The change is limited to onboarding render order. When a notification is active, it intentionally owns the final status row instead of letting the onboarding dialog cover it.

@TheJhyeFactor

Copy link
Copy Markdown
Contributor Author

Hey @meowgorithm, when you have a minute, could you approve the workflows on this one? The build, lint and security runs haven’t started yet. I’d really appreciate a review of the notification ordering once they’re green.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Status line obscured by onboarding dialog

1 participant