EnterWorktree called by a teammate moves the lead and every other in-process teammate
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 78/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
調査の方向性
まず src/tools/AgentTool/agentToolUtils.ts の teammate ツールフィルターと、src/constants/tools.ts の許可されたツール一覧を読みます。teammate フィルターを実行し、EnterWorktree と ExitWorktree が含まれないことを確認するテストを追加し、その後テストが通るように許可されたツール一覧を更新します。Issue では、テストは現在 main で失敗するとされています。in-process の teammate に対して両方のツールが除外されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
What happens
In-process teammates share one process with the lead. When one teammate calls EnterWorktree, the lead and all other teammates in that process switch to its worktree too.
Cause
EnterWorktreechanges process-wide state:process.chdir,setCwdandsetOriginalCwd(src/tools/EnterWorktreeTool/EnterWorktreeTool.ts:94-96).- Teammates are allowed to call it:
ENTER_WORKTREE_TOOL_NAMEandEXIT_WORKTREE_TOOL_NAMEare inASYNC_AGENT_ALLOWED_TOOLS(src/constants/tools.ts:69-70), which is the tool filter for async agents and in-process teammates (src/tools/AgentTool/agentToolUtils.ts:100). - Per-agent working directories exist only through
runWithCwdOverride(src/utils/cwd.ts), which ordinary subagents use and teammates do not.
Example
- The lead creates a team with teammates A and B in the same process.
- A calls
EnterWorktree. - The lead's and B's next file reads and writes, Bash commands and permission checks (anything that reads
getCwd()orgetOriginalCwd()) run in A's worktree. Edits meant for the user's project land in A's worktree, and the other way round.
Proposed fix
- Short term: remove
EnterWorktreeandExitWorktreefrom the tools in-process teammates get. - Later, if teammates should have their own worktrees: make the working directory per teammate by wrapping the teammate's run (
runWithTeammateContextinsrc/utils/swarm/inProcessRunner.ts) inrunWithCwdOverride, and record the path in the team file'sworktreePathso the UI can show it. That belongs to #166, which is on hold.
Tests
A test that runs a teammate's tool filter and asserts EnterWorktree and ExitWorktree are absent; it fails on current main.
Part of #162.
- 主要言語
- TypeScript
- スター
- 490
- フォーク
- 47
- 平均マージ
- 10時間 53分
- マージ済み PR(30日)
- 81
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
GoDiao/dreamcoder のほかの issue
-
[good first issue] UX polish — friendlier copy for error toasts and empty states対応中かも @iamcipherdev が 13 日前に担当しました。 オープンarea:i18n area:ux difficulty:1 good first issue mentor-available
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
GoDiao/dreamcoder#9 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
Add more provider presets (Groq / OpenRouter / SiliconFlow / etc.)再び着手できるかも @01iamysf が 21 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンarea:desktop area:provider difficulty:1 good first issue mentor-available
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
GoDiao/dreamcoder#6 · コメント 6 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
GoDiao/dreamcoder#209 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
GoDiao/dreamcoder#208 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 1〜2日 初心者へのやさしさ 48/100
GoDiao/dreamcoder#204 ·
メンテナーはふだん 1 日以内に返信
GoDiao/dreamcoder の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
better-auth/better-auth#12132 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
o8 next debug build aborts on Glass to Dark appearance switch (nil identifier messaged before check)オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
hurttlocker/o8#5112 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
webrecorder/wabac.js#386 ·
-
needs-triage
難易度 1/5 1〜3時間 初心者へのやさしさ 92/100
agent-of-empires/agent-of-empires#5098 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信