Run in internal/cli/app.go calls SetStatus and AddStatus before it starts the UI with ui.Run. Each of them calls QueueUpdateDraw from tview. In tview v0.42.0, that call waits until the event loop has run the update. The event loop has not started yet, so the first call never returns, and neoirc-cli stops before it shows its screen.
A throwaway test that called SetStatus on a new UI before Run did not return within 2 seconds.
Found while working on #223, which has the same cause.
Model: opus-5-5
`Run` in `internal/cli/app.go` calls `SetStatus` and `AddStatus` before it starts the UI with `ui.Run`. Each of them calls `QueueUpdateDraw` from `tview`. In `tview` v0.42.0, that call waits until the event loop has run the update. The event loop has not started yet, so the first call never returns, and `neoirc-cli` stops before it shows its screen.
A throwaway test that called `SetStatus` on a new `UI` before `Run` did not return within 2 seconds.
Found while working on https://git.eeqj.de/sneak/neoirc/issues/223, which has the same cause.
Model: opus-5-5
Plan: confirmed on next and on main. Run in internal/cli/app.go calls SetStatus and AddStatus before ui.Run starts the event loop, and both wait for that loop, so neoirc-cli never shows its screen. This comes right after #223, which changes the same files, and before the other open bugs, since the client cannot start at all.
Fix: the smallest plain change in internal/cli so that the start-up status bar and the two welcome lines are shown without waiting on an event loop that has not started. Change nothing else.
Definition of done
neoirc-cli starts and shows its screen, with the status bar showing disconnected and the two welcome lines in the status window.
A test in internal/cli runs the client's start-up path on a tcell simulation screen, fails within a few seconds if the event loop never starts, and checks that the welcome lines are in the status window.
One reviewed PR against next, cut after #223 has landed.
Model: opus-5-5
Plan: confirmed on `next` and on `main`. `Run` in `internal/cli/app.go` calls `SetStatus` and `AddStatus` before `ui.Run` starts the event loop, and both wait for that loop, so `neoirc-cli` never shows its screen. This comes right after https://git.eeqj.de/sneak/neoirc/issues/223, which changes the same files, and before the other open bugs, since the client cannot start at all.
Fix: the smallest plain change in `internal/cli` so that the start-up status bar and the two welcome lines are shown without waiting on an event loop that has not started. Change nothing else.
## Definition of done
1. `neoirc-cli` starts and shows its screen, with the status bar showing `disconnected` and the two welcome lines in the status window.
2. A test in `internal/cli` runs the client's start-up path on a `tcell` simulation screen, fails within a few seconds if the event loop never starts, and checks that the welcome lines are in the status window.
3. One reviewed PR against `next`, cut after https://git.eeqj.de/sneak/neoirc/issues/223 has landed.
Model: opus-5-5
Fixed in #230: the start-up status bar and welcome lines now wait for the event loop on a goroutine, so Run reaches ui.Run. The status bar still does not show disconnected, for a separate reason filed as #229.
Model: opus-5-5
Fixed in https://git.eeqj.de/sneak/neoirc/pulls/230: the start-up status bar and welcome lines now wait for the event loop on a goroutine, so `Run` reaches `ui.Run`. The status bar still does not show `disconnected`, for a separate reason filed as https://git.eeqj.de/sneak/neoirc/issues/229.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Runininternal/cli/app.gocallsSetStatusandAddStatusbefore it starts the UI withui.Run. Each of them callsQueueUpdateDrawfromtview. Intviewv0.42.0, that call waits until the event loop has run the update. The event loop has not started yet, so the first call never returns, andneoirc-clistops before it shows its screen.A throwaway test that called
SetStatuson a newUIbeforeRundid not return within 2 seconds.Found while working on #223, which has the same cause.
Model: opus-5-5
Plan: confirmed on
nextand onmain.Runininternal/cli/app.gocallsSetStatusandAddStatusbeforeui.Runstarts the event loop, and both wait for that loop, soneoirc-clinever shows its screen. This comes right after #223, which changes the same files, and before the other open bugs, since the client cannot start at all.Fix: the smallest plain change in
internal/cliso that the start-up status bar and the two welcome lines are shown without waiting on an event loop that has not started. Change nothing else.Definition of done
neoirc-clistarts and shows its screen, with the status bar showingdisconnectedand the two welcome lines in the status window.internal/cliruns the client's start-up path on atcellsimulation screen, fails within a few seconds if the event loop never starts, and checks that the welcome lines are in the status window.next, cut after #223 has landed.Model: opus-5-5
clawbot referenced this issue2026-11-02 00:29:03 +01:00
clawbot referenced this issue2026-11-02 01:12:59 +01:00
Fixed in #230: the start-up status bar and welcome lines now wait for the event loop on a goroutine, so
Runreachesui.Run. The status bar still does not showdisconnected, for a separate reason filed as #229.Model: opus-5-5