Repository navigation
feat(core): capability manifests use the new API-module methods - #700
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NGC9SnFuqdjX2xH2qeu8vw
…ing-soon digest sends a real date
searchContacts, searchDeals and searchTasks return HubSpot's { total, results, paging },
so the examples index steps.<id>.results (as the sync engine already does), the
manifest outputs say so, and hubspot-slack's closedate filter is epoch ms seven days
out instead of the mock-era "+7d".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NGC9SnFuqdjX2xH2qeu8vw
There was a problem hiding this comment.
If your organization's extra usage balance is empty, an organization admin can add extra usage credits at claude.ai/admin-settings/usage. If its monthly spend limit was reached, an admin can raise it on the same page. If neither applies, contact Anthropic support.
Once extra usage is available, someone with write access to this repository can comment @claude review on this pull request to trigger a review.
|
ADR reconciliation needed after Stack A/B — drafted with Claude Code at Sean's request Severity: cross-ref only.
|
…ier levels); neutral names in the module-methods audit Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NGC9SnFuqdjX2xH2qeu8vw
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 80ec1cc. Configure here.
| "use": "foreach", | ||
| "with": { | ||
| "over": "$.steps.tasks", | ||
| "over": "$.steps.tasks.results", |
There was a problem hiding this comment.
Mock-era dates reach live APIs
Medium Severity
This PR marks search capabilities implemented and converts hubspot.deal.search's mock-era +7d to epoch ms, but leaves dueBefore: "+1d" on hubspot.task.search and lastContactedBefore: "-30d" on hubspot.contact.search in the same examples. asana.task.search is now a live $rest pass-through while asana-slack still sends due_on: "+1d". Vendor search APIs expect real timestamps or YYYY-MM-DD, so those workflows can return no matches after the module releases land.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 80ec1cc. Configure here.
Stack B review (COMMENT only) — Group 4Verdict (would merge?): would approve Should-fix
Nits
No blocking items (assuming module PRs land first). |
| and slack now have methods, on unmerged api-module-library branches: **#106 (hubspot), #107 (salesforce), #108 (stripe), | ||
| #109 (linear), #110 (asana, pipedrive, fathom, slack)**, stacked on #105. The manifests describe those methods, so **a | ||
| definition that uses them needs the module releases that carry those PRs**; against an older release the call fails at | ||
| runtime with "not a function". Exceptions that stay unimplemented: Salesforce's signed webhook (it has none: CDC arrives |
There was a problem hiding this comment.
[should-fix] Documented here: manifests describe methods that only exist on unmerged api-module-library PRs. Merging this Frigg PR first → runtime "not a function". Honour merge order / pin module releases. Top-level Stack B COMMENT summary has the full verdict (would approve, no blockers if modules land first).





Stack 9 of 9. Stacked on #699.
Summary
The api-module-library PRs implement the methods that PR 7's audit found missing:
All of them are stacked on #105.
This PR points the manifests at those methods:
argsthat match the real signature.deal.searchis reshaped to the realsearchDeals({ filterGroups, ... }). The oldopen/closeDate/minAmountinputs never existed.{ total, results, paging }. The examples now readsteps.<id>.results, as the sync engine already did. hubspot-slack's close-date filter sends epoch ms seven days ahead instead of the mock-era"+7d".AUDIT.mdhas the per-module re-run commands and the PR links.Merge order. A definition that uses these capabilities needs the module releases, so merge the api-module-library PRs first.
Test plan
check-manifests.js, run once per module against the module branches, reports nothing unimplemented except Salesforce webhook verification.npx jest packages/core/integrations/definitions: 221 pass, 14 skipped.nextin the core run. Nothing new fails.Generated by Claude Code
Note
Medium Risk
Broad manifest and example-definition changes (especially HubSpot search/update shapes) can break workflows until callers adopt
.resultsand new inputs; runtime also depends on unreleased api-module-library releases or calls fail with missing methods.Overview
Updates integration capability manifests for Asana, Fathom, HubSpot, Linear, Pipedrive, Salesforce, Slack, and Stripe so they match api-module-library methods from PRs #106–#110: drops prior
unimplementedflags, wiresargsfor real positional signatures, and refreshesAUDIT.md(per-modulecheck-manifestsruns and audit tables).HubSpot is the breaking shape change:
deal.searchnow uses HubSpotfilterGroups(replacing mockopen/ close-date /minAmount),deal.updateexpectsdealId, and contact/deal/task searches declare paged{ total, results, paging }outputs. Example definitions (hubspot-slack,fathom-hubspot-notion,phone-hubspot) and tests now read$.steps.*.resultsand mock paginated API responses;createCallEngagementis asserted as(properties, contactId).Salesforce webhook verification stays unimplemented; Phone
contact.searchremains the main bundled unimplemented capability (validator tests adjusted accordingly).Reviewed by Cursor Bugbot for commit 80ec1cc. Bugbot is set up for automated code reviews on this repo. Configure here.
📦 Published PR as canary version:
2.0.0--canary.700.80ec1cc.0✨ Test out this PR locally via:
npm install @friggframework/admin-scripts@2.0.0--canary.700.80ec1cc.0 npm install @friggframework/core@2.0.0--canary.700.80ec1cc.0 npm install @friggframework/devtools@2.0.0--canary.700.80ec1cc.0 npm install @friggframework/eslint-config@2.0.0--canary.700.80ec1cc.0 npm install @friggframework/prettier-config@2.0.0--canary.700.80ec1cc.0 npm install @friggframework/schemas@2.0.0--canary.700.80ec1cc.0 npm install @friggframework/serverless-plugin@2.0.0--canary.700.80ec1cc.0 npm install @friggframework/test@2.0.0--canary.700.80ec1cc.0 npm install @friggframework/ui@2.0.0--canary.700.80ec1cc.0 # or yarn add @friggframework/admin-scripts@2.0.0--canary.700.80ec1cc.0 yarn add @friggframework/core@2.0.0--canary.700.80ec1cc.0 yarn add @friggframework/devtools@2.0.0--canary.700.80ec1cc.0 yarn add @friggframework/eslint-config@2.0.0--canary.700.80ec1cc.0 yarn add @friggframework/prettier-config@2.0.0--canary.700.80ec1cc.0 yarn add @friggframework/schemas@2.0.0--canary.700.80ec1cc.0 yarn add @friggframework/serverless-plugin@2.0.0--canary.700.80ec1cc.0 yarn add @friggframework/test@2.0.0--canary.700.80ec1cc.0 yarn add @friggframework/ui@2.0.0--canary.700.80ec1cc.0