Native Runtime: codepilot_schedule_task and related builtin tools not available in any session

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

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

評価

難易度
4/5
見積もり時間
1〜2日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
electron, nextjs, typescript
領域
desktop, tooling

調査の方向性

Start in src/lib/builtin-tools/index.ts and inspect the notification module and its imports, especially the require('./notification') path and notification.ts. Reproduce the missing tools in a Native Runtime chat, then check why the notification group is not registered. Done means the listed notification tools are available in eligible sessions and the module-loading failure is no longer silent.

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

説明

needs-repro P1-runtime-session

Description

In CodePilot's Native Runtime, the scheduled task / notification builtin tools (codepilot_schedule_task, codepilot_list_tasks, codepilot_cancel_task, codepilot_notify, codepilot_hatch_buddy) are not available in any chat session — neither in assistant mode nor in any other conversation.

The model prompt lists the harness extensions, and NotificationMcp (Native Runtime) is shown as a plugin (not executable), while all other CodePilot extensions (e.g. DashboardMcp, SessionSearchMcp, CliTools, MemorySearch) correctly show as executable.

Expected Behavior

Per src/lib/builtin-tools/index.ts, getToolGroups() registers codepilot-notify with condition: 'always', so these tools should be available in every non-heartbeat, non-plan session:

  • codepilot_notify — send notification
  • codepilot_schedule_task — create scheduled task (cron / interval / once)
  • codepilot_list_tasks — list scheduled tasks
  • codepilot_cancel_task — cancel a task
  • codepilot_hatch_buddy — hatch buddy

Actual Behavior

The model's tool list does not include any of the above. The harness extension list shows:

- NotificationMcp (Native Runtime) (native plugin) — Detected in builtin-tools. Not executable...

while other Native Runtime tools correctly show:

- DashboardMcp (Native Runtime) (native plugin) — Detected in builtin-tools. Executable in current Runtime

Steps to Reproduce

  1. Open CodePilot desktop app
  2. Start any chat session (assistant mode or normal)
  3. Ask the model to create a scheduled task, e.g. "帮我创建一个10分钟间隔的心跳任务"
  4. The model cannot call any schedule/notify tool

Root Cause Investigation

From the source code (src/lib/builtin-tools/index.ts):

try {
  const { createNotificationTools, NOTIFICATION_SYSTEM_PROMPT } = require('./notification');
  groups.push({
    name: 'codepilot-notify',
    systemPrompt: NOTIFICATION_SYSTEM_PROMPT,
    condition: 'always',
    tools: createNotificationTools({
      sessionId: options.sessionId,
      workingDirectory: options.workspacePath,
    }),
  });
} catch { /* notification module not available */ }

The catch block is silent. It appears the require('./notification') is failing silently, so the group never gets registered.

Other tools with the same pattern (e.g. ./dashboard, ./session-search) work fine, so the issue is likely specific to the notification module — possibly a missing dependency (e.g. @/lib/notification-manager) that throws during require().

Suggested Fix

  1. Add logging to the catch block so the failure is visible in dev/console:
    catch (err) {
      console.warn('[builtin-tools] Failed to load notification module:', err);
    }
    
  2. Check if @/lib/notification-manager or any import in notification.ts has a missing dependency or circular import that causes silent failure.

Environment

  • CodePilot version: latest (as of 2026-06-12)
  • OS: macOS (Darwin, arm64)
  • Runtime: Native Runtime (CodePilot desktop client)
主要言語
TypeScript
スター
6.5k
フォーク
697
PR マージ指標
30日以内にマージされた PR はありません

環境構築

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

はじめの一歩

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

op7418/CodePilot のほかの issue

op7418/CodePilot の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

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

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