[Tether 0.1.11 (integrated Open Terminal 0.17.5), Open WebUI 0.13.2] [Windows 11 x64] Terminal selector missing in chat after Tether starts, until the page is reloaded (Ctrl+R)

Open
#31 4 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
56/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
desktop, frontend

Research direction

Read the 0.1.11 startup flow around ensureLocal(), startTerminal(), and relay.setService('open_terminal', ...), then trace how the WebContentsView learns about relay services and fetches the terminal list. The report says the service is registered after the page may have fetched an empty list; confirm the event or reload path and how #7 relates. Done means the selector appears when the terminal becomes ready without a manual reload.

Written by the indexing model from the issue text.

Description

Version

Tether 0.1.11 (integrated Open Terminal 0.17.5), Open WebUI 0.13.2

Platform

Windows 11 x64

Description

After Tether starts (also after an automatic update restart), a new chat often shows no terminal selector, though the integrated Open Terminal runs and its log shows Application startup complete. Pressing Ctrl+R (reload) in the same Tether window makes the terminal selector appear at once, and the terminal then works. The relay is connected the whole time: the main process holds its WebSocket to the WebUI server before the reload.

Expected: the terminal selector appears without a manual reload as soon as the local terminal is ready.

Likely cause, from the 0.1.11 source:

  • ensureLocal() creates the Relay and connects it. The WebUI page loads in its WebContentsView at about the same time.
  • startTerminal() waits for terminal.start() (a few seconds: Python environment check, then Open Terminal boot) and only then calls relay.setService('open_terminal', ...), which sends the services frame.
  • If the page has already fetched its terminal list, it has an empty list and does not fetch again. Nothing in Tether reloads or notifies the page after setService. A reload fetches the list again, now with the terminal.

Timing from one start in main.log: Tether started at 23:45:35.8; the main-process connection to the server was open at 23:45:36; the Open Terminal environment check ended at 23:45:36.8, and the terminal starts after that.

Steps to reproduce
  1. Use a self-hosted Open WebUI 0.13.2 instance with Tether support, and sign in in Tether.
  2. Quit Tether completely, then start it.
  3. Open a new chat at once. The terminal selector is often missing.
  4. Press Ctrl+R. The terminal selector appears.
Additional context
  • Suggested fix: when the relay's services change (after setService), reload the connection's view or send it an event, so that the page fetches its terminal list again.
  • This may also explain some reports in #7 (terminal runs locally, but the chat shows no terminal).
  • Open WebUI runs behind a reverse proxy with a public certificate. The relay itself works: after the reload, terminal requests go through it.
Dominant language
TypeScript
Stars
130
Forks
8
Avg merge
1m
Merged PRs (30d)
15

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from open-webui/tether

All issues in open-webui/tether

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.