Skip to content

feat(core): capability manifests use the new API-module methods - #700

Open
seanspeaks wants to merge 3 commits into
claude/shared-conversation-8hgmbr-stack-8-raw-body-webhooksfrom
claude/shared-conversation-8hgmbr-stack-9-module-methods
Open

seanspeaks wants to merge 3 commits into
claude/shared-conversation-8hgmbr-stack-8-raw-body-webhooksfrom
claude/shared-conversation-8hgmbr-stack-9-module-methods

Conversation

@seanspeaks

@seanspeaks seanspeaks commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

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:

  • Unimplemented, before → after: HubSpot 17 → 0, Salesforce 7 → 0, Stripe 8 → 0, Linear 9 → 0, Asana 3 → 0, Pipedrive 2 → 0, Fathom 1 → 0, Slack 1 → 0.
  • Each capability now has args that match the real signature.
  • Salesforce webhook verification stays unimplemented.
  • HubSpot deal.search is reshaped to the real searchDeals({ filterGroups, ... }). The old open/closeDate/minAmount inputs never existed.
  • Fix: HubSpot searches return { total, results, paging }. The examples now read steps.<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.md has 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.
  • Same 31 pre-existing failures as next in the core run. Nothing new fails.
  • Not done yet: one definition per module run against a real account.

Generated by Claude Code


Note

Medium Risk
Broad manifest and example-definition changes (especially HubSpot search/update shapes) can break workflows until callers adopt .results and 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 unimplemented flags, wires args for real positional signatures, and refreshes AUDIT.md (per-module check-manifests runs and audit tables).

HubSpot is the breaking shape change: deal.search now uses HubSpot filterGroups (replacing mock open / close-date / minAmount), deal.update expects dealId, 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.*.results and mock paginated API responses; createCallEngagement is asserted as (properties, contactId).

Salesforce webhook verification stays unimplemented; Phone contact.search remains 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

…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

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Code review skipped — your organization has no extra usage available to pay for this review.

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.

@seanspeaks

Copy link
Copy Markdown
Contributor Author

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
@sonarqubecloud

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ 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",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 80ec1cc. Configure here.

@cursor

cursor Bot commented Oct 24, 2026

Copy link
Copy Markdown

Stack B review (COMMENT only) — Group 4

Verdict (would merge?): would approve

Should-fix

Nits

  • AUDIT.md still claims hubspot-slack indexes $.steps.deals[0] as a page object; example already uses .results in this PR — stale audit note.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

prerelease This change is available in a prerelease. release Create a release when this pr is merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants