feat: support shared vc live references and document context - #2249
feat: support shared vc live references and document context#2249zhicong666-bytedance merged 25 commits into
Conversation
Source-Branch: features/F-larksuite-cli-document-context Source-Commit: 9b8bafe Source-Subject: feat: parse document context meeting events Repo: larksuite-cli Synced-By: bytedance Timestamp: 20260803_095353Z
Source-Branch: features/F-larksuite-cli-document-context Source-Commit: 94ad66b Source-Subject: test: assert ndjson section path semantically Repo: larksuite-cli Synced-By: bytedance Timestamp: 20260803_124142Z
# Conflicts: # skills/lark-vc-agent/SKILL.md # skills/lark-vc/references/lark-vc-meeting-events.md
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughMeeting event timelines now support document-context actions and stable speaker labels. VC skills now share meeting lookup and event guidance, with updated references and routing contract tests. ChangesVC meeting event handling
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant MeetingEvent
participant TimelineBuilder
participant TimelineRenderer
MeetingEvent->>TimelineBuilder: provide document context or transcript data
TimelineBuilder->>TimelineRenderer: create action or speaker-labeled entry
TimelineRenderer-->>TimelineBuilder: render JSON, NDJSON, or pretty output
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🚀 PR Preview Install Guide🧰 CLI updatenpm i -g https://pkg.pr.new/larksuite/cli/@larksuite/cli@6603fb340f78c6e590c16d3e57e03ef9cd65d9f9🧩 Skill updatenpx skills add larksuite/cli#features/F-vc-shared-references-document-context -y -g |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
shortcuts/vc/vc_meeting_events.go (2)
957-987: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueConsider removing the unused
itemparameter fromdescribeCommentFocus.
describeCommentFocusignores its first parameter.describeSectionLocationanddescribeElementPreviewtake only the context map. Align the three helpers.♻️ Proposed cleanup
- case "comment_focus": - return describeCommentFocus(item, context) + case "comment_focus": + return describeCommentFocus(context)-func describeCommentFocus(_ map[string]interface{}, comment map[string]interface{}) (string, []string, bool) { +func describeCommentFocus(comment map[string]interface{}) (string, []string, bool) {🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@shortcuts/vc/vc_meeting_events.go` around lines 957 - 987, Remove the unused first parameter from describeCommentFocus and update its call site in the contextKind switch to pass only context, aligning its signature with describeSectionLocation and describeElementPreview while preserving the existing behavior.
1002-1014: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueCall
common.GetSliceonce indocumentSectionPath.The function reads
parent_titlestwice. Store the slice in a local variable.♻️ Proposed cleanup
func documentSectionPath(section map[string]interface{}) string { - parts := make([]string, 0, len(common.GetSlice(section, "parent_titles"))+1) - for _, raw := range common.GetSlice(section, "parent_titles") { + parentTitles := common.GetSlice(section, "parent_titles") + parts := make([]string, 0, len(parentTitles)+1) + for _, raw := range parentTitles {🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@shortcuts/vc/vc_meeting_events.go` around lines 1002 - 1014, Update documentSectionPath to call common.GetSlice(section, "parent_titles") only once, store the result in a local slice variable, and use that variable for both capacity calculation and iteration.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@skills/lark-vc-agent/SKILL.md`:
- Line 99: Update comment_focus to allow focused comment queries when
magic_share_started provides either a valid document URL or a resolved bare
token paired with a supported file_type, as documented in
lark-vc-meeting-events.md. Preserve the existing share_id-to-share_doc mapping,
exact comment ID matching, and zero-comment behavior when focused=false; do not
fall back to the most recent share.
In `@tests/cli_e2e/vc/vc_skill_routing_contract_test.go`:
- Around line 66-88: Expand TestVCSharedMeetingReferencesHaveValidMarkdownLinks
to enumerate all changed Markdown files, including the lark-vc-agent skill and
meeting reference files plus skills/lark-vc/SKILL.md, rather than only the
current three references. Update linkPattern to capture optional URL fragments
while resolving and validating the fragment-free target file path, and ensure
the test directly covers links such as lark-vc-meeting-events.md#文档上下文事件.
---
Nitpick comments:
In `@shortcuts/vc/vc_meeting_events.go`:
- Around line 957-987: Remove the unused first parameter from
describeCommentFocus and update its call site in the contextKind switch to pass
only context, aligning its signature with describeSectionLocation and
describeElementPreview while preserving the existing behavior.
- Around line 1002-1014: Update documentSectionPath to call
common.GetSlice(section, "parent_titles") only once, store the result in a local
slice variable, and use that variable for both capacity calculation and
iteration.
🪄 Autofix
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 Plus
Run ID: a9bd03b9-4bc1-413e-a0d0-9202576ccafc
📒 Files selected for processing (11)
shortcuts/vc/vc_meeting_events.goshortcuts/vc/vc_meeting_events_speaker_test.goshortcuts/vc/vc_meeting_events_test.goskills/lark-vc-agent/SKILL.mdskills/lark-vc-agent/references/lark-vc-agent-meeting-join.mdskills/lark-vc-agent/references/lark-vc-agent-meeting-leave.mdskills/lark-vc/SKILL.mdskills/lark-vc/references/lark-vc-meeting-events.mdskills/lark-vc/references/lark-vc-meeting-list-active.mdskills/lark-vc/references/lark-vc-meeting-message-send.mdtests/cli_e2e/vc/vc_skill_routing_contract_test.go
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2249 +/- ##
==========================================
+ Coverage 76.36% 76.41% +0.04%
==========================================
Files 1011 1011
Lines 111269 111413 +144
==========================================
+ Hits 84970 85131 +161
+ Misses 19815 19797 -18
- Partials 6484 6485 +1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Summary
Integrate the document context meeting event work from #2155 with the shared live meeting reference changes. This lets
lark-vc-only environments discover active meetings, read live events, and send meeting messages while preserving document context fields for follow-up actions.Changes
skills/lark-vc/referenceslark-vcandlark-vc-agentdocs to reuse the shared referencespretty/JSON selectionTest Plan
/usr/local/go/bin/go test ./shortcuts/vc -count=1/usr/local/go/bin/go test ./tests/cli_e2e/vc -count=1/usr/local/go/bin/go build -buildvcs=false ./...git diff --checkRelated Issues
Summary by CodeRabbit
New Features
Documentation