tag:github.com,2008:https://github.com/riba2534/feishu-cli/releases
Tags from feishu-cli
2026-03-18T17:02:47Z
tag:github.com,2008:Repository/1138743298/v1.11.0
2026-03-18T17:04:36Z
v1.11.0
<p>fix: address review findings from v1.10.0 changes</p>
<p>- fix(auth): pass --scopes to Device Flow (was silently ignored)
<br />- fix(auth): validate verification_uri in device authorization response
<br />- fix(im): add file size pre-check (30MB file / 10MB image) and use
<br /> 5-minute timeout instead of 30s default for IM uploads
<br />- fix(msg): output upload progress to stderr to avoid polluting
<br /> --output json; wrap os.Stat errors with original error
<br />- fix(export): unify file permission to 0600 (was 0644 in doc export)
<br />- docs(skills): update feishu-cli-auth, msg, export, perm, toolkit
<br /> skills to reflect new features and fixes</p>
<p>Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]></p>
riba2534
tag:github.com,2008:Repository/1138743298/v1.10.0
2026-03-18T15:12:40Z
v1.10.0
<p>feat: enforce User Token for msg/chat commands and add feishu-cli-cha…</p>
<p>…t skill</p>
<p>Switch 11 msg/chat commands from resolveOptionalUserToken to
<br />resolveRequiredUserToken: msg get/list/history/pins/pin/unpin/reaction/
<br />delete, msg search-chats, chat get/update/delete, chat member list/add/
<br />remove. These commands now require User Token (auth login) instead of
<br />silently falling back to App Token.</p>
<p>Add feishu-cli-chat skill covering session browsing, message interaction
<br />(Reaction/Pin/delete/get), and group management.</p>
<p>Add msg history fallback: when User Token list API returns empty results
<br />for groups where the bot is absent, automatically degrade to search+get
<br />mode transparently.</p>
<p>Update all 8 skill SKILL.md files to reflect the new Token strategy:
<br />- auth: rewrite Token classification (required/optional/app-only),
<br /> add im:chat:readonly + im:chat.members:read to all scope strings
<br />- msg: slim down to send-only skill, redirect Reaction/Pin/delete to chat
<br />- chat: new skill with full permission table and routing
<br />- search: add im:chat:readonly scope, add cross-skill routing table
<br />- toolkit: rename module 4 to "群聊创建" for clarity
<br />- write/import: clarify App Token usage (no auth login needed)
<br />- perm: clarify App Token only</p>
<p>Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]></p>
riba2534
tag:github.com,2008:Repository/1138743298/v1.9.0
2026-03-15T07:37:02Z
v1.9.0
<p>feat: support User Access Token for doc export (<a class="issue-link js-issue-link" href="https://github.com/riba2534/feishu-cli/pull/33">#33</a>)</p>
<p>feat: support User Access Token for doc export</p>
riba2534
tag:github.com,2008:Repository/1138743298/v1.8.2
2026-03-10T18:00:03Z
v1.8.2
<p>docs: add p2p search guide and im:message.group_msg scope to skills/docs</p>
<p>- Add im:message.group_msg:get_as_user scope to all OAuth scope strings
<br /> (auth/msg/search skills) for User Token group message reading
<br />- Add p2p_chat search examples and search-chats limitation tip
<br />- Update Bot vs User identity table with p2p/group search rows
<br />- Add im:chat:read to CLAUDE.md permissions table
<br />- Update README messaging capability description for dual identity</p>
<p>Co-Authored-By: Claude Opus 4.6 <[email protected]></p>
riba2534
tag:github.com,2008:Repository/1138743298/v1.8.1
2026-03-09T12:59:36Z
v1.8.1
<p>fix(auth): prefer App Token over User Token for optional commands</p>
<p>resolveOptionalUserToken no longer auto-loads from token.json, ensuring
<br />APIs that work with App Token use it by default. Only explicitly provided
<br />tokens (--user-access-token flag or FEISHU_USER_ACCESS_TOKEN env var)
<br />override to user identity. Search commands (resolveRequiredUserToken)
<br />are unaffected and still use the full priority chain.</p>
<p>Update skill docs and CLAUDE.md to reflect the new token strategy.</p>
<p>Co-Authored-By: Claude Opus 4.6 <[email protected]></p>
riba2534
tag:github.com,2008:Repository/1138743298/v1.8.0
2026-03-09T05:02:04Z
v1.8.0
<p>feat: add OAuth auth, search, board skills and enhance user token sup…</p>
<p>…port</p>
<p>- Add non-interactive OAuth login (--print-url + auth callback) for AI agents
<br />- Add auth status with JSON output support
<br />- Add document/message/app search with User Access Token pre-check flow
<br />- Add board create-notes commands to README/CLAUDE.md documentation
<br />- Unify User Access Token resolution across search/calendar/task/msg commands
<br />- Add 3 new skills: feishu-cli-auth, feishu-cli-search, feishu-cli-board
<br />- Update existing skills for image upload pipeline and TextDrawing export
<br />- Fix callout import to reuse API-generated empty child block
<br />- Update permission scope mappings for accuracy</p>
<p>Co-Authored-By: Claude Opus 4.6 <[email protected]></p>
riba2534
tag:github.com,2008:Repository/1138743298/v1.7.0
2026-03-02T03:20:36Z
v1.7.0
<p>feat(converter): 表格列数超限自动拆分,支持 9×9 限制</p>
<p>飞书 DocX API 限制单个表格最大 9 行 × 9 列,此前仅实现行拆分。
<br />当 Markdown 表格超过 9 列时(如 10 列对比表格),导入报错 1770001。</p>
<p>新增列拆分逻辑:
<br />- 保留首列作为标识列,每组最多 9 列(1 标识 + 8 数据)
<br />- 先列拆分,后行拆分,支持复合拆分(如 12×16 → 4 个子表格)
<br />- 列宽按列组独立计算</p>
<p>同步更新 API 限制文档,补充文件夹子节点(1500)和文档块总数上限。</p>
<p>Co-Authored-By: Claude Opus 4.6 <[email protected]></p>
riba2534
tag:github.com,2008:Repository/1138743298/v1.6.0
2026-02-27T08:52:02Z
v1.6.0
<p>feat: 补全飞书 SDK 缺失接口,新增 46 个 CLI 命令</p>
<p>覆盖 Permission、Drive、IM、Calendar、Task、Wiki、Contact 七大模块:</p>
<p>Permission: list/delete/public-get/public-update/password/batch-add/auth/transfer-owner
<br />Drive: download/upload/export-file/import-file/version/meta/stats
<br />IM: chat CRUD + member 管理、merge-forward/reply/reaction/pin
<br />Calendar: get/primary/event-search/event-reply/attendee/freebusy
<br />Task: subtask/member/reminder + tasklist 顶级命令
<br />Wiki: space-get/member 管理
<br />Contact: user search/list + dept get/children</p>
<p>同步修复:
<br />- 12 处 resp.Data nil check(permission/task/drive)
<br />- export/import 轮询逻辑仅终态失败才返回 error
<br />- 3 处 strings.Split 替换为 splitAndTrim 防空元素
<br />- batch-add JSON 字段验证、task member role 验证
<br />- root.go PersistentPreRunE 改用 HasSubCommands 判断,修复命名冲突
<br />- CommentReply 添加 Content 字段
<br />- 更新 README/CLAUDE.md/SKILL.md 文档</p>
<p>Co-Authored-By: Claude Opus 4.6 <[email protected]></p>
riba2534
tag:github.com,2008:Repository/1138743298/v1.5.0
2026-02-12T19:38:45Z
v1.5.0
<p>feat(export): 新增 @用户展开、画板 PNG 导出、9 种新块类型支持;统一重试机制修复导入丢数据</p>
<p>新功能:
<br />- 导出时 @用户自动展开为 [@姓名](mailto:邮箱) 格式 (--expand-mentions, 默认开启)
<br />- --download-images 同时导出画板为 PNG 图片
<br />- 支持 Agenda/LinkPreview/SyncBlock/WikiCatalogV2/AITemplate 等 9 种新块类型导出
<br />- 未知块类型注释包含可读名称</p>
<p>Bug 修复:
<br />- 修复 CAUTION/IMPORTANT Callout 内容导入时因 429 限流丢失
<br />- 修复嵌套列表子项导入时因 429 限流静默丢失</p>
<p>重构:
<br />- 新增通用泛型重试框架 DoWithRetry[T],统一 6 处手写重试循环
<br />- 退避策略: full jitter + 服务端 x-ogw-ratelimit-reset header 支持
<br />- Phase 1 顶层块创建和嵌套子块创建均加入 429 重试保护</p>
<p>Co-Authored-By: Claude Opus 4.6 <[email protected]></p>
riba2534
tag:github.com,2008:Repository/1138743298/v1.4.2
2026-02-06T19:56:09Z
v1.4.2
<p>fix(doc-add): 修复 Markdown 模式嵌套丢失、表格填充及分批处理</p>
<p>- 嵌套列表:改用 BlockNode 树结构 + createNestedChildren 递归创建,不再 FlattenBlockNodes 打平
<br />- 50 块分批:添加 batchSize=50 循环分批调用 CreateBlock,支持大文档
<br />- 分批 index 递增:多批次插入时 currentIndex 正确递增,避免顺序反转
<br />- 表格 429 重试:新增 fillTableWithRetry,最多 5 次指数退避
<br />- 成功计数修正:输出实际 tableSuccess/tableFailed,JSON 模式含完整统计
<br />- 去掉 log.Printf:改为 fmt.Fprintf(os.Stderr, ...) 输出 warning
<br />- 魔法数字:两处 == 31 改为 int(converter.BlockTypeTable)
<br />- 结构重构:Markdown 逻辑提取为 addContentMarkdown 函数</p>
<p>Co-Authored-By: Claude Opus 4.6 <[email protected]></p>
riba2534