Skip to content

refactor(registry): drop deprecated ai actions#2684

Open
jordan-umusu wants to merge 1 commit into
feat/deprecated-action-enforcementfrom
fix/drop-mcp-actions
Open

refactor(registry): drop deprecated ai actions#2684
jordan-umusu wants to merge 1 commit into
feat/deprecated-action-enforcementfrom
fix/drop-mcp-actions

Conversation

@jordan-umusu
Copy link
Copy Markdown
Collaborator

@jordan-umusu jordan-umusu commented May 13, 2026

Summary by cubic

Removed deprecated AI actions and the ranking stack, consolidating everything on ai.agent. Simplified MCP integrations to OAuth secrets and removed internal rank endpoints for a smaller, cleaner registry.

  • Refactors

    • Dropped actions: tools.*.mcp, ai.rank_documents, ai.select_field, ai.select_fields, ai.slackbot.
    • Removed ranking stack and endpoints: deleted tracecat/ai/ranker.py, SDK ranking helpers/types, tests, and /internal/agent/rank* routes/schemas.
    • Simplified MCP modules to OAuth secret registrations; removed PYDANTIC_AI_REGISTRY_SECRETS; updated ai.agent/ai.action doc_url to https://code.claude.com/docs/en/agent-sdk/overview.
  • Migration

    • Use ai.agent (and presets) with mcp_integrations instead of tools.<provider>.mcp; replace Slackbot and ranking/field selection with an ai.agent run or app logic.
    • New recipes: docs/migration/ai.rank_documents.yml, ai.select_field.yml, ai.select_fields.yml, ai.slackbot.yml.

Written for commit f6d9306. Summary will update on new commits. Review in cubic

Copy link
Copy Markdown
Collaborator Author

jordan-umusu commented May 13, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@zeropath-ai
Copy link
Copy Markdown

zeropath-ai Bot commented May 13, 2026

No security or compliance issues detected. Reviewed everything up to f6d9306.

Security Overview
Detected Code Changes

| Change Type | Relevant files

... (code changes summary truncated to fit VCS comment limits.)

@jordan-umusu jordan-umusu force-pushed the feat/mcp-support-ai-agent branch 2 times, most recently from b3a7e3d to 8defaa6 Compare May 13, 2026 21:15
Base automatically changed from feat/mcp-support-ai-agent to main May 13, 2026 21:21
@jordan-umusu jordan-umusu force-pushed the fix/drop-mcp-actions branch from 80bbb96 to 1844014 Compare May 13, 2026 21:51
@jordan-umusu jordan-umusu marked this pull request as ready for review May 13, 2026 21:51
@jordan-umusu jordan-umusu changed the title fix(registry): drop standalone mcp actions from integrations refactor(registry): drop standalone mcp actions from integrations May 13, 2026
@jordan-umusu jordan-umusu added breaking Breaking changes agents LLM agents labels May 13, 2026
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

No issues found across 7 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

You’re at about 97% of the monthly review limit. You may want to disable incremental reviews to conserve quota. Reviews will continue until that limit is exceeded. If you need help avoiding interruptions, please contact contact@cubic.dev.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1844014b6d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@jordan-umusu jordan-umusu changed the title refactor(registry): drop standalone mcp actions from integrations refactor(registry): drop depreciated ai actions May 14, 2026
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4c363c4535

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/tracecat-registry/tracecat_registry/core/ai.py
@jordan-umusu jordan-umusu force-pushed the fix/drop-mcp-actions branch from 4c363c4 to 573f218 Compare May 15, 2026 13:24
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 573f2182e6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/migration/tools.github.mcp.yml Outdated
@jordan-umusu jordan-umusu force-pushed the fix/drop-mcp-actions branch from 573f218 to 033a9bf Compare May 15, 2026 13:54
@jordan-umusu jordan-umusu changed the base branch from main to graphite-base/2684 May 15, 2026 13:57
@jordan-umusu jordan-umusu changed the base branch from graphite-base/2684 to refactor/title-autogen-litellm May 15, 2026 13:57
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1c407c3c07

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/migration/ai.select_field.yml Outdated
Comment thread docs/migration/ai.slackbot.yml Outdated
Comment thread docs/migration/ai.rank_documents.yml Outdated
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

4 issues found across 27 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="packages/tracecat-registry/tracecat_registry/integrations/mcp/runreveal.py">

<violation number="1" location="packages/tracecat-registry/tracecat_registry/integrations/mcp/runreveal.py:20">
P2: This deprecated action still requires a mandatory OAuth secret, so missing credentials can fail execution before the deprecation error is returned. Remove required secrets from this deprecated wrapper.</violation>
</file>

<file name="packages/tracecat-registry/tracecat_registry/core/ai.py">

<violation number="1" location="packages/tracecat-registry/tracecat_registry/core/ai.py:27">
P2: These deprecated AI actions are still exposed in the registry schema but now always throw at runtime, so users can still select actions that are guaranteed to fail.</violation>
</file>

<file name="docs/migration/ai.select_fields.yml">

<violation number="1" location="docs/migration/ai.select_fields.yml:40">
P2: `min_fields`/`max_fields` are not enforced by the output schema, so the action can return an object outside the requested field-count bounds.</violation>
</file>

<file name="docs/migration/ai.slackbot.yml">

<violation number="1" location="docs/migration/ai.slackbot.yml:32">
P1: `user_prompt` can receive `inputs.event` (a dict), but `ai.agent` requires a string prompt. Serialize or extract text from the event before passing it to `user_prompt` to avoid failing the event-driven Slackbot flow.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
Re-trigger cubic

Comment thread docs/migration/ai.slackbot.yml Outdated
Comment thread packages/tracecat-registry/tracecat_registry/core/ai.py Outdated
Comment thread docs/migration/ai.select_fields.yml
@jordan-umusu jordan-umusu changed the base branch from refactor/title-autogen-litellm to graphite-base/2684 May 15, 2026 14:20
@jordan-umusu jordan-umusu force-pushed the fix/drop-mcp-actions branch from 1c407c3 to 2753bcb Compare May 15, 2026 14:21
@jordan-umusu jordan-umusu changed the base branch from graphite-base/2684 to refactor/title-autogen-litellm May 15, 2026 14:21
@jordan-umusu jordan-umusu changed the title refactor(registry): drop depreciated ai actions refactor(registry): drop deprecated ai actions May 15, 2026
@jordan-umusu jordan-umusu changed the base branch from refactor/title-autogen-litellm to graphite-base/2684 May 15, 2026 16:02
@jordan-umusu jordan-umusu force-pushed the fix/drop-mcp-actions branch from 2753bcb to 3527742 Compare May 15, 2026 16:03
@jordan-umusu jordan-umusu changed the base branch from graphite-base/2684 to feat/deprecated-action-enforcement May 15, 2026 16:03
@jordan-umusu jordan-umusu force-pushed the fix/drop-mcp-actions branch from 3527742 to 352af90 Compare May 15, 2026 16:22
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 352af90834

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +22 to +24
args:
user_prompt: >-
Rank the following documents from most to least relevant according to this criteria: ${{ inputs.criteria_prompt }}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Pass model selection into ai.agent migration templates

ai.agent execution validates model_name/model_provider (or a nested model object), but this template never forwards any model fields, so the step fails during argument validation before the agent run starts. The same omission appears in docs/migration/ai.select_field.yml, docs/migration/ai.select_fields.yml, and docs/migration/ai.slackbot.yml, which makes the new migration recipes non-executable unless users manually edit them.

Useful? React with 👍 / 👎.

Comment on lines +36 to +37
You are operating in Slack channel <ChannelID>${{ inputs.channel_id }}</ChannelID>.
When posting messages, always set `channel` to `${{ inputs.channel_id }}`.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Use event channel/thread instead of fixed channel_id

This migrated Slackbot recipe always instructs the agent to post to inputs.channel_id, even when inputs.event is present. Legacy ai.slackbot derived channel/thread IDs from the incoming event payload, so existing event-driven workflows that pass a placeholder or static channel_id will now reply into the wrong channel (or wrong thread) after migration.

Useful? React with 👍 / 👎.

@jordan-umusu jordan-umusu force-pushed the fix/drop-mcp-actions branch from 352af90 to edb5e17 Compare May 15, 2026 16:39
@jordan-umusu jordan-umusu force-pushed the feat/deprecated-action-enforcement branch from e83b7ac to 7cf4ee3 Compare May 15, 2026 16:39
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: edb5e17f63

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +23 to +27
user_prompt: >-
Given this JSON object, select the single most relevant field according to this criteria: ${{ inputs.criteria_prompt }}

JSON:
${{ inputs.json }}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve flatten behavior in ai.select_field migration recipe

The migration recipe drops the legacy flatten option and always sends the raw nested object to the model, so workflows that previously used flatten: true can no longer select fields by flattened JSONPath-style keys and will return different key/value results after migration. In the previous ai.select_field action, flatten changed the candidate key set before ranking; this template never offers that path, so migrating those workflows is not behaviorally equivalent.

Useful? React with 👍 / 👎.

@jordan-umusu jordan-umusu force-pushed the fix/drop-mcp-actions branch from edb5e17 to f6d9306 Compare May 15, 2026 18:31
@jordan-umusu jordan-umusu force-pushed the feat/deprecated-action-enforcement branch from 7cf4ee3 to 5284377 Compare May 15, 2026 18:31
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f6d93060e0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

class ExtractFieldResult(TypedDict):
key: str
value: Any
raise NotImplementedError("Use the 'ai.agent' action instead.")
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep deprecated ai ranking actions executable

Existing workflows can still resolve ai.rank_documents, ai.select_field, and ai.select_fields because they remain registered, but each action now immediately raises NotImplementedError, so runs fail at execution time instead of providing a compatibility path during migration. Fresh evidence in this commit is that the action IDs are no longer removed, yet their implementations at this call site (and the analogous ones later in the file) are hard-fail stubs.

Useful? React with 👍 / 👎.

if ts:
await _remove_ack(channel_id, ts)
return response
raise NotImplementedError("Use the 'ai.agent' action instead.")
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Preserve ai.slackbot runtime behavior while deprecated

The ai.slackbot action is still registered under the same public ID but now always raises NotImplementedError, which will break any existing Slackbot workflows immediately on execution. This is a production regression for users who have not yet migrated, because deprecation metadata alone does not prevent those saved workflows from running.

Useful? React with 👍 / 👎.

)
],
),
raise NotImplementedError(
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep deprecated MCP tool actions callable

Deprecated MCP actions such as tools.github.mcp now resolve but unconditionally raise NotImplementedError, so previously published workflows fail as soon as they invoke these actions. Fresh evidence in this commit is that the registrations were retained with deprecation, but the implementation body at this location (mirrored in the other MCP files changed here) was replaced with a hard failure.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f6d93060e0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +6 to +7
namespace: ai
name: rank_documents
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Avoid action-ID collisions in migration templates

This migration template defines namespace: ai and name: rank_documents, which collides with the still-registered platform action ai.rank_documents in packages/tracecat-registry/tracecat_registry/core/ai.py. If a user syncs this template as a custom action, lock resolution sees the same action in multiple origins and raises RegistryError (tracecat/registry/lock/service.py checks len(matching_origins) > 1), so migrated workflows fail before execution unless they manually disambiguate origins. The same collision pattern also appears in the other migration templates (ai.select_field, ai.select_fields, ai.slackbot).

Useful? React with 👍 / 👎.

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

Labels

agents LLM agents breaking Breaking changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant