Skip to content

Show built-in extensions in marketplace#2008

Merged
benjaminshafii merged 8 commits into
devfrom
builtins-marketplace-unified
May 29, 2026
Merged

Show built-in extensions in marketplace#2008
benjaminshafii merged 8 commits into
devfrom
builtins-marketplace-unified

Conversation

@benjaminshafii
Copy link
Copy Markdown
Member

Summary

  • merge OpenWork built-in extensions into the existing Extension Marketplace grid/filter flow
  • add a settings extension controller so route code no longer branches on specific built-in IDs for config/connected state
  • keep installed MCP catalog entries out of Marketplace while passing built-ins into both Extensions and standalone marketplace routes

Tests

  • pnpm --filter @openwork/app typecheck

E2E Evidence

  • Not captured in this session; verified with TypeScript typecheck only.

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 29, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
openwork-app Ready Ready Preview, Comment May 29, 2026 10:52pm
openwork-den Ready Ready Preview, Comment May 29, 2026 10:52pm
openwork-den-worker-proxy Ready Ready Preview, Comment May 29, 2026 10:52pm
openwork-landing Ready Ready Preview, Comment, Open in v0 May 29, 2026 10:52pm

Copy link
Copy Markdown

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

1 issue found across 3 files

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="apps/app/src/react-app/domains/settings/settings-extension-controller.ts">

<violation number="1" location="apps/app/src/react-app/domains/settings/settings-extension-controller.ts:82">
P2: `useCallback` with `[input]` as dependency is effectively a no-op since `input` is a fresh object literal on every render. The memoization never caches. Either destructure the specific primitive/stable values from `input` into the dependency array, or accept that memoization isn't needed here and remove `useCallback` to avoid misleading readers.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

@@ -0,0 +1,107 @@
/** @jsxImportSource react */
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot May 29, 2026

Choose a reason for hiding this comment

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

P2: useCallback with [input] as dependency is effectively a no-op since input is a fresh object literal on every render. The memoization never caches. Either destructure the specific primitive/stable values from input into the dependency array, or accept that memoization isn't needed here and remove useCallback to avoid misleading readers.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/app/src/react-app/domains/settings/settings-extension-controller.ts, line 82:

<comment>`useCallback` with `[input]` as dependency is effectively a no-op since `input` is a fresh object literal on every render. The memoization never caches. Either destructure the specific primitive/stable values from `input` into the dependency array, or accept that memoization isn't needed here and remove `useCallback` to avoid misleading readers.</comment>

<file context>
@@ -0,0 +1,107 @@
+      envKeyDetected: hasOpenAiEnv(input),
+    },
+    localProvider: input.localProvider,
+  }), [input]);
+
+  const configSlotForEntry = useCallback(
</file context>
Fix with Cubic

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant