Skip to content

v1.3.2

@EthanQC EthanQC tagged this 17 Apr 15:42
Two longstanding gaps closed, both end-to-end verified.

1. @-mentions as user now actually notify (RichText.atIds reversed)
   - Reverse-engineered Feishu Web bundle: RichText requires atIds[] (field 6)
     to register AT element ids; without it the backend zeros out user_id.
   - proto/lark.proto: extended RichText with atIds/anchorIds/imageIds/...;
     added real AtProperty + AnchorProperty messages.
   - src/client.js: sendPost collects AT elem ids into richText.atIds and
     switches AT encoding to AtProperty. sendMessage accepts new `ats: [{userId, name}]`
     option to splice @-mentions into a TEXT message (marker: `@<name>`).
   - src/index.js: send_as_user / send_to_user / send_to_group expose the
     `ats` param. send_post_as_user description updated.
   - Tested live against a group: user_id and user_name are now preserved in
     the bot-API readback (previously both empty strings).
   - send_message_as_bot description clarified as the bot-identity fallback.
2. UAT-first for all docx / bitable / drive ops (fixes 403 on user-owned resources)
   - src/official.js: added _uatREST + _asUserOrApp helpers.
   - All docx (readDoc/createDoc/getDocBlocks/createDocBlock/updateDocBlock/
     deleteDocBlocks), bitable (create/get/list/update/delete × app/table/
     field/view/record + batch_*_records + copyBitable), and drive createFolder
     now try UAT first, fall back to app SDK on failure.
   - Resolves 1770032 (docx forbidden) and 91403 (bitable forbidden) on
     user-owned resources created via `create_doc` / `create_bitable`.
   - Removed now-redundant createDocAsUser / createBitableAsUser / createFolderAsUser.
   - _formatMessage now surfaces im.message mentions[] when present.
3. Docs synced: CLAUDE.md, skill reference, .claude-plugin/plugin.json.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Assets 2
Loading