feat(hedy): add 20 AI-optimized MCP actions#20901
feat(hedy): add 20 AI-optimized MCP actions#20901sergio-eliot-rodriguez wants to merge 11 commits into
Conversation
Adds a complete set of AI-optimized actions for the Hedy meeting intelligence platform covering sessions, highlights, todos, topics, and session contexts. New actions: - get-current-user: identity / account details - get-many-sessions, get-session: browse and fetch meeting sessions - get-many-highlights, get-highlights-by-session, get-highlight: AI-generated meeting highlights - get-many-todos, get-todos-by-session, get-todo: action items from meetings - get-many-topics, get-topic, get-topic-sessions: topic management (read) - create-topic, update-topic, delete-topic: topic management (write) - get-many-session-contexts, get-session-context: reusable AI instruction contexts (read) - create-session-context, update-session-context, delete-session-context: contexts (write) App file changes: - Added _baseUrl(), _headers(), _makeRequest() HTTP helpers - Added 19 resource methods covering all API endpoints - Added shared propDefinitions for sessionId, topicId, highlightId, todoId, contextId, limit, and after (pagination cursor) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
Thank you so much for submitting this! We've added it to our backlog to review, and our team has been notified. |
|
Thanks for submitting this PR! When we review PRs, we follow the Pipedream component guidelines. If you're not familiar, here's a quick checklist:
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughExpands the Hedy component into a full API client and adds action modules for creating, reading, updating, and deleting sessions, topics, highlights, todos, and session contexts; actions call the new app methods, export ChangesHedy Component API Expansion
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 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 `@components/hedy/actions/create-session-context/create-session-context.mjs`:
- Around line 20-37: The title, content, and isDefault input prop definitions
are duplicated between Create Session Context and Update Session Context; move
their shared metadata into the app-level propDefinitions in
components/hedy/hedy.app.mjs (define props named e.g. title, content, isDefault
there) and then replace the inline prop objects in create-session-context.mjs
(and the Update Session Context file) with references using propDefinition:
"title"/"content"/"isDefault" so both actions use the centralized definitions.
- Line 43: The current truthy check drops explicit empty strings for content;
change the conditional that sets data.content from using "if (this.content)
data.content = this.content;" to an undefined-only check so "" is preserved
(e.g., test for this.content !== undefined before assigning). Update the
assignment around this.content and data.content in create-session-context
(create-session-context.mjs) to only skip when this.content is strictly
undefined.
In `@components/hedy/actions/get-current-user/get-current-user.mjs`:
- Line 9: The component metadata version in get-current-user.mjs is still
"version: \"0.0.1\"" despite metadata changes; update the version field (the
"version" property in the module metadata) to a patch bump (e.g., "0.0.2") so
the component version is incremented per the policy and commit the change.
In
`@components/hedy/actions/get-many-session-contexts/get-many-session-contexts.mjs`:
- Around line 24-27: The summary undercounts when listContexts() returns an
array because contexts is set via response?.data; change the assignment to
detect both shapes: if response is an array use it, otherwise use response?.data
or fallback to []; update the code that computes contexts (the variable named
contexts and the response value returned from listContexts()) so contexts =
Array.isArray(response) ? response : response?.data ?? []; keep the existing
summary generation using contexts.length so it reports the correct count.
In `@components/hedy/hedy.app.mjs`:
- Around line 52-57: The object returned by _headers() mixes quoted and unquoted
property names which violates the quote-props ESLint rule; change the
Authorization key to use quoted property syntax (e.g., "Authorization") to match
the already-quoted "Content-Type" key so both headers are consistently quoted in
the _headers() method.
🪄 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: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: c05feba4-95c4-4629-a456-17bf1d267635
📒 Files selected for processing (22)
components/hedy/actions/create-session-context/create-session-context.mjscomponents/hedy/actions/create-topic/create-topic.mjscomponents/hedy/actions/delete-session-context/delete-session-context.mjscomponents/hedy/actions/delete-topic/delete-topic.mjscomponents/hedy/actions/get-current-user/get-current-user.mjscomponents/hedy/actions/get-highlight/get-highlight.mjscomponents/hedy/actions/get-highlights-by-session/get-highlights-by-session.mjscomponents/hedy/actions/get-many-highlights/get-many-highlights.mjscomponents/hedy/actions/get-many-session-contexts/get-many-session-contexts.mjscomponents/hedy/actions/get-many-sessions/get-many-sessions.mjscomponents/hedy/actions/get-many-todos/get-many-todos.mjscomponents/hedy/actions/get-many-topics/get-many-topics.mjscomponents/hedy/actions/get-session-context/get-session-context.mjscomponents/hedy/actions/get-session/get-session.mjscomponents/hedy/actions/get-todo/get-todo.mjscomponents/hedy/actions/get-todos-by-session/get-todos-by-session.mjscomponents/hedy/actions/get-topic-sessions/get-topic-sessions.mjscomponents/hedy/actions/get-topic/get-topic.mjscomponents/hedy/actions/update-session-context/update-session-context.mjscomponents/hedy/actions/update-topic/update-topic.mjscomponents/hedy/hedy.app.mjscomponents/hedy/package.json
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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 `@components/hedy/hedy.app.mjs`:
- Around line 10-45: Update the prop descriptions for meetingId, topicId,
highlightId, todoId, contextId, and the pagination cursor after (and optionally
limit) in the component schema to include concrete inline examples of expected
formats (e.g., meetingId: "meet_0123abcd", topicId: "topic_5f8e9a", highlightId:
"hl_20240501_abc123", todoId: "todo_987xyz", contextId: "ctx_456def", after:
"cursor_eyJpZCI6Ij..." or a short base64 token) so agents know exact input shape
and encoding; locate the property definitions for limit, after, meetingId,
topicId, highlightId, todoId, and contextId in hed y.app.mjs and append a brief
example to each description string without changing types or validation rules.
In `@components/hedy/package.json`:
- Line 3: The package.json version field currently uses a patch bump ("version":
"0.0.2"); update the "version" value in components/hedy/package.json to a minor
bump (for example "0.1.0") to reflect the additive, backwards-compatible
changes; modify the "version" string in the package.json so it is >= minor
(0.1.0) to comply with semver guidance for new optional functionality.
🪄 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: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 329b1718-e598-459c-9fb8-045402a2ba0f
📒 Files selected for processing (2)
components/hedy/hedy.app.mjscomponents/hedy/package.json
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
michelle0927
left a comment
There was a problem hiding this comment.
Hi @sergio-eliot-rodriguez. Can you fix the doc links? That'll make it easier to review. :)
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
components/hedy/actions/get-many-topics/get-many-topics.mjs (1)
16-22:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd pagination support to
Get Many Topics
GET /topicssupportslimit+after, but this action exposes no pagination props and doesn’t forwardparams.- Add shared
limit/afterprops via apppropDefinitions(propDefinition: [app, "limit"]/propDefinition: [app, "after"]) and pass them asparamstothis.app.listTopics.- Update
components/hedy/hedy.app.mjslistTopicsto accept{ params }and forward them in_makeRequestfor/topics.🤖 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 `@components/hedy/actions/get-many-topics/get-many-topics.mjs` around lines 16 - 22, Add pagination props to the Get Many Topics action and forward them to the app: in the action's props include limit and after using propDefinition references (propDefinition: [app, "limit"] and propDefinition: [app, "after"]) so they become available in run, then call this.app.listTopics with an object that includes $ and params (e.g., params: { limit, after }) instead of only $; also update the Hedy app method listTopics to accept a single parameter object (e.g., listTopics({ $, params })) and forward params into _makeRequest when calling the /topics endpoint so the request includes pagination query params.
🤖 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.
Outside diff comments:
In `@components/hedy/actions/get-many-topics/get-many-topics.mjs`:
- Around line 16-22: Add pagination props to the Get Many Topics action and
forward them to the app: in the action's props include limit and after using
propDefinition references (propDefinition: [app, "limit"] and propDefinition:
[app, "after"]) so they become available in run, then call this.app.listTopics
with an object that includes $ and params (e.g., params: { limit, after })
instead of only $; also update the Hedy app method listTopics to accept a single
parameter object (e.g., listTopics({ $, params })) and forward params into
_makeRequest when calling the /topics endpoint so the request includes
pagination query params.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 8c4c30a5-5cf4-4605-9946-12dd728737a5
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (21)
components/hedy/actions/create-session-context/create-session-context.mjscomponents/hedy/actions/create-topic/create-topic.mjscomponents/hedy/actions/delete-session-context/delete-session-context.mjscomponents/hedy/actions/delete-topic/delete-topic.mjscomponents/hedy/actions/get-current-user/get-current-user.mjscomponents/hedy/actions/get-highlight/get-highlight.mjscomponents/hedy/actions/get-highlights-by-session/get-highlights-by-session.mjscomponents/hedy/actions/get-many-highlights/get-many-highlights.mjscomponents/hedy/actions/get-many-session-contexts/get-many-session-contexts.mjscomponents/hedy/actions/get-many-sessions/get-many-sessions.mjscomponents/hedy/actions/get-many-todos/get-many-todos.mjscomponents/hedy/actions/get-many-topics/get-many-topics.mjscomponents/hedy/actions/get-session-context/get-session-context.mjscomponents/hedy/actions/get-session/get-session.mjscomponents/hedy/actions/get-todo/get-todo.mjscomponents/hedy/actions/get-todos-by-session/get-todos-by-session.mjscomponents/hedy/actions/get-topic-sessions/get-topic-sessions.mjscomponents/hedy/actions/get-topic/get-topic.mjscomponents/hedy/actions/update-session-context/update-session-context.mjscomponents/hedy/actions/update-topic/update-topic.mjscomponents/hedy/package.json
michelle0927
left a comment
There was a problem hiding this comment.
LGTM! Ready for QA
Closes #20510
Summary
Adds a complete set of AI-optimized MCP actions for Hedy, an AI meeting intelligence platform that provides transcripts, highlights, action items, and topic organization for recorded meetings.
New actions (20)
Sessions
hedy-get-current-user— identity / account details (GET /me)hedy-get-many-sessions— paginated session list (GET /sessions)hedy-get-session— full session: transcript, meeting minutes, recap, highlights, todos (GET /sessions/{id})Highlights
hedy-get-many-highlights— global paginated highlights (GET /highlights)hedy-get-highlights-by-session— highlights for a specific session (GET /sessions/{id}/highlights)hedy-get-highlight— single highlight with rawQuote, aiInsight (GET /highlights/{id})Todos (Action Items)
hedy-get-many-todos— global todos across all sessions (GET /todos)hedy-get-todos-by-session— todos for a specific session (GET /sessions/{id}/todos)hedy-get-todo— single todo by ID (GET /sessions/{id}/todos/{todoId})Topics
hedy-get-many-topics— all topics with session counts and AI overviews (GET /topics)hedy-get-topic— single topic with fulltopicContext(GET /topics/{id})hedy-get-topic-sessions— sessions belonging to a topic (GET /topics/{id}/sessions)hedy-create-topic— create topic with optional AI analysis context (POST /topics)hedy-update-topic— update topic properties (PATCH /topics/{id})hedy-delete-topic— delete topic, unlinks sessions (DELETE /topics/{id})Session Contexts
hedy-get-many-session-contexts— all reusable AI instruction contexts (GET /contexts)hedy-get-session-context— single context by ID (GET /contexts/{id})hedy-create-session-context— create reusable AI instructions (POST /contexts)hedy-update-session-context— update context (PATCH /contexts/{id})hedy-delete-session-context— delete context (DELETE /contexts/{id})App file changes
_baseUrl(),_headers(),_makeRequest()HTTP helperspropDefinitionsforsessionId,topicId,highlightId,todoId,contextId,limit,afterTest plan
get-highlight,get-todo) warn only because the test session has no highlights/todos yet (2-minute recording with no substantive content) — not tool bugsadditionalProps,reloadProps, orremoteOptionson any actionopenWorldHint: trueon all tools;destructiveHint: trueon delete actions;readOnlyHintset correctly🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes