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

Remote project plugins: replace the host mirror (Windows hosts, per-file framing)

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

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

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

評価

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

調査の方向性

Start by reading agentPlugins/discovery.ts and the existing host mirror flow introduced by #6426. The proposal is to make discovery and plugin readers use an in-memory read-only runtime, with per-file framing in the listing; check the relevant tests and add coverage for Windows hosts and concurrent file changes. Done means remote project plugins are read without host filesystem paths and per-file content boundaries are verified.

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

説明

Summary

After #6426 (#7220, #7222, #7224), Xum reads the project plugins of a trusted SSH or Docker checkout through a host mirror: one remote listing, rebuilt in a private temp folder, parsed by the unchanged discoverAgentPlugins. Three gaps remain. They have one common fix, so this issue tracks them together.

  1. Windows hosts load no remote project plugins. Windows path rules (8.3 short names, reserved device names, trailing dots and spaces) can alias mirror paths, so createSnapshot returns no snapshot when process.platform is win32 (fail closed).
  2. No per-file framing. The listing sends file sizes in one pass (wc -c) and bytes in a second pass (cat), and checks only that the sizes add up. A concurrent writer in a trusted checkout can shift file boundaries (two files changing by equal and opposite sizes, or a rename between the passes). That gives wrong content, never an escape from the mirror.
  3. The mirror is the source of this class of findings. Case folding, Unicode normalization and Windows paths are all host-filesystem effects.

Proposal

Replace the host mirror with an in-memory read-only runtime fed by the listing, so discoverAgentPlugins and the plugin readers never touch the host filesystem for remote content. This needs agentPlugins/discovery.ts to read through a runtime or file-reader interface instead of node:fs. Then:

  • Windows hosts work, because no host paths are created.
  • Per-file framing can be done in the listing format (for example a size and a digest per file).

Refs #6426.


Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

主要言語
TypeScript
スター
2.1k
フォーク
140
平均マージ
4時間 57分
マージ済み PR(30日)
946

環境構築

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

はじめの一歩

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

coder/xum のほかの issue

coder/xum の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

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

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