Conversation
riba2534
left a comment
There was a problem hiding this comment.
感谢提交!审批功能是飞书核心模块,这个 PR 整体方向正确,代码质量不错。以下是审查发现的问题,请修复后可以合并。
🔴 Critical — 必须修复
internal/auth/token.go:81 — SaveToken 中 DeleteCurrentUserCache 失败会阻断 token 保存流程
SaveToken 在成功写入 token 文件后调用 DeleteCurrentUserCache(),如果缓存文件删除失败(例如文件权限问题),整个 SaveToken 返回 error。但此时 token 已经写入磁盘了。
这会导致所有触发 token 自动刷新的命令(搜索、任何用 user token 的命令)误判为刷新失败,是一个全局回归风险。
建议:缓存清理失败不应阻断核心 token 持久化,改为 best-effort(忽略错误或仅 debug 日志):
// Token 更新后清理旧的当前用户缓存(best-effort)
_ = DeleteCurrentUserCache()DeleteToken 中同理。
🟡 Warning
-
cmd/approval_task_query.go:47—--user-id检查是死代码init()中未注册--user-idflag,cobra 对未注册 flag 调用GetString始终返回空字符串,这个分支永远不会进入。要么注册为 deprecated flag,要么直接删除这段代码。
💡 Suggestion
-
cmd/approval_task_query.go:166—--topic建议标记为 Required当前
--topic为空时在normalizeApprovalTaskTopic中返回错误,但报错信息不如 cobra 原生的 required flag 直观。建议在init()中添加mustMarkFlagRequired(approvalTaskQueryCmd, "topic"),与项目其他命令风格一致。
3a63a7d to
889fa5e
Compare
|
感谢 review,三点都已按建议修复并推送更新。
已本地验证相关测试通过,麻烦再帮忙看一轮。 |
|
感谢提交!审批模块的实现质量不错,审查结果整体良好。 合并前需要一个小修复: 需修复
建议(不阻塞合并)
修复后请 push,我会合入。 |
7b97aa4 to
3dc1126
Compare
3dc1126 to
e7a886a
Compare
|
已处理:
已 push,麻烦再帮忙看一轮。 |
Summary
approval get,用于查询审批定义详情approval task query,用于查询当前登录用户相关的审批任务~/.feishu-cli/user_profile.json--output raw-json,支持直接输出飞书 API 原始响应Changed files
cmd/approval.go/cmd/approval_get.go/cmd/approval_task.go/cmd/approval_task_query.gocmd/utils.gointernal/client/approval.go/internal/client/user.gointernal/auth/user_cache.go/internal/auth/token.goREADME.md/cmd/root.go/CLAUDE.md/AGENTS.md/skills/feishu-cli-toolkit/SKILL.mdcmd/approval_get_test.go/cmd/approval_task_query_test.go/internal/auth/user_cache_test.go/internal/client/approval_test.goTest plan
go test ./...approval task query --help已显示json/raw-jsonapproval task query --output json与--output raw-json输出符合预期approval:approval:readonly和approval:task