feat(cli): CLI 优化——精简列表/分页、--pr 传参、评审写操作、agent 中断与 run 管理、whoami、skill 交付 - #167
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
本轮对
meeboxCLI 与本地 API 的一揽子优化,每个关键任务独立提交、逐条过门禁。PR 列表与契约
GET /prs返回PrListItem(字段序 id/title/author/createdAt 优先、去 description 明细、人员仅 slug + status),新增skip/limit(默认 limit 100)。primary/secondary改为category/status;/categories响应键随之改categories/statuses。id;PR 关联命令统一用必填 flag--pr <id>。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。instruct只读白名单不变)。Agent 中断
agent stop:PR 级中断整个 Agent。agent run list/agent run cancel --run <id>:按单个 pr-agent run 查看 / 取消(更细粒度)。连接与安全
config.yaml含连接层机密,静默取服务令牌属越权;连接改为仅 flag / 环境变量(MEEBOX_API_URL/MEEBOX_TOKEN)/cli.yaml。Skill 交付
cli/SKILL.md(name: meebox);release 压缩包除二进制外一并打包LICENSE+README.md+SKILL.md——解压投放到 agent 的 skills 目录即得可用 skill。cli/README.md。其他
.btn-link样式。.editorconfig补 Go 缩进规则(tab、显示宽度 4)。文档
验证
lint/typecheck(15 projects)/test(11 projects)/build全绿。go vet/go test/go build全绿(含新增 render 保序、命令树、写操作、run、whoami 集成测试)。🤖 Generated with Claude Code