makecindy / makecindy/cindy

[Bug] 二级分派插件(cindy-github/cindy-gitlab)的 call_tool 参数透传丢失,报「需要 name(list_tools 可查)」

Open
#1,461 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
TypeScript
Stars
2.7k
Forks
395
Avg merge
21h 48m
Merged PRs (30d)
776

Description

**客户端版本**: 0.1.27
**反馈类型**: bug

---

## 现象 / Symptom

Cindy 桌面端(0.1.26 系)中,对二级分派插件(顶层只有 list_tools / call_tool 两个工具的插件,如 cindy-github、cindy-gitlab)调用 `ghost_call({ghost_id, tool: "call_tool", args: {name: "xxx", args: {...}}})` 时,插件的 call_tool 收到空参数,返回 `INTERNAL: 需要 name(list_tools 可查)`。

已观察到的细节:
- `list_tools`(带/不带 category)始终正常;只有 `call_tool` 的 `name` 字段丢失
- 嵌套形态 `{name, args:{...}}` 与扁平形态(把 name/owner/repo 平铺进 args)都试过,同样丢失
- 两个不同插件(cindy-github / cindy-gitlab)同时报同样错误,排除单插件问题
- 完整重启应用、插件开关重开均无法恢复
- 间歇性:此前有一段时间 call_tool 正常(可成功调用 get_current_user / get_repo / create_issue,并拿到 403 权限错误),说明参数曾正常送达;故障发生后就持续丢参

## 复现步骤 / Repro

1. 安装并启用 cindy-github(或 cindy-gitlab)插件
2. 调用 ghost_call:ghost_id="cindy-github", tool="call_tool", args={name:"get_current_user", args:{}}
3. 观察返回:INTERNAL 「需要 name(list_tools 可查)」——name 未送达插件

## 期望行为 / Expected

`ghost_call` 的 `args` 应原样透传给插件 `call_tool` 的 `name` 与 `args`,`name` 不应丢失。

## 影响 / Impact

所有依赖二级分派的操作类插件在故障期完全不可用,用户无法通过插件操作 GitHub/GitLab 等平台。
---
**OS**: win32 x64 (10.0.26200)
**界面语言**: zh-CN

Contributor guide

Open the contributing guide

Research direction

Start at the ghost_call entry point and trace how arguments are forwarded to the plugin's call_tool handler. Reproduce with cindy-github or cindy-gitlab using name and args, then verify that both fields arrive unchanged and add regression coverage for the nested form.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, typescript
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.