Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Flush the connection log buffer after N failed reconnect attempts against an unreachable server

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

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

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

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
45/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
typescript

調査の方向性

Start by reading src/websocket/reconnectingWebSocket.ts and src/logging/logBuffer.ts, then review PR #1100 for the existing flush triggers and reasons. Settle the retry threshold, counter reset, and one-flush-per-failure-episode behavior. Done means sustained unreachable-server retries flush the buffer once, a successful connection resets the episode, and later terminal failures retain their existing behavior.

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

説明

enhancement tech-debt
Background

DEVEX-669 (#1100) added BufferingLogger, which flushes buffered below-level connection logs into the "Coder" output channel on a genuine, surfaced connection failure:

  • a reconnecting WebSocket terminal failure (unrecoverable_close, unrecoverable_http, or certificate_error; a handshake 401 is excluded because a token refresh reconnects the same socket);
  • a failure while opening a workspace (canceled build, missing agent, timeout, or CLI/certificate error).

During Ehab's review of #1100 we agreed to defer one additional trigger: flushing after N consecutive failed reconnect attempts against an unreachable server.

Problem

When a server is simply unreachable, the reconnecting WebSocket keeps retrying with backoff and never reaches a terminal failure reason, so the buffer is never flushed. A user reproducing a "can't connect / hangs on connecting" problem therefore gets no buffered detail in their support bundle, even though plenty of below-level context was captured.

Proposal

Flush the connection log buffer once a reconnect loop has failed N consecutive times (i.e., treat sustained unreachability as a genuine failure worth surfacing), then avoid re-flushing on every subsequent attempt until a successful connect resets the counter.

Open questions to settle during implementation:

  • Value of N (or a time-based threshold instead of / in addition to a count).
  • Where the counter lives and how it resets on a successful open.
  • Guarding against repeated flushes while still stuck (flush once per failure "episode").
  • A meaningful flush reason/route for attribution, consistent with the existing terminal-failure reasons.
References
  • PR #1100 (DEVEX-669)
  • src/websocket/reconnectingWebSocket.ts, src/logging/logBuffer.ts

🤖 Filed by Coder Agents on behalf of @aqandrew, following up on the #1100 review.

主要言語
TypeScript
スター
131
フォーク
48
平均マージ
4日 15時間
マージ済み PR(30日)
17

環境構築

はじめの一歩

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

coder/vscode-coder のほかの issue

coder/vscode-coder の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

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

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