feat(fathom): add list meeting types tool and missing list-meetings filters#5359
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryLow Risk Overview Adds List meetings gains optional Meeting list responses now surface Reviewed by Cursor Bugbot for commit 08619ea. Configure here. |
Greptile SummaryThis PR completes Fathom integration coverage by adding a new
Confidence Score: 5/5All changes are scoped to the Fathom integration — no shared infrastructure is touched, and the additions are purely additive. The new tool file and all parameter additions are internally consistent: each new param is declared in types.ts, appended to the URL only when set, reflected in transformResponse, covered by the outputs schema, exposed in the block subblocks with correct conditions, and documented in the MDX. Both previously flagged gaps (meeting_url and highlights absent from the outputs schema) are now resolved. No renamed or removed fields exist, so backwards compatibility is preserved. No files require special attention. Important Files Changed
Sequence Diagram%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant U as User/Workflow
participant B as Fathom Block
participant TLM as fathom_list_meetings
participant TLMT as fathom_list_meeting_types
participant API as api.fathom.ai
U->>B: Select operation
alt fathom_list_meetings
B->>TLM: params (includeHighlights, meetingType, calendarInviteesDomains, ...)
TLM->>API: "GET /external/v1/meetings?include_highlights=true&meeting_type=X"
API-->>TLM: "{ items: [...], next_cursor }"
TLM-->>B: "{ meetings[], next_cursor }"
else fathom_list_meeting_types
B->>TLMT: params (cursor?)
TLMT->>API: "GET /external/v1/meeting_types?cursor=X"
API-->>TLMT: "{ items: [...], next_cursor }"
TLMT-->>B: "{ meetingTypes[], next_cursor }"
end
B-->>U: Output (meetings or meetingTypes)
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant U as User/Workflow
participant B as Fathom Block
participant TLM as fathom_list_meetings
participant TLMT as fathom_list_meeting_types
participant API as api.fathom.ai
U->>B: Select operation
alt fathom_list_meetings
B->>TLM: params (includeHighlights, meetingType, calendarInviteesDomains, ...)
TLM->>API: "GET /external/v1/meetings?include_highlights=true&meeting_type=X"
API-->>TLM: "{ items: [...], next_cursor }"
TLM-->>B: "{ meetings[], next_cursor }"
else fathom_list_meeting_types
B->>TLMT: params (cursor?)
TLMT->>API: "GET /external/v1/meeting_types?cursor=X"
API-->>TLMT: "{ items: [...], next_cursor }"
TLMT-->>B: "{ meetingTypes[], next_cursor }"
end
B-->>U: Output (meetings or meetingTypes)
Reviews (8): Last reviewed commit: "fix(fathom): mark calendar_invitees emai..." | Re-trigger Greptile |
|
Addressed both findings from the first Greptile review in 5556c22:
|
|
@cursor review |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit c360e04. Configure here.
|
Final validation pass: independently re-verified all 6 tools against developers.fathom.ai (endpoints, params, response mapping), confirmed the diff against origin/staging is 100% additive (zero renamed/removed params, fields, or subblock ids), and completed the |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 97d87ec. Configure here.
|
Ran a final comprehensive validate-integration pass using 3 independent parallel subagents (API-doc alignment, backwards-compatibility, internal-conventions):
One cosmetic nit surfaced (recording_id typed nullable in transformResponse/types but missing |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit d4f30ea. Configure here.
d4f30ea to
972a1bc
Compare
|
Rebased onto current origin/staging (was previously branched from origin/main via the default worktree base-ref, which pulled in ~113 unrelated main-only commits into the diff view locally — the PR's actual GitHub diff was always correct, this was purely a local branch-hygiene cleanup). Now exactly 5 commits on top of staging tip. Re-triggering review on the clean history. |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 972a1bc. Configure here.
…ilters - Add fathom_list_meeting_types tool (GET /meeting_types) - Add missing list-meetings params: includeHighlights, meetingType, calendarInviteesDomains, calendarInviteesDomainsType - Add missing meeting response fields: meeting_type, meeting_url, shared_with, highlights - Wire new operation and filters into the Fathom block
…ding domain type default - Add meeting_url and highlights to list_meetings outputs schema so they're addressable from downstream blocks (Greptile P1) - Drop the forced 'all' default on calendarInviteesDomainsType so the filter is only sent when a user explicitly picks a value (Greptile P2)
Match the existing Fathom connector's guard (meetingType !== 'all') so the request omits the param entirely when the value is the API's own default, regardless of what the dropdown shows selected in the UI.
transformResponse already returned meeting_title, scheduled/recording times, recorded_by, calendar_invitees, default_summary, transcript, action_items, and crm_matches, but outputs.meetings.items.properties only documented a curated subset, leaving these fields unaddressable from downstream workflow blocks. Complete the schema to match the full Meeting object Fathom's API returns.
transformResponse maps recording_id as meeting.recording_id ?? null and the response type already types it number | null; the outputs schema now reflects that nullability.
972a1bc to
d94d910
Compare
…utputs Fathom's docs mark Invitee.email as nullable; the outputs schema now reflects that instead of declaring it as always-present.
|
Fixed the failing CI check: the branch was rebased onto a staging snapshot that predated an unrelated Algolia PR (#5356), so the subblock-ID-stability check compared our HEAD against the current staging tip and saw Algolia's IDs as 'removed' — purely an artifact of staleness, we never touched algolia.ts. Re-rebased onto the latest origin/staging (commit 08619ea) and verified locally:
Also ran a final comprehensive validate-integration pass with 3 independent parallel subagents against the rebased branch: API-doc alignment (6/6 tools PASS, re-verified against live developers.fathom.ai docs), backwards-compat (PASS, diff scoped to only fathom files, zero renamed/removed fields), internal conventions (9/9 checks PASS). One more cosmetic nit surfaced and fixed — |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 08619ea. Configure here.
Summary
fathom_list_meeting_typestool — Fathom'sGET /meeting_typesendpoint had no coveragelist_meetingsfilters:includeHighlights,meetingType,calendarInviteesDomains,calendarInviteesDomainsTypemeeting_type,meeting_url,shared_with,highlightsType of Change
Testing
bun run type-checkcleanbunx biome checkclean on all touched filesChecklist