[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)

オープン
#31 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
56/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
typescript
領域
desktop, frontend

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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.
主要言語
TypeScript
スター
130
フォーク
8
平均マージ
1分
マージ済み PR(30日)
15

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

open-webui/tether のほかの issue

open-webui/tether の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。