Skip to content

feat(cli): CLI 优化——精简列表/分页、--pr 传参、评审写操作、agent 中断与 run 管理、whoami、skill 交付 - #167

Merged
huhamhire merged 12 commits into
devfrom
feat/cli-optimization
Jul 1, 2026
Merged

feat(cli): CLI 优化——精简列表/分页、--pr 传参、评审写操作、agent 中断与 run 管理、whoami、skill 交付#167
huhamhire merged 12 commits into
devfrom
feat/cli-optimization

Conversation

@huhamhire

Copy link
Copy Markdown
Owner

本轮对 meebox CLI 与本地 API 的一揽子优化,每个关键任务独立提交、逐条过门禁。

PR 列表与契约

  • 精简列表投影 + 分页GET /prs 返回 PrListItem(字段序 id/title/author/createdAt 优先、去 description 明细、人员仅 slug + status),新增 skip/limit(默认 limit 100)。
  • 分类命名语义化:一二级筛选参数由 primary/secondary 改为 category/status/categories 响应键随之改 categories/statuses
  • PR 标识对外为 id;PR 关联命令统一用必填 flag --pr <id>
  • 保序输出:CLI 渲染改为保留服务端字段顺序(JSON 走 json.Indent、YAML 走 json 令牌流构建 yaml.Node)。

命令树

  • 两个平级领域组 pr(PR 实体操作)与 agent(评审 Agent 操作);agent 不再嵌进 pr(避免 pr agent … --pr 的 pr 重复)。
  • 新增 whoami(当前身份 + 集成平台)。

写能力(打破纯只读边界)

  • 新增 pr approve / pr needswork(真实远端评审决断)与 pr comment(发顶层评论),复用 GUI 同源 controller。
  • 不开放:merge(合并)与 pr-agent 变更类工具(publish 等,instruct 只读白名单不变)。

Agent 中断

  • agent stop:PR 级中断整个 Agent。
  • agent run list / agent run cancel --run <id>:按单个 pr-agent run 查看 / 取消(更细粒度)。

连接与安全

  • 移除读取 GUI 主配置的本机自动发现config.yaml 含连接层机密,静默取服务令牌属越权;连接改为仅 flag / 环境变量(MEEBOX_API_URL / MEEBOX_TOKEN)/ cli.yaml

Skill 交付

  • 新增 cli/SKILL.mdname: meebox);release 压缩包除二进制外一并打包 LICENSE + README.md + SKILL.md——解压投放到 agent 的 skills 目录即得可用 skill。
  • 重写严重过期的 cli/README.md

其他

  • 修复批量发布评论「全选 / 取消全选」按钮缺失的 .btn-link 样式。
  • .editorconfig 补 Go 缩进规则(tab、显示宽度 4)。
  • CLI 命令构造器补 Go doc 注释。

文档

  • 同步 arch service-api / arch cli / arch README、guide 06-cli、AGENTS.md、CHANGELOG。

验证

  • 根门禁 lint / typecheck(15 projects)/ test(11 projects)/ build 全绿。
  • CLI go vet / go test / go build 全绿(含新增 render 保序、命令树、写操作、run、whoami 集成测试)。

🤖 Generated with Claude Code

huhamhire and others added 12 commits July 1, 2026 16:16
CLI 不再读应用主配置 config.yaml 的 service 段自动取 host/port/token:该文件承载
各代码平台访问令牌等连接层机密,静默取服务令牌等于让 CLI 越权触达预期外凭据。连接
改为仅 flag > 环境变量(MEEBOX_API_URL / MEEBOX_TOKEN)> cli.yaml,token 缺失即报
鉴权错误;环境变量为本机免逐次传参的推荐方式。同步更新 CLI 设计 / 使用文档与 arch 索引。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PublishReviewModal 工具栏的切换按钮用了未定义的 .btn-link 类,回退到浏览器默认按钮
外观。补一个文本型按钮样式(无底无边框、强调蓝、hover 下划线),读作行内链接动作。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
此前无 [*.go] 段,Go 文件落到 [*] 默认的 space/2,与 gofmt 恒用 tab 冲突。补 [*.go]
与 [go.mod] 段:缩进用 tab(gofmt 强制、非空格),tab 显示宽度约定为 4。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
服务端 GET /prs 改为返回精简列表投影 PrListItem(新增 api-server/views.ts 作视图层
树结构约束单一投影):去 description 明细、人员仅 slug(reviewer 附 status)、字段序
以 id/title/author/createdAt 优先;localId 对外命名为 id。新增 skip/limit 分页(默认
limit 100)。一二级分类改用语义化命名:query 参数 category(原 primary)/ status(原
secondary),/categories 响应键随之改为 categories/statuses。

CLI:pr list 新增 --category/--status/--skip/--limit;渲染层改为保序输出(JSON 走
json.Indent、YAML 走 json 令牌流构建 yaml.Node),使服务端字段序透传到视图,不再被
map 排序打乱。补保序单测。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
命令树调整:
- PR 标识改用显式命名 flag `--pr <id>`(原位置参数),各 PR 关联命令调用更自描述;
  新增 prIDFlag 辅助统一注册为必填。
- agent 命令与 PR 强关联、且必带 PR id,故整组下沉到 `pr agent ...`(原顶层 `agent`)。
- 每个命令构造器补 Go doc 注释(用途 + 对应 API 端点)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
打破此前「纯只读」边界,提供评审写能力(复用 GUI 同源 controller,均为真实远端写):
- 服务端新增 POST /prs/{id}/approve、/needswork(setPrStatus 写远端评审决断)与
  /comment(createComment 发顶层评论,空正文 400)。
- CLI 新增 pr approve / pr needswork / pr comment <message>;抽 postAndRender 复用。

仍不暴露:merge(合并)与 pr-agent 变更类工具(publish 等,instruct 只读白名单不变)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
服务端新增 POST /prs/{id}/agent/stop(复用 agent:stop / orchestrator.stop),CLI 新增
pr agent stop --pr <id>。粒度取 PR 级——中断该 PR 的 Agent 于思考 / 执行任意阶段即时停;
不做按单个工具 run 的中断(runId 用户侧不易获取,PR 级更贴合 CLI 使用)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
服务端新增 GET /whoami:返回活动连接的 PAT 所属用户(name/displayName/slug)、平台种类
与连接显示名(收窄,不带 capabilities 大对象);无活动连接时各项为 null。CLI 新增顶层
meebox whoami,便于确认令牌解析到的账号 / 平台是否符合预期。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
同步 CLI 优化的全部对外契约变更:
- 写边界改述:开放评审写动作(approve / needswork / comment),合并与 pr-agent
  变更类工具(publish 等)仍不开放;instruct 只读白名单不变。
- 端点表 / 命令表重写:新增 whoami、approve/needswork/comment、agent/stop;PR 列表
  改精简投影 + skip/limit 分页 + category/status 命名;PR 标识对外为 id、命令用 --pr。
- 连接改述:移除本机自动发现,连接须显式提供、不读 GUI config.yaml。
- 覆盖 arch service-api / arch cli / arch README / guide 06-cli / AGENTS.md / CHANGELOG。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
比 PR 级 agent stop 更细的粒度:可查看并取消单个 pr-agent 工具调用 run。
- 服务端 GET /prs/{id}/agent/runs(复用 pragent:queue 快照、筛该 PR 的 active+waiting,
  投影 PrAgentRunItem:runId/tool/state/时间)与 POST /prs/{id}/agent/runs/{runId}/cancel
  (校验 run 归属该 PR,复用 pragent:cancel;不属则 404 SV_NOT_FOUND)。
- CLI 新增 run 子组:pr agent run list --pr <id> / pr agent run cancel --pr <id> --run <id>。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
meebox 只管理 PR,且 --pr <id> 已是所有 PR 命令的统一必填 flag,nest 在 pr 下会让
agent 命令出现 `pr agent … --pr` 的 pr 重复。改为 `pr`(PR 实体:浏览 + approve/
needswork/comment)与 `agent`(评审 Agent:status/history/review/instruct/chat/stop/
run list|cancel)两个平级领域组。仅命令树分组调整,API 路径与服务端不变。同步文档命令表。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
CLI 面向 agent 集成,主交付形态为 skill:
- 新增 cli/SKILL.md(frontmatter name: meebox)——连接方式、pr / agent 命令图、典型
  评审闭环、写边界与退出码,教 agent 驱动 meebox。
- release.yml 的 cli job 压缩包除二进制外一并打包 LICENSE + README.md + SKILL.md;
  解压到 agent 的 skills 目录即得可用 skill(SKILL.md 紧邻其驱动的二进制)。
- 重写严重过期的 cli/README.md(原称「只读 / scaffold / 自动发现 / --primary」均已不符)。
- 同步 arch cli / guide / AGENTS.md 说明 skill 交付。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@huhamhire huhamhire added enhancement New feature or request documentation Improvements or additions to documentation refactor 代码重构(不改运行行为) labels Jul 1, 2026
@huhamhire
huhamhire merged commit b9256bc into dev Jul 1, 2026
2 checks passed
@huhamhire
huhamhire deleted the feat/cli-optimization branch July 2, 2026 02:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request refactor 代码重构(不改运行行为)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant