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