Skip to content

docs(im): Document critical Feishu Markdown silent drop limitations#276

Open
Scofy0123 wants to merge 1 commit intolarksuite:mainfrom
Scofy0123:fix-markdown-link-docs
Open

docs(im): Document critical Feishu Markdown silent drop limitations#276
Scofy0123 wants to merge 1 commit intolarksuite:mainfrom
Scofy0123:fix-markdown-link-docs

Conversation

@Scofy0123
Copy link
Copy Markdown

@Scofy0123 Scofy0123 commented Apr 6, 2026

This PR adds critical documentation to the im +messages-send shortcut regarding Feishu's Markdown parser limitations.

Specifically, it warns users about two silent message drop conditions:

  1. Using non-HTTP(S) schemas in Markdown links (e.g. [query](from:user)) triggering client-side dropping.
  2. Nesting links inside bold tags (**[title](url)**), which strips the link completely in the native Feishu Post renderer.

These additions will prevent other agents and CLI users from generating malformed markdown that quietly breaks rendering without raising an API error.

Summary by CodeRabbit

  • Documentation
    • Updated link formatting guidance for Lark IM messages with new parsing restrictions and caveats.
    • Documented that bold-wrapped links may be silently dropped and provided alternative formatting patterns.
    • Clarified supported URL schemes in Markdown links.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 6, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: aafa659a-e305-4b89-9012-1ebfdbf730d7

📥 Commits

Reviewing files that changed from the base of the PR and between c0dc53a and 1aa7cb9.

📒 Files selected for processing (1)
  • skills/lark-im/references/lark-im-messages-send.md
✅ Files skipped from review due to trivial changes (1)
  • skills/lark-im/references/lark-im-messages-send.md

📝 Walkthrough

Walkthrough

Updated the Markdown documentation for Lark IM message sending by adding a new caveat section that explicitly forbids non-HTTP(S) URL schemes in links and warns that bold-wrapped links will be silently destroyed, with an alternative formatting suggestion.

Changes

Cohort / File(s) Summary
Documentation Update
skills/lark-im/references/lark-im-messages-send.md
Added "Link parsing restrictions (Critical for silent drops)" caveat explaining URL scheme limitations and bold-wrapped link behavior with formatting recommendations.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

🐰 Hop-hop, a doc update appears,
With warnings to calm the users' fears,
No bold wrapping links, I say,
Keep them plain and bright of day!
~Rabbit scribe

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: documenting critical Feishu Markdown silent drop limitations in the im messages-send shortcut.
Description check ✅ Passed The description covers the motivation and specific changes (two silent drop conditions), but lacks test plan and related issues sections from the template.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added domain/base PR touches the base domain domain/im PR touches the im domain size/L Large or sensitive change across domains or core paths labels Apr 6, 2026
@greptile-apps
Copy link
Copy Markdown

greptile-apps bot commented Apr 6, 2026

Greptile Summary

This PR makes a documentation-only addition to skills/lark-im/references/lark-im-messages-send.md, inserting three lines into the existing ### Current Markdown Caveats section.

  • Documents that non-HTTP(S) URL schemes in Markdown links (e.g. [query](from:user)) are silently dropped by the Feishu client, sometimes taking the whole surrounding paragraph with them.
  • Documents that bold-wrapped links (**[Title](url)**) are silently destroyed by Feishu's Post renderer, and provides a concrete workaround pattern (**Item.** [Title](https://...)).
  • The indentation style (4-space sub-bullets) and bold-emphasis pattern are consistent with surrounding content.
  • No code is changed; this is a pure documentation improvement that prevents agents and CLI users from generating malformed Markdown that fails silently.

Confidence Score: 5/5

Documentation-only change with no code modifications; safe to merge.

The PR adds three lines of accurate, well-placed documentation. No code is changed, no logic is altered, and the added content correctly describes known Feishu client behaviour. No issues were found.

No files require special attention.

Important Files Changed

Filename Overview
skills/lark-im/references/lark-im-messages-send.md Adds two accurate, well-placed Feishu Markdown silent-drop warnings (non-HTTP(S) links, bold-nested links) in the existing caveats section with consistent formatting.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User writes Markdown\nwith --markdown flag] --> B{Link URL scheme?}
    B -->|http:// or https://| C[URL accepted by Feishu]
    B -->|Other scheme\ne.g. from:user| D[⚠️ Silent drop\nlink or paragraph removed]
    C --> E{Wrapped in bold?}
    E -->|Plain link| F[Link rendered correctly]
    E -->|**Title** wraps link| G[⚠️ Link silently destroyed\nby Feishu Post renderer]
Loading

Reviews (2): Last reviewed commit: "docs(im): Document critical Feishu Markd..." | Re-trigger Greptile

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@shortcuts/base/base_ops.go`:
- Around line 106-127: The prune logic currently swallows errors from
listAllTables and baseV3Call so callers can miss partial failures; update the
code in the block using listAllTables, baseV3Call and baseV3Path (the flow that
computes defaultTableID and iterates records) to collect and surface errors
instead of ignoring them—either aggregate errors into a returned/pruned error
value or emit structured logs via the existing logger when listAllTables fails,
when the records GET fails, and when a DELETE fails (include the table/record
IDs and underlying error), and ensure the function sets a failure flag or
includes the aggregate error in the function return so callers know pruning was
incomplete.
- Around line 97-130: The dry-run messaging (e.g., dryRunBaseCreate) currently
only mentions the initial POST but the code path guarded by
runtime.Bool("keep-empty-rows") will also perform GET and DELETE calls to remove
empty rows; update the dry-run output/help text to accurately reflect that when
--keep-empty-rows is false the operation will list tables (listAllTables), fetch
records (baseV3Call GET to bases/.../records) and may delete empty records
(baseV3Call DELETE), and clarify that setting --keep-empty-rows prevents these
follow-up GET/DELETE actions. Locate and edit the user-facing string(s) emitted
by dryRunBaseCreate (and any corresponding CLI help for --dry-run /
--keep-empty-rows) to mention the potential destructive GET/DELETE behavior and
the --keep-empty-rows safeguard.
- Around line 114-116: The emptiness guard currently treats missing/non-object
"fields" as empty because it ignores the type-assertion result; change the check
in the deletion branch to first verify the assertion succeeded (e.g., check the
boolean from recMap["fields"].(map[string]interface{})) and only treat the row
as prunable when the assertion is true AND len(fieldsMap) == 0; update the logic
around the variables referenced (recMap and fieldsMap) so the deletion branch
runs only when the type assertion succeeded and the map is actually empty.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: de301070-aa8b-4a9b-8917-474da3512162

📥 Commits

Reviewing files that changed from the base of the PR and between 0c77c95 and c0dc53a.

📒 Files selected for processing (3)
  • shortcuts/base/base_create.go
  • shortcuts/base/base_ops.go
  • skills/lark-im/references/lark-im-messages-send.md

- Add warning against using non-HTTP(S) schemas in Markdown links which triggers silent client drops.
- Add warning against nesting links inside bold tags (`**[title](url)**`), which strips the link completely in the native Feishu Post renderer.
@Scofy0123 Scofy0123 force-pushed the fix-markdown-link-docs branch from c0dc53a to 1aa7cb9 Compare April 6, 2026 11:02
@github-actions github-actions bot added size/M Single-domain feat or fix with limited business impact and removed domain/base PR touches the base domain size/L Large or sensitive change across domains or core paths labels Apr 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain/im PR touches the im domain size/M Single-domain feat or fix with limited business impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant