Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
310 commits
Select commit Hold shift + click to select a range
5e823c3
fix(mail): message/messages/thread 解码 base64url 正文并清理终端控制字符
riba2534 Oct 8, 2026
c7847be
feat(slides): 编辑闭环 add-slide/delete-slide/replace-slide/update-slide/…
riba2534 Oct 8, 2026
c504fa3
fix(auth): tenant_access_token 换取被拒时区分凭证错误,归鉴权类退出码 3
riba2534 Oct 8, 2026
253e352
feat(config): profile add / config init 支持 --app-secret-stdin 与 --pro…
riba2534 Oct 8, 2026
a8e127e
fix(mail): 邮箱接口先解析业务错误码,修正草稿 raw 读取路径
riba2534 Oct 8, 2026
b6b1c1c
fix(mail): reply/forward 引用解码原文并转义,回复头规范化,支持附件
riba2534 Oct 8, 2026
964bfdf
fix(mail): draft-edit 改为读取原草稿局部修改,保留回复头、附件与引用块
riba2534 Oct 8, 2026
318664e
refactor(mail): 内联图片不再多余上传云盘
riba2534 Oct 8, 2026
7aa8df0
feat(vc): vc notes 补 minute_token、note_id 与纪要类型
riba2534 Oct 8, 2026
e54c951
fix(auth): TAT 遇 429 按 Retry-After 重试一次;token.json 损坏时提示重新登录
riba2534 Oct 8, 2026
14ad00a
fix(auth): 吊销端点先解析业务码再看 HTTP 状态,错误预览脱敏并接入根 context
riba2534 Oct 8, 2026
21fb56a
fix(calendar): 全天日程起止、freebusy 默认本人并合并区间、重复日程按范围删改、写命令默认 auto 身份
riba2534 Oct 8, 2026
7204522
docs(skills): 日历工作流同步重复日程范围、默认 auto 身份、分享链接与参与人移除
riba2534 Oct 8, 2026
cd2ffcb
fix(drive): 异步任务 fail/failed 均视为失败;轮询忽略瞬时错误、限流立停并给续查命令;task-result 补 …
riba2534 Oct 8, 2026
80e8905
fix(comment): 评论列表输出完整正文与回复结构并支持分页,回复保留 @人/链接,写接口先解析业务码
riba2534 Oct 8, 2026
476b892
feat(comment): 新增 comment get/batch-get、reply update/react,drive add-…
riba2534 Oct 8, 2026
67a0c67
docs(skills): 会议与妙记技能同步身份、逐字稿与新命令
riba2534 Oct 8, 2026
d704380
docs(skills): 更新权限与评论工作流:perm 支持 --as user、public-get v2 字段、perm_type…
riba2534 Oct 8, 2026
c5cbba7
docs(skills): 同步认证工作流:scope 逗号分隔与叠加/排除、auth scopes、刷新失败分类、stdin secre…
riba2534 Oct 8, 2026
5448626
fix(im): msg history 群聊只拉话题根消息,IM 读接口先解析业务错误信封
riba2534 Oct 8, 2026
266037e
fix(bitable): base/v3 先解析业务信封再判 HTTP 状态,补限流重试与角色响应解包
riba2534 Oct 8, 2026
a3136a6
fix(im): thread-messages 时间范围改为按秒在客户端本地过滤
riba2534 Oct 8, 2026
cf03a9f
fix(mail): triage 列表模式解析文件夹/标签名称,自动翻页并补全摘要
riba2534 Oct 8, 2026
fb6224c
fix(im): --markdown/--content 的 text/post 消息体同样规范化 @ 标签
riba2534 Oct 8, 2026
b315072
fix(bitable): 列表分页取全、批量删除按 200 分批、表单题目删除加 --keep-field 与确认门禁
riba2534 Oct 8, 2026
719910c
fix(apps): 妙搭响应先解析业务码再看 HTTP 状态
riba2534 Oct 8, 2026
744eb73
feat(apps): 新增 apps get / release get / release list,html-publish 支持 …
riba2534 Oct 8, 2026
d1f3029
feat(apps): create 对齐小写类型并附 source_agent,list 恢复可见并支持 --keyword
riba2534 Oct 8, 2026
802e924
fix(drive): 密级标签、版本回滚、导入媒体上传、根目录、Markdown 上传先解析业务码再判 HTTP 状态
riba2534 Oct 8, 2026
b60a02b
feat(bitable): 仪表盘块支持 ranking/nps 与 --position,新增 block get-data 与仪表盘…
riba2534 Oct 8, 2026
35fb98d
feat(bitable): 附件上传 >20MB 自动分片,上传前校验目标字段是附件类型
riba2534 Oct 8, 2026
a89db31
feat(bitable): workflow create/update 本地预检 AI 步骤结构
riba2534 Oct 8, 2026
2ada4ad
fix(im): reaction/pin/chat get/update/delete 支持 --as,merge-forward 固定…
riba2534 Oct 8, 2026
7b1cfa4
merge: VC/妙记/智能纪要(逐字稿协议、meeting-events 字段、妙记排序、list-active、--as、入会限 Bot)
riba2534 Oct 8, 2026
8e38891
fix(im): chat member list 改用 /members/list,输出群内机器人与截断信息
riba2534 Oct 8, 2026
ef5d271
merge: drive 权限与评论子领域(perm --as、public-get v2、评论正文/分页/锚点/编辑/表情、apply-…
riba2534 Oct 8, 2026
0bea1c4
fix(mail): message-modify/message-trash 超过 20 封自动分批,系统标签大小写规范化
riba2534 Oct 8, 2026
74ec232
fix(docs): 创建块自动重试复用 client_token,避免 5xx 重放产生重复块
riba2534 Oct 8, 2026
810b6f2
fix(auth): --verify 刷新被判终态后同次输出即体现 refresh_failure;20026 文案改为"无效/旧版格式"
riba2534 Oct 8, 2026
f01dd7d
fix(task): complete 幂等、task my 说明与互斥 flag、中文按 rune 截断、写命令默认 auto 身份
riba2534 Oct 8, 2026
be465ef
docs(skills): 修正任务工作流中实跑报错的示例并同步身份与 task my 语义
riba2534 Oct 8, 2026
96b3563
fix(client): 识别 SDK 非 JSON 响应中的 StatusCode: 429 为限流
riba2534 Oct 8, 2026
099b2cd
fix(converter): 视图块(type=33)导出为透明容器
riba2534 Oct 8, 2026
db2ad72
fix(docs): docs_ai 更新结果透出 warnings 与 log_id,partial_success 视为失败
riba2534 Oct 8, 2026
0aea7b0
fix(event): 单进程单连接订阅多个 EventKey,单实例锁、远端连接预检与事件去重
riba2534 Oct 8, 2026
a2af06b
fix(docs): content-update 纯文本选择改为文本级替换,块级定位多处命中报错,本地方言写回 fail-closed
riba2534 Oct 8, 2026
33e9eaf
feat(board): export-code --source 取回 Mermaid/PlantUML 源码,update/svg-i…
riba2534 Oct 8, 2026
7463516
fix(contact): user search --email/--mobile 按类型分别填充 open_id/user_id/un…
riba2534 Oct 8, 2026
d74cd09
fix(search): search messages 与 msg search-chats 透出服务端 notice
riba2534 Oct 8, 2026
a55e804
docs(skills): 同步 IM/事件/通讯录/搜索 P0 行为变化并修正文档错误
riba2534 Oct 8, 2026
8a01ef0
feat(drive): file list 分页与 --as;drive download/upload 支持 --as、下载前 que…
riba2534 Oct 8, 2026
caa4648
merge: 认证与配置(scope 逗号拆分、--verify 加锁、刷新失败分类、create-app 协议、授权域补齐、auth s…
riba2534 Oct 8, 2026
36a14ac
fix(converter): 修正高亮块背景色枚举整体错一位
riba2534 Oct 8, 2026
32a9f00
fix(approval): 稀疏分页空页不再误报「没有找到」,新增 --page-all;业务错误先解析业务码
riba2534 Oct 8, 2026
378c7db
feat(approval): 新增 task rollback / add-sign / remind(dry-run 与确认门禁)
riba2534 Oct 8, 2026
c434d18
docs(skills): 审批工作流补充稀疏分页、keyword 无效说明与退回/加签/催办用法
riba2534 Oct 8, 2026
112d349
docs(skills): 修正多维表格工作流文档的实测错误并同步新行为
riba2534 Oct 8, 2026
27859cc
feat(drive): 新增 drive update-title 通用重命名;file delete 异步提交并轮询任务
riba2534 Oct 8, 2026
fd83bed
feat(mail): 新增收信规则 8 个命令与线程整理 thread-modify/thread-trash
riba2534 Oct 8, 2026
fdfd19b
docs(skills): 同步 visual 领域 slides/board/apps 工作流
riba2534 Oct 8, 2026
84f31f8
fix(docs): doc import 部分失败返回非零退出码并输出失败明细
riba2534 Oct 8, 2026
df8fb79
merge: 多维表格(record list 默认 100 + page-all、列表全量、批量删除 200 分批、表单题目 keep-…
riba2534 Oct 8, 2026
5c6b884
feat(slides): media-upload 的 --presentation-token 接受 /slides/ 与 /wiki…
riba2534 Oct 8, 2026
93e299f
fix(attendance): 帮助示例改用支持的 employee_type,业务错误先解析业务码
riba2534 Oct 8, 2026
8726d6d
feat(mail): 新增 mail template get/update/delete
riba2534 Oct 8, 2026
8d83b17
merge: Slides/画板/妙搭(html-publish 跳过 .git、svg syntax_type=3、Slides 编辑闭…
riba2534 Oct 8, 2026
8b6ef75
fix(okr): cycle list 改用 v2 用户周期(--user-id 默认当前用户),保留 --tenant 查 v1 租户周期
riba2534 Oct 8, 2026
01713f7
docs(skills): 修正 OKR 工作流 v2/cycles 不存在的错误结论并同步周期 ID 语义
riba2534 Oct 8, 2026
e11a1fc
feat(docs): doc read 新增 docs_ai 引擎(--with-ids / --scope / range / sec…
riba2534 Oct 8, 2026
a033155
docs(skills): 同步 content-update 文本级/块级语义、本地方言转换与 doc read --with-ids
riba2534 Oct 8, 2026
94896df
docs(skills): 邮箱技能同步正文解码、附件、draft-edit 局部编辑、triage 翻页、线程整理与收信规则
riba2534 Oct 8, 2026
053bbd0
test(work): 测试隔离 app_id,避免 SDK 全局 tenant token 缓存串用
riba2534 Oct 8, 2026
59d0280
fix(mail): 线程文本输出补线程 ID,接口错误信息加空格分隔
riba2534 Oct 8, 2026
547ad7a
test(skills): content-update 参数拒绝改为用法错误退出码 2
riba2534 Oct 8, 2026
2f9234a
feat(drive): file quota 改调 GET /drive/v2/quota_details/{user_id}(原为空壳)
riba2534 Oct 8, 2026
27365b4
merge: 邮箱(正文解码、HTML 引用转义、回复头规范、draft-edit 局部修改、triage、附件、规则与线程整理、模板管理)
riba2534 Oct 8, 2026
26ab5dc
feat(drive): 新增 drive version-history / version-get(上传文件版本历史与按版本下载)
riba2534 Oct 8, 2026
67ecde8
feat(docs): 文档素材 >20MB 分片上传,media-insert 支持 --width/--height
riba2534 Oct 8, 2026
7a5b8da
feat(task): 新增 section 分组、related、set-ancestor、tasklist search;任务 ID …
riba2534 Oct 8, 2026
1f920c4
docs(skills): 任务工作流补充分组、相关任务、父任务、清单搜索与 applink 用法
riba2534 Oct 8, 2026
e941c22
style(task): gofmt 测试文件
riba2534 Oct 8, 2026
0a4e656
fix(sheets): 修正行列/保护索引口径、数字精度、日期时间与子表名范围前缀
riba2534 Oct 8, 2026
6d8fbc3
feat(sheets): 新增行列与子表结构命令,图片素材 >20MB 分片上传
riba2534 Oct 8, 2026
66d813f
docs(skills): 更新电子表格工作流——子表名前缀、--as、行列口径与新命令
riba2534 Oct 8, 2026
40fd92a
fix(docs): media-download 不再静默覆盖已有文件,按内容补扩展名,403 给出排查提示
riba2534 Oct 8, 2026
b7ff611
docs(skills): 同步 drive/file-media 工作流(原地覆盖、流式下载、--as、smart/重名、批量失败分级、…
riba2534 Oct 8, 2026
96d828b
refactor(drive): drive export 的 Markdown 原子写复用 internal/safefile
riba2534 Oct 8, 2026
841d6ce
fix(drive): pull --delete-local / push --delete-remote 同时认可全局确认参数
riba2534 Oct 8, 2026
b547476
feat(okr): 新增 objective / key-result create|update 与 comment list|cre…
riba2534 Oct 8, 2026
548efd8
docs(skills): OKR 工作流补充目标/关键结果写入与评论,修正 v2 ContentBlock 键名
riba2534 Oct 8, 2026
5d1958c
merge: 电子表格(删行删列与保护口径换算、数字精度、table-put 时分秒、子表名解析、分批写入、--as/URL、结构操作、大…
riba2534 Oct 8, 2026
b23d99b
feat(approval): 审批写命令统一支持 --dry-run(不联网、不解析身份)
riba2534 Oct 8, 2026
3561060
fix(api): --data 请求体按原始数字字面量发送,修复 19 位大整数舍入
riba2534 Oct 8, 2026
2e1f31b
merge: 云盘与知识库(push 原地覆盖、流式下载与原子写、列表分页、任务状态 fail、业务码解析、task-result wik…
riba2534 Oct 8, 2026
9fb4d22
feat(okr): progress create/update/delete 支持 --dry-run(删除的预览先于确认门禁)
riba2534 Oct 8, 2026
4850bd9
feat(docs): doc create 新增 docs_ai 服务端带内容建文档(异步任务轮询)
riba2534 Oct 8, 2026
581e59b
docs(skills): 审批工作流补二级目录(超过 300 行)
riba2534 Oct 8, 2026
ccb0803
merge: 日历/任务/审批/考勤/OKR(全天日程、freebusy、重复日程 --apply-to、OKR v2 周期、审批稀疏分页…
riba2534 Oct 8, 2026
d132046
feat(docs): content-update 支持插入本地图片/附件(占位标记协议)
riba2534 Oct 8, 2026
a461c57
fix(text): 错误预览与落盘文件名按 UTF-8 字符边界截断,修复中文被切成半个字符
riba2534 Oct 8, 2026
24e04a2
fix(docs): content-update 内容参数冲突只看非空值;media-insert 路由回归测试改用真实文件
riba2534 Oct 8, 2026
e1aaa83
feat(docs): 新增 doc history list/revert/revert-status(docs_ai 历史版本与回滚)
riba2534 Oct 8, 2026
56a9d76
feat(docs): doc export 新增 --engine docs_ai(服务端导出,与写入同一方言)
riba2534 Oct 8, 2026
e2cdc9c
docs(skills): feishu-cli-docs 路由表补充 block 级改写、本地图片与历史回滚入口
riba2534 Oct 8, 2026
c51f506
merge: 云文档(content-update 文本级替换与块级能力、本地方言转换、结果报告、建块幂等、docs_ai 读取/创建/导…
riba2534 Oct 8, 2026
9484248
fix(drive): 异步删除任务失败时按身份补充原因提示(task_check 不返回失败原因)
riba2534 Oct 8, 2026
7712902
fix(sheet): table-put 数值列先重置残留的文本格式,修复覆盖写后数值被存成文本
riba2534 Oct 8, 2026
64529c2
docs(skills): 兼容版本提升至 v1.42.0,修正权限命令身份描述
riba2534 Oct 8, 2026
b0aade6
docs: 同步 README / CLAUDE.md / CHANGELOG / 身份文档到对齐官方后的实际行为
riba2534 Oct 8, 2026
db8c5c4
feat(im): 消息内容支持 @file/stdin 统一输入、Markdown 样式归一、--attachment 附件区与音视频时…
riba2534 Oct 8, 2026
08d1a66
fix(im): msg history 只在需要时拉群成员,降级搜索时如实提示身份与失效参数,--user-email 精确解析
riba2534 Oct 8, 2026
f0eeeee
fix(im): msg resource-download 默认用服务端文件名,拿不到时按 MIME 推断扩展名
riba2534 Oct 8, 2026
5d931ad
feat(chat): chat create 支持话题群与拉机器人并返回分享链接,chat list 支持单聊与免打扰过滤,search…
riba2534 Oct 8, 2026
8271eda
feat(contact): user search --query 迁移到 contact/v3/users/search 并支持过滤,…
riba2534 Oct 8, 2026
69310c2
docs(skills): 消息、群聊与通讯录工作流补充统一输入、附件区、msg edit、话题群、联系人搜索与机器人搜索
riba2534 Oct 8, 2026
500e231
merge: IM/群聊/事件/通讯录(话题群只取根消息、群成员含机器人、事件单连接与去重、@ 规范化、--as、统一输入、附件区、msg…
riba2534 Oct 8, 2026
d6f70d9
fix(client): SDK token 缓存改为随 client 实例重建而丢弃,配置变更后不再复用旧配置换到的 tenant token
riba2534 Oct 8, 2026
a6210de
docs: CHANGELOG 与 CLAUDE.md 补充 IM、事件订阅与集成阶段修复
riba2534 Oct 8, 2026
a5fc2cd
fix(board): board lint -o json 字号统计改用字符串 key(原 map[float64]int 无法序列化)…
riba2534 Oct 9, 2026
aea681e
docs(skills/feishu-cli-docs): 按实测修正原生 Markdown 工作流(diff 默认输出、patch 语义…
riba2534 Oct 9, 2026
09e2290
docs(skills/feishu-cli-docs): 修正导出工作流(export-file 仅裸 token、默认输出路径、med…
riba2534 Oct 9, 2026
2e48555
docs(skills/feishu-cli-messaging): card 工作流对齐 lint_card.py 规则与官方枚举
riba2534 Oct 9, 2026
458dcd9
docs(skills/feishu-cli-meetings): 按二进制实测修正会议与妙记工作流并重组结构
riba2534 Oct 9, 2026
31394f6
docs(skills/feishu-cli-meetings): SKILL.md 增加路由表与执行规则
riba2534 Oct 9, 2026
ac311c3
docs(skills/feishu-cli-meetings): 评测补充逐字稿分流与会议号/产物开关用例
riba2534 Oct 9, 2026
393c308
docs(skills/feishu-cli-mail): 按 PR #183 行为重写邮件工作流并补充路由表
riba2534 Oct 9, 2026
994fd84
docs(skills/feishu-cli-mail): 收信规则补充身份与 scope、dry-run 范围和局部更新坑点
riba2534 Oct 9, 2026
f9c3ed5
docs(skills/feishu-cli-mail): 评测补充软删除确认、draft-edit --drop-quote 与转发不带原附件
riba2534 Oct 9, 2026
5739a36
docs(skills/feishu-cli-messaging): 路由表按 manifest 归属补 msg edit 并重写执行规则
riba2534 Oct 9, 2026
24cfd33
docs(skills/feishu-cli-messaging): msg 工作流对齐统一输入、附件区、msg edit 等新行为
riba2534 Oct 9, 2026
e8f2cca
docs(skills/feishu-cli-storage): drive 工作流对齐 v1.42 行为(身份表、覆盖改名、导出续查、镜…
riba2534 Oct 9, 2026
c6a8811
docs(skills/feishu-cli-storage): file/media 工作流补齐身份、异步删除、quota、两套版本区分…
riba2534 Oct 9, 2026
7b1ac56
docs(skills/feishu-cli-storage): wiki 工作流补齐 node_by_token 边界、身份表、spac…
riba2534 Oct 9, 2026
d9c8322
docs(skills/feishu-cli-storage): comment 工作流补充全文评论不可回复与 delete 退出码
riba2534 Oct 9, 2026
703911d
docs(skills/feishu-cli-storage): perm 工作流精简参数表,补齐自动授权清单、分享密码前置条件与权限检查身份
riba2534 Oct 9, 2026
0536f4a
docs(skills/feishu-cli-storage): 路由表覆盖新命令,执行规则重写身份与高风险操作,修正过时 eval 期望
riba2534 Oct 9, 2026
5c78b70
docs(skills/feishu-cli-data): 按实测修正 Sheet 工作流
riba2534 Oct 9, 2026
753e6cc
docs(skills/feishu-cli-data): 按实测修正 Bitable 工作流
riba2534 Oct 9, 2026
6ef7c43
docs(skills/feishu-cli-data): 重写 SKILL.md 路由与执行规则并补充评测
riba2534 Oct 9, 2026
deb595b
docs(skills/feishu-cli-platform): 身份规则对齐当前二进制(vc bot 仅 Bot、merge-forw…
riba2534 Oct 9, 2026
38652ae
docs(skills/feishu-cli-platform): auth 工作流修正排错表与 JSON 契约,补 auth scope…
riba2534 Oct 9, 2026
dc68e1a
docs(skills/feishu-cli-platform): api/schema 工作流去重并修正 dry-run 字段、错误码与…
riba2534 Oct 9, 2026
edb0437
docs(skills/feishu-cli-platform): 搜索与通讯录工作流补新参数、user search-bot 与 use…
riba2534 Oct 9, 2026
f77ae05
docs(skills/feishu-cli-work): 日历工作流按实测修正(suggestion 只收 RFC3339、不能建全天日…
riba2534 Oct 9, 2026
16fa732
docs(skills/feishu-cli-work): 任务工作流补充决策表、applink 范围、--due 纯日期语义、relat…
riba2534 Oct 9, 2026
d915dfd
docs(skills/feishu-cli-work): 审批工作流补充确认门禁、1395001 处理、列表字段与表单取值来源修正
riba2534 Oct 9, 2026
b3c2d6c
docs(skills/feishu-cli-work): 考勤工作流补充 --as、employee_type 不支持 open_id、…
riba2534 Oct 9, 2026
39b9e60
docs(skills/feishu-cli-work): OKR 工作流按实测修正 scope 与身份墙,删除 v2/cycles 40…
riba2534 Oct 9, 2026
b26585d
docs(skills/feishu-cli-work): SKILL.md 路由覆盖新命令,执行规则补充确认门禁、agenda 选择、时…
riba2534 Oct 9, 2026
3a60705
docs(skills/feishu-cli-docs): 按实测修正写入工作流(身份与 URL 参数范围、文本级/块级替换退出码与限制、…
riba2534 Oct 9, 2026
de9f186
docs(skills/feishu-cli-docs): 重写阅读工作流(读取方式决策、docs_ai 引擎、doc get/block…
riba2534 Oct 9, 2026
058b924
docs(skills/feishu-cli-docs): 按 doc import 实测更新导入工作流与语法参考(callout 色值、…
riba2534 Oct 9, 2026
8146ec2
docs(skills/feishu-cli-docs): SKILL.md 路由补 doc history 与 docs_ai 读取、执…
riba2534 Oct 9, 2026
841c13b
feat(skills): 调整 msg/chat 与 drive 子命令的技能归属
riba2534 Oct 9, 2026
5d811d1
feat(skills): check_skills 要求跨工作流命令组的子命令使用显式前缀
riba2534 Oct 9, 2026
37ce691
feat(skills): 命令组 --help 列出子命令涉及的全部技能工作流
riba2534 Oct 9, 2026
84864c3
docs(skills/feishu-cli-messaging): chat 工作流对齐身份、输出字段与外部群新行为
riba2534 Oct 9, 2026
d8877a4
docs(skills/feishu-cli-messaging): event 工作流修正退出码、list/schema 字段与重连说明
riba2534 Oct 9, 2026
ab1ef81
docs(skills/feishu-cli-messaging): card_schema 只保留发送侧内容,lint 命令改用工作流相对路径
riba2534 Oct 9, 2026
cd6fdc5
docs(skills/feishu-cli-messaging): 修正 msg read-users 身份说明
riba2534 Oct 9, 2026
d10d58b
docs(skills/feishu-cli-visual): svg_to_board.py 每批带确定性 client_token,原…
riba2534 Oct 9, 2026
c9c10c5
docs(skills/feishu-cli-visual): 画板文档按实测修正服务端 SVG/Mermaid 行为、覆盖与幂等说明
riba2534 Oct 9, 2026
62490a2
docs(skills/feishu-cli-visual): Slides、妙搭、HTMLBox 文档对齐当前命令行为
riba2534 Oct 9, 2026
164d68e
docs(skills/feishu-cli-visual): SKILL.md 增加执行规则与完整路由,路径改为相对工作流目录
riba2534 Oct 9, 2026
5ac1f03
docs(skills/feishu-cli-docs): 补充全块类型导入实测结论(嵌套引用失败、列表项多段落合并、表格单元格公式不转换)
riba2534 Oct 9, 2026
94e4ec7
merge: 技能 review(feishu-cli-meetings):按 v1.42 二进制实测/静态核对修正文档
riba2534 Oct 9, 2026
c16e754
merge: 技能 review(feishu-cli-mail):按 v1.42 二进制实测/静态核对修正文档
riba2534 Oct 9, 2026
a71e4fd
merge: 技能 review(feishu-cli-work):按 v1.42 二进制实测/静态核对修正文档
riba2534 Oct 9, 2026
0f52ec1
merge: 技能 review(feishu-cli-platform):按 v1.42 二进制实测/静态核对修正文档
riba2534 Oct 9, 2026
04f8698
merge: 技能 review(feishu-cli-storage):按 v1.42 二进制实测/静态核对修正文档
riba2534 Oct 9, 2026
2a2e383
merge: 技能 review(feishu-cli-data):按 v1.42 二进制实测/静态核对修正文档
riba2534 Oct 9, 2026
22ff665
merge: 技能 review(feishu-cli-messaging):按 v1.42 二进制实测/静态核对修正文档
riba2534 Oct 9, 2026
c0fbb0a
docs(skills/feishu-cli-docs): 标注导入扩展标签表中未实测的 mention 行
riba2534 Oct 9, 2026
4127bf5
merge: 技能 review(feishu-cli-visual):画板实测修正、Slides/妙搭/HTMLBox 对齐当前行为
riba2534 Oct 9, 2026
fad7e2a
merge: 技能 review(feishu-cli-docs):全块类型实测修正导入/导出/写入/阅读工作流与 Mermaid/Pla…
riba2534 Oct 9, 2026
5896717
fix(vc): 会议/妙记命令参数校验改为用法错误并先于身份解析,vc search 文本去掉高亮标签
riba2534 Oct 9, 2026
17fa764
fix(minutes): 妙记链接输入、vc notes 产物补拉与部分失败退出码、minutes download 同批去重
riba2534 Oct 9, 2026
3156041
fix(vc): Bot 身份 scope 文案按实测改为二选一,meeting-events 非法 --as 改为用法错误
riba2534 Oct 9, 2026
790cf3b
fix(msg): msg read-users 改用原始请求并新增 --as,修复已登录时必然失败
riba2534 Oct 9, 2026
c29192b
docs: 修正 CLAUDE.md minutes 命令速查与 README 会议/妙记身份说明
riba2534 Oct 9, 2026
bd82aa7
docs(approval): approval 与 approval task 帮助补齐 rollback/add-sign/remin…
riba2534 Oct 9, 2026
5c95ba0
docs(okr): 按实测修正 OKR 帮助中的身份与 scope
riba2534 Oct 9, 2026
179648d
fix(file): file version create/get/list 兼容数字 status,避免创建成功后误报失败
riba2534 Oct 9, 2026
6445807
fix(calendar): calendar list 示例改用合法 --page-size,本地校验 50–1000
riba2534 Oct 9, 2026
ebd2d6c
docs(comment,file): 修正 comment add 身份说明与 file version revert 版本号来源
riba2534 Oct 9, 2026
f6a1822
fix(cli): doctor --only、auth token 参数冲突、--page-limit 越界与 --as 非法取值改为用…
riba2534 Oct 9, 2026
a5a5ffe
fix(file): file delete 失败提示改为 drive inspect --url <token>
riba2534 Oct 9, 2026
af3e6b7
fix(calendar): attendee remove 的 dry-run 预览与真实请求共用请求体构造
riba2534 Oct 9, 2026
0090265
fix(perm): perm password create/update 遇 1063002 时提示先把链接设为互联网公开
riba2534 Oct 9, 2026
e9e81b5
fix(board): Mermaid 复杂度预警放宽阈值并只建议 --engine local
riba2534 Oct 9, 2026
76b89fb
fix(slides): slides create 按服务端返回的不同 slide_id 统计实际页数
riba2534 Oct 9, 2026
6b7dbd2
fix(board): board export-code 不再静默覆盖已有输出文件,新增 --overwrite
riba2534 Oct 9, 2026
b94fe78
fix(auth): slides 授权域补齐各子命令实际所需 scope
riba2534 Oct 9, 2026
ec8dca0
fix(drive): drive export 下载失败的重试命令带上本次身份与文件名
riba2534 Oct 9, 2026
74b89f3
fix(tasklist): tasklist list 默认显式传 page_size=100,本地校验 1–100
riba2534 Oct 9, 2026
b0ebfc3
fix(api): api --as user --dry-run 缺 User Token 时退出码与真实调用一致(3)
riba2534 Oct 9, 2026
d474816
fix(mail): 内嵌图片安全根也解析软链接,home 为软链接时不再误拒 home 下的图片
riba2534 Oct 9, 2026
6e9d4c4
fix(mail): 读命令 --format 只接受服务端取值,Bot 身份 + mailbox=me 改为用法错误
riba2534 Oct 9, 2026
0f82063
fix(mail): thread-modify 拒绝 TRASH 时指向 thread-trash,修正 --inline-images…
riba2534 Oct 9, 2026
30f5453
fix(auth): --domain mail --recommend 补收信规则所需的 rule:read / rule:write
riba2534 Oct 9, 2026
71933ab
merge: Go 修正(分组技能指针、check_skills 显式前缀、manifest 归属、vc/minutes/mail/rea…
riba2534 Oct 9, 2026
c9b21e3
fix(search): search docs 迁移到官方使用的 Search v2 端点
riba2534 Oct 9, 2026
ec0fa37
docs(sheet): --filter-type 说明列出 multiValue,dropdown set 补 --spreadshe…
riba2534 Oct 9, 2026
717716d
merge: search docs 迁移官方 Search v2 端点;sheet filter-type 补 multiValue 与…
riba2534 Oct 9, 2026
fcabb87
docs(skills/platform): 新增 Agent 调用契约并按 --help 核对身份表
riba2534 Oct 9, 2026
87d029c
docs(skills/messaging): msg/chat 工作流按新命令归属迁移内容
riba2534 Oct 9, 2026
b06eecc
docs(skills/storage,platform): drive 子命令说明按新归属迁移
riba2534 Oct 9, 2026
15ec591
docs(skills/mail): 按 --help 修正收信规则开关说明
riba2534 Oct 9, 2026
a0118da
docs(skills): 统一各技能入口的确认门禁指引、执行规则与路由归属
riba2534 Oct 9, 2026
fc4d724
docs(skills): 9 个领域 description 改为单行结构并同步触发评测数据
riba2534 Oct 9, 2026
1785c21
test(skills): evals.json 为新增命令组补充用例
riba2534 Oct 9, 2026
cf46133
docs(skills/platform): search docs 说明改为与官方一致的 Search v2
riba2534 Oct 9, 2026
d0365bd
docs(skills): 按 --help 与源码修正静态核对发现的文档问题
riba2534 Oct 9, 2026
4a85b45
docs: CLAUDE.md 身份分类与 Mermaid 兼容说明按当前行为更新,README 技能配套版本改为 v1.42.0+
riba2534 Oct 9, 2026
f04b54d
docs(skills/work): description 补充日程参与人
riba2534 Oct 9, 2026
014529b
docs(skills): 按已合入的 Go 修正同步 read-users、search docs v2、filter-type 与 e…
riba2534 Oct 9, 2026
177f281
docs(skills/meetings): 按已合入的 vc/minutes 修正同步产物补拉与退出码说明
riba2534 Oct 9, 2026
f972317
docs(skills/mail,work): 按已合入的 Go 修正同步 --format 与 page-size 说明
riba2534 Oct 9, 2026
209796d
docs(skills/visual): 按已合入的 Go 修正更新 Mermaid 复杂度提示说明
riba2534 Oct 9, 2026
c55140a
merge: 技能目录集成改造(Agent 调用契约、描述单行化、命令归属迁移、身份表与触发数据同步)
riba2534 Oct 9, 2026
68d9a23
fix(okr): comment create --select-all 按 content 结构取文本,--content-json …
riba2534 Oct 9, 2026
6694d24
docs(changelog): 补充技能 review 阶段的行为变更、修复与技能改造(注明未运行触发评测)
riba2534 Oct 9, 2026
ab02f55
fix(converter): 修复嵌套引用、分栏、列表多段落、单元格公式与 token 资源的块转换
riba2534 Oct 9, 2026
06016e9
fix(import): token 资源复用、被拒块隔离、阶段一失败也输出 JSON,分栏内容写入服务端列
riba2534 Oct 9, 2026
ef3886b
fix(export): --download-images 写文件时资源路径相对输出 Markdown 所在目录
riba2534 Oct 9, 2026
eb893c2
feat(doc): doc 子命令接受文档 URL,更新 doc --help 子命令说明
riba2534 Oct 9, 2026
2fbce44
fix(markdown): patch 读不到远端名时 fail-closed,参数错误退出码改为 2,修正 diff --format…
riba2534 Oct 9, 2026
ef78baa
docs(skills/feishu-cli-docs): 同步导入往返、分栏、嵌套引用、列表多段落与 URL 参数的新行为
riba2534 Oct 9, 2026
34fa763
merge: 文档转换器修复(token 资源复用、嵌套引用、分栏、列表多段落、单元格公式、被拒块隔离、doc 子命令接受 URL)
riba2534 Oct 9, 2026
9b458a5
docs(changelog): 补充文档转换器修复与 doc 子命令接受链接
riba2534 Oct 9, 2026
325ee72
fix(import): 建块分批时每批最多 5 个画板块,修复多画板往返导入与 doc add 报 1770035
riba2534 Oct 9, 2026
82edf09
fix(doc): doc read --keyword 兼容导出时的 Markdown 转义,修正 doc blocks --raw 与…
riba2534 Oct 9, 2026
5359c0d
docs(changelog): 补充画板分批与 doc read --keyword 修复
riba2534 Oct 9, 2026
357bcad
fix(safefile): 原子写默认校验敏感目录,内部写入改用 Trusted 变体
riba2534 Oct 9, 2026
1a46421
fix(client): 下载与上传入口在发请求前拒绝敏感目录
riba2534 Oct 9, 2026
ecd95bc
fix(converter): 导出资源目录拒绝敏感目录,视频文件名不能越出资源目录
riba2534 Oct 9, 2026
f8293e9
fix(output): -o 结果文件与事件落盘目录拒绝敏感目录
riba2534 Oct 9, 2026
7a685e0
fix(cmd): 本地输出路径在首次网络请求之前校验,写入统一走 safefile
riba2534 Oct 9, 2026
35c12b8
fix(cmd): 本地输入文件统一走 safefile,不存在/是目录/无权限归为用法错误
riba2534 Oct 9, 2026
e60025c
docs(skills): 同步本地路径安全校验的新行为
riba2534 Oct 9, 2026
7bb5a31
merge: 本地路径安全统一修复(原子写默认拒绝敏感目录、输出路径在网络请求前校验、输入文件统一校验)
riba2534 Oct 9, 2026
54f6f24
docs(changelog): 路径安全条目按统一修复后的行为更新
riba2534 Oct 9, 2026
d5595fb
fix(cli): 输出文件已存在且未 --overwrite 统一为用法错误(退出码 2),board 导出在请求前检查
riba2534 Oct 9, 2026
1a3e918
docs(changelog): 补充输出文件已存在的退出码统一
riba2534 Oct 9, 2026
9795f79
build!: 模块路径升级为 github.com/riba2534/feishu-cli/v2
riba2534 Oct 9, 2026
774679d
docs: 版本号改为 v2.0.0,CHANGELOG 增加 v1.x → v2 迁移指南
riba2534 Oct 9, 2026
4598c90
Revert "build!: 模块路径升级为 github.com/riba2534/feishu-cli/v2"
riba2534 Oct 9, 2026
80d3ce7
docs: 保持模块路径不变,修正 go install 说明与迁移指南
riba2534 Oct 9, 2026
fd77fb0
docs: 版本号回到 v1.42.0,保留迁移指南
riba2534 Oct 9, 2026
be0ce15
chore(release): v1.42.0
riba2534 Oct 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
64 changes: 64 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: CI

# 最小 CI:只做离线检查,不使用任何飞书凭证、不调用线上 API。
on:
push:
branches: [main]
pull_request:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

permissions:
contents: read

env:
# 测试与 Skill 检查全部走内嵌 OpenAPI catalog,不拉远端 overlay
FEISHU_CLI_REMOTE_META: "off"

jobs:
go:
name: gofmt / vet / test
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
persist-credentials: false
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version-file: go.mod
- name: gofmt
run: |
unformatted="$(gofmt -l .)"
if [ -n "$unformatted" ]; then
echo "$unformatted"
echo "::error::存在未格式化的 Go 文件,请运行 gofmt -w 后提交"
exit 1
fi
- name: go vet
run: go vet ./...
- name: go test
run: go test -count=1 ./...

skills-privacy:
name: check-skills / check-privacy
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
persist-credentials: false
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version-file: go.mod
# Skill 检查与脚本回归只用 Python 标准库(YAML 由 go run ./scripts/skillmeta 解析),无需 pip 依赖
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: "3.12"
- name: 隐私扫描
run: make check-privacy
- name: Skill 结构、命令归属与离线契约
run: make check-skills
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ vendor/
.DS_Store
Thumbs.db

# GitHub 临时文件(PR 截图等)
.github/
# GitHub 临时文件(PR 截图等);CI 工作流需要入库
.github/*
!.github/workflows/

# 配置文件(包含敏感信息)
.env
Expand Down
142 changes: 141 additions & 1 deletion CHANGELOG.md

Large diffs are not rendered by default.

138 changes: 102 additions & 36 deletions CLAUDE.md

Large diffs are not rendered by default.

13 changes: 12 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: build check-skills check-skill-contracts clean install test lint fmt help update-meta
.PHONY: build check-skills check-skill-contracts check-privacy release-package clean install test lint fmt help update-meta

# Go parameters
GOCMD=go
Expand Down Expand Up @@ -41,6 +41,10 @@ check-skills: build
check-skill-contracts: build
python3 scripts/check_skill_contracts.py ./$(BUILD_DIR)/$(BINARY_NAME)

## check-privacy: Scan tracked files for internal emails, tenant-prefixed Feishu domains and real-looking tokens
check-privacy:
python3 scripts/check_privacy.py

## install: Install the binary to $GOPATH/bin
install:
$(GOBUILD) $(LDFLAGS) -o $(GOPATH)/bin/$(BINARY_NAME) .
Expand Down Expand Up @@ -92,6 +96,13 @@ build-windows:
@mkdir -p $(BUILD_DIR)
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-windows-amd64.exe .

## release-package: Build 5 platform tar.gz + checksums.txt into dist/ with self-check (make release-package VERSION=vX.Y.Z)
release-package:
@if [ "$(origin VERSION)" != "command line" ]; then \
echo "请显式指定发布版本: make release-package VERSION=vX.Y.Z" >&2; exit 2; \
fi
bash scripts/release_package.sh "$(VERSION)" dist

## run: Run the application
run: build
./$(BUILD_DIR)/$(BINARY_NAME)
Expand Down
100 changes: 75 additions & 25 deletions README.md

Large diffs are not rendered by default.

10 changes: 7 additions & 3 deletions cmd/add_board.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ import (
)

var addBoardCmd = &cobra.Command{
Use: "add-board <document_id>",
Use: "add-board <document_id|url>",
Short: "添加画板到文档",
Long: `向飞书文档添加画板块。

参数:
<document_id> 文档 ID(必填)
<document_id> 文档 ID 或 URL(必填;/wiki/ URL 自动解析为底层文档)
--parent-id 父块 ID,空表示根级别,默认空
--index 插入位置索引,-1 表示末尾,默认 -1
--output, -o 输出格式 (json)
Expand All @@ -39,11 +39,15 @@ var addBoardCmd = &cobra.Command{
return err
}

documentID := args[0]
parentID, _ := cmd.Flags().GetString("parent-id")
index, _ := cmd.Flags().GetInt("index")
output, _ := cmd.Flags().GetString("output")
userAccessToken := resolveOptionalUserToken(cmd)
// 支持文档 ID、/docx/ URL 与 /wiki/ URL(wiki 自动解包为底层 docx 的 obj_token)
documentID, err := resolveDocxArg(args[0], "<document_id|url>", userAccessToken)
if err != nil {
return err
}

// 如果父块 ID 为空,使用文档根节点
if parentID == "" {
Expand Down
18 changes: 11 additions & 7 deletions cmd/add_callout.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,19 @@ import (
// callout 类型对应的背景色
// 飞书 Callout 背景色值: 1-灰色, 2-红色, 3-橙色, 4-黄色, 5-绿色, 6-蓝色, 7-紫色
var calloutTypeConfig = map[string]int{
"info": 6, // 蓝色
"warning": 4, // 黄色
"error": 2, // 红色
"success": 5, // 绿色
"info": converter.CalloutBgLightBlue, // 蓝色(5)
"warning": converter.CalloutBgLightYellow, // 黄色(3)
"error": converter.CalloutBgLightRed, // 红色(1)
"success": converter.CalloutBgLightGreen, // 绿色(4)
}

var addCalloutCmd = &cobra.Command{
Use: "add-callout <document_id> <content>",
Use: "add-callout <document_id|url> <content>",
Short: "添加高亮块",
Long: `向飞书文档添加高亮块(Callout)。

参数:
<document_id> 文档 ID(必填)
<document_id> 文档 ID 或 URL(必填;/wiki/ URL 自动解析为底层文档)
<content> 高亮块内容(必填)
--parent-id 父块 ID,空表示根级别,默认空
--index 插入位置索引,-1 表示末尾,默认 -1
Expand Down Expand Up @@ -57,14 +57,18 @@ var addCalloutCmd = &cobra.Command{
return err
}

documentID := args[0]
content := args[1]
parentID, _ := cmd.Flags().GetString("parent-id")
index, _ := cmd.Flags().GetInt("index")
calloutType, _ := cmd.Flags().GetString("callout-type")
icon, _ := cmd.Flags().GetString("icon")
output, _ := cmd.Flags().GetString("output")
userAccessToken := resolveOptionalUserToken(cmd)
// 支持文档 ID、/docx/ URL 与 /wiki/ URL(wiki 自动解包为底层 docx 的 obj_token)
documentID, err := resolveDocxArg(args[0], "<document_id|url>", userAccessToken)
if err != nil {
return err
}

// 获取 callout 类型配置
bgColor, ok := calloutTypeConfig[calloutType]
Expand Down
12 changes: 7 additions & 5 deletions cmd/add_comment.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,17 @@ var addCommentCmd = &cobra.Command{
--text 评论内容(必填)

身份说明:
默认以 App Token(Bot 身份)创建;推荐 feishu-cli auth login 后传 --user-access-token,
以用户身份创建评论。Bot 身份创建的评论只能被同一 App 自身删除。
User 优先:--user-access-token > FEISHU_USER_ACCESS_TOKEN > auth login 保存的 token.json
(过期自动刷新)> config.yaml 的 user_access_token;都未配置时以 App Token(Bot 身份)创建。
已配置 User Token 但不可用(如刷新失败)时会在 stderr 告警后改用 App Token。
Bot 身份创建的评论只能被同一 App 自身删除;App 未被加为协作者的个人文档会得到 1069303 forbidden。

示例:
# 添加评论(Bot 身份)
# 添加评论(已 auth login 时自动以用户身份创建)
feishu-cli auth login
feishu-cli comment add doccnXXX --type docx --text "这是一条评论"

# 添加评论(用户身份,推荐)
feishu-cli auth login
# 显式指定 User Token
feishu-cli comment add doccnXXX --type docx --text "这是一条评论" \
--user-access-token "u-xxxxx"

Expand Down
Loading
Loading