Skip to content

fix(frontend/copilot): always-visible credentials, inputs, and login prompts#12194

Merged
0ubbe merged 3 commits intodevfrom
fix/better-credentials-asking
Feb 23, 2026
Merged

fix(frontend/copilot): always-visible credentials, inputs, and login prompts#12194
0ubbe merged 3 commits intodevfrom
fix/better-credentials-asking

Conversation

@0ubbe
Copy link
Contributor

@0ubbe 0ubbe commented Feb 23, 2026

Credentials, inputs, and login prompts in copilot tool outputs were hidden inside collapsible accordions β€” users could accidentally collapse them, hiding blocking actionable UI. This PR extracts all blocking requirements out of accordions so they're always visible.

Changes πŸ—οΈ

  • RunAgent & RunBlock: Extract SetupRequirementsCard (credentials picker) out of ToolAccordion β€” renders standalone, always visible
  • RunAgent: Also extract AgentDetailsCard (inputs needed) and need_login message out of accordion
  • SetupRequirementsCard (RunBlock): Input form always visible (removed toggle button and animation), unified "Proceed" button disabled until credentials + inputs are satisfied
  • SetupRequirementsCard (RunAgent): "Proceed" button disabled until all credentials are selected
  • Both cards: Added titled box with border for credentials section ("Block credentials" / "Agent credentials"), matching the existing inputs box pattern
  • CredentialsFlatView: "Add" button uses variant="primary" when user has no credentials (was secondary)
  • Styleguide: Added mock CredentialsProvidersContext with two scenarios:
    • No credentials β†’ shows "add new" flow
    • Has credentials β†’ shows selection list with existing accounts
  • CreateAgent & EditAgent: Picked up user-initiated styling refinements

Checklist πŸ“‹

For code changes:

  • I have clearly listed my changes in the PR description
  • I have made a test plan
  • I have tested my changes according to the test plan:
    • pnpm format && pnpm lint && pnpm types all pass
    • Visit /copilot/styleguide and verify:
      • "Setup requirements β€” no credentials" shows add-credential button (primary variant)
      • "Setup requirements β€” has credentials" shows credential selection dropdown
      • Both RunAgent and RunBlock setup requirements render outside accordion
    • Trigger a copilot agent run that requires credentials β€” credential picker always visible
    • Trigger a copilot block run that requires credentials + inputs β€” both sections visible, "Proceed" disabled until ready
    • Trigger a copilot agent run that returns "agent details" β€” card renders outside accordion
    • Verify other output types (execution_started, error) still render inside accordions

πŸ€– Generated with Claude Code

…prompts in copilot tools

Extract blocking UI (credentials picker, agent details/inputs, login prompts)
out of collapsible accordions in RunAgent and RunBlock tools so users can't
accidentally hide actionable requirements.

- Credentials and input forms render standalone, always visible
- Add titled boxes ("Block credentials", "Agent credentials", "Block inputs")
- Unified "Proceed" button enabled only when all requirements are satisfied
- Primary variant for "Add credential" button when no credentials exist
- Update styleguide with mock credential providers for both scenarios
- Extract need_login and agent_details outside accordion in RunAgent

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@0ubbe 0ubbe requested a review from a team as a code owner February 23, 2026 08:27
@0ubbe 0ubbe requested review from Abhi1992002, Swiftyos, kcze and ntindle and removed request for a team February 23, 2026 08:27
@github-project-automation github-project-automation bot moved this to πŸ†• Needs initial review in AutoGPT development kanban Feb 23, 2026
@github-actions github-actions bot added the platform/frontend AutoGPT Platform - Front end label Feb 23, 2026
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 23, 2026

No actionable comments were generated in the recent review. πŸŽ‰


ℹ️ Recent review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 5127663 and 4778cd6.

πŸ“’ Files selected for processing (1)
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
πŸ“œ Recent review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: lint
  • GitHub Check: integration_test
  • GitHub Check: Seer Code Review
  • GitHub Check: types
  • GitHub Check: end-to-end tests
  • GitHub Check: Check PR Status

Walkthrough

Moved setup-requirements outputs out of accordions into standalone cards, consolidated credential/input flows into unified SetupRequirements cards with gating, added mock CredentialsProvidersContext to the styleguide, and introduced streaming MiniGame ToolAccordions for in-progress operations.

Changes

Cohort / File(s) Summary
Styleguide Setup
autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
Added mock credential provider helpers and two provider sets; wrapped styleguide examples with CredentialsProvidersContext.Provider to demo credential-absent and credential-present flows.
Create/Edit Agent UI
autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx, autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
Replaced OrbitLoader/ContentHint with output.message-driven titles; added separate streaming ToolAccordion that renders MiniGame when streaming; updated MiniGame import paths.
RunAgent restructuring
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx, .../RunAgent/components/...
Derive and render setupRequirements/agentDetails/needLogin outputs before the accordion as standalone cards; adjusted expandable-content logic to exclude setup-requirements case.
RunBlock restructuring
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx, .../RunBlock/components/...
Extracted SetupRequirementsCard rendering outside the accordion; added setupRequirementsOutput guard and unified credential/input run flow with single run action.
SetupRequirementsCard (RunAgent)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
Added needsCredentials/isAllCredentialsComplete gating; moved Proceed button below credentials/inputs; craft proceed message conditionally (credentials vs inputs).
SetupRequirementsCard (RunBlock)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
Removed per-step animation/toggles; added canRun predicate and unified handleRun; static credential and input sections with single disabled-until-ready Proceed button.
Credentials UI Variant
autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
Changed credential action button variants from secondary to primary for both credential-present and credential-absent paths.
Form Renderer Enhancement
autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
Added optional className prop, merged UI-schema for custom fields, and converted FormRenderer to a named function export.

Sequence Diagram(s)

sequenceDiagram
  participant UI as Tool UI
  participant Context as CredentialsProvidersContext
  participant Card as SetupRequirementsCard
  participant Agent as Agent Runtime
  UI->>Context: request providers (with/without creds)
  Context-->>UI: providers list
  UI->>Card: render setupRequirementsOutput + providers
  Card->>UI: user fills creds/inputs
  UI->>Agent: send run/proceed message (includes creds/inputs)
  Agent-->>UI: execution started / streaming updates
  UI->>UI: show streaming ToolAccordion (MiniGame) while running
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested labels

Review effort 5/5

Suggested reviewers

  • ntindle
  • Swiftyos
  • kcze

Poem

🐰 I hopped through cards and context bright,

Mocked keys shining in morning light,
Accordions stepped aside to let cards play,
Buttons primed, inputs cleared the way,
A mini-game hums while agents run away.

πŸš₯ Pre-merge checks | βœ… 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
βœ… Passed checks (2 passed)
Check name Status Explanation
Title check βœ… Passed The title 'fix(frontend/copilot): always-visible credentials, inputs, and login prompts' is specific, concise, and directly describes the main change β€” extracting blocking UI elements out of collapsible accordions to keep them always visible.
Description check βœ… Passed The description is well-structured and clearly related to the changeset, detailing specific components modified, behavior changes, and providing a helpful checklist for testing the changes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • πŸ“ Generate docstrings (stacked PR)
  • πŸ“ Generate docstrings (commit on current branch)
πŸ§ͺ Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/better-credentials-asking

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❀️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 23, 2026

πŸ” PR Overlap Detection

This check compares your PR against all other open PRs targeting the same branch to detect potential merge conflicts early.

πŸ”΄ Merge Conflicts Detected

The following PRs have been tested and will have merge conflicts if merged after this PR. Consider coordinating with the authors.

  • chore(frontend): Fix react-doctor warnings + add CI jobΒ #12163 (0ubbe Β· updated 3d ago)

    • πŸ“ autogpt_platform/frontend/src/app/(platform)/
      • build/components/legacy-builder/BlocksControl.tsx (deleted here, modified there)
      • build/components/legacy-builder/CustomNode/CustomNode.tsx (deleted here, modified there)
      • build/components/legacy-builder/DataTable.tsx (deleted here, modified there)
      • build/components/legacy-builder/Flow/Flow.tsx (deleted here, modified there)
      • build/components/legacy-builder/NodeOutputs.tsx (deleted here, modified there)
      • copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx (3 conflicts, ~161 lines)
      • monitoring/components/FlowRunsTimeline.tsx (deleted here, modified there)
  • fix(platform/copilot): fix stuck sessions, stop button, and StreamFinish reliabilityΒ #12191 (majdyz Β· updated 1h ago)

    • πŸ“ autogpt_platform/frontend/src/app/(platform)/copilot/tools/
      • CreateAgent/CreateAgent.tsx (1 conflict, ~17 lines)
      • EditAgent/EditAgent.tsx (2 conflicts, ~23 lines)

Summary: 2 conflict(s), 0 medium risk, 0 low risk (out of 2 PRs with file overlap)


Auto-generated on push. Ignores: openapi.json, lock files.

Comment on lines +72 to +82
([, v]) => v !== undefined && v !== null && v !== "",
),
);
onSend(
`I've configured the required credentials. Run the block with these inputs: ${JSON.stringify(nonEmpty, null, 2)}`,
);
} else {
onSend(
"I've configured the required credentials. Please re-run the block now.",
);
}

This comment was marked as outdated.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx (1)

77-113: ⚠️ Potential issue | 🟑 Minor

Missing action when expectedInputs exist but needsCredentials is false

The Proceed button is only rendered under {needsCredentials && ...}, but expectedInputs renders independently. If the backend ever returns a setup_requirements response with no missing_credentials (e.g., credentials were auto-satisfied) but non-empty requirements.inputs, the card shows the "Expected inputs" info box with no way to proceed β€” leaving the user stuck.

Consider adding needsInputs (derived from expectedInputs.length > 0) as an additional gate for the Proceed button, similar to how RunBlock's SetupRequirementsCard uses (needsCredentials || needsInputs):

πŸ›‘οΈ Suggested guard
-  {needsCredentials && (
+  {(needsCredentials || expectedInputs.length > 0) && (
     <Button
       variant="primary"
       size="small"
       className="mt-4 w-fit"
       disabled={!canProceed}
       onClick={handleProceed}
     >
       Proceed
     </Button>
   )}
πŸ€– Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@autogpt_platform/frontend/src/app/`(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
around lines 77 - 113, The Proceed button is only shown when needsCredentials is
true, leaving users stuck if expectedInputs exists but credentials are already
satisfied; introduce a boolean (e.g., needsInputs = expectedInputs.length > 0)
and change the Proceed button rendering guard to (needsCredentials ||
needsInputs) or equivalent so the button is rendered when there are expected
inputs even if needsCredentials is false; ensure you keep the existing
disabled={!canProceed} and onClick={handleProceed} behavior on the Button
component.
🧹 Nitpick comments (3)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx (1)

15-15: MiniGame should live in a shared location rather than inside CreateAgent's internal folder.

MiniGame is now consumed by both CreateAgent and EditAgent. Importing across sibling tool boundaries (../CreateAgent/components/MiniGame/MiniGame) couples these two tools and makes future refactoring harder. Consider moving MiniGame to a shared path such as copilot/components/MiniGame/ so it can be imported from a neutral location.

πŸ€– Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@autogpt_platform/frontend/src/app/`(platform)/copilot/tools/EditAgent/EditAgent.tsx
at line 15, The import of MiniGame in EditAgent ties EditAgent to CreateAgent's
internal folder; move the MiniGame component to a shared location (e.g.,
copilot/components/MiniGame/MiniGame) and update imports in both EditAgent and
CreateAgent to import from that shared path. Specifically, create a new
directory for the shared component, relocate the MiniGame file and any related
assets/exports, update the import statements in EditAgent.tsx (where MiniGame is
currently imported from ../CreateAgent/...) and in CreateAgent files to import
from the new copilot/components/MiniGame path, and run a quick build or tests to
ensure no broken imports remain.
autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx (1)

19-26: Arrow function component violates the function-declaration guideline

FormRenderer is declared as export const FormRenderer = (...) => {...}. This is pre-existing but since the PR modifies this file, consider aligning with the project convention.

♻️ Suggested refactor
-export const FormRenderer = ({
+export function FormRenderer({
   jsonSchema,
   handleChange,
   uiSchema,
   initialValues,
   formContext,
   className,
-}: FormRendererProps) => {
+}: FormRendererProps) {

As per coding guidelines: "Use function declarations (not arrow functions) for components and handlers."

πŸ€– Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx`
around lines 19 - 26, FormRenderer is currently defined as an exported
arrow-function component; change it to a function declaration to follow project
convention: replace the `export const FormRenderer = ({ jsonSchema,
handleChange, uiSchema, initialValues, formContext, className }:
FormRendererProps) => { ... }` pattern with a named function declaration `export
function FormRenderer(props: FormRendererProps) { ... }` (or `export function
FormRenderer({ jsonSchema, handleChange, uiSchema, initialValues, formContext,
className }: FormRendererProps) { ... }`), preserving the same parameter names
and return value, and ensure any references to FormRendererProps remain
unchanged.
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx (1)

22-85: Consider extracting business logic into a useSetupRequirementsCard hook

The component holds six derived values and two handler functions. Per the project structure guidelines, render logic and business logic should be separated into SetupRequirementsCard.tsx + useSetupRequirementsCard.ts.

The canRun derivation and handleRun logic are the prime candidates for extraction.

Based on learnings: "Separate render logic from business logic with component.tsx + useComponent.ts + helpers.ts structure."

πŸ€– Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@autogpt_platform/frontend/src/app/`(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
around lines 22 - 85, Extract the business logic (all derived state and
handlers) from SetupRequirementsCard into a new hook named
useSetupRequirementsCard: move the state declarations (inputCredentials,
inputValues, hasSent), derived computations (needsCredentials,
isAllCredentialsComplete, needsInputs, requiredInputNames, isAllInputsComplete,
canRun) and handler functions (handleCredentialChange, handleRun) into
useSetupRequirementsCard and have it return the values and callbacks; update
SetupRequirementsCard to only call useSetupRequirementsCard(...) (passing output
and onSend or useCopilotChatActions inside the hook) and use the returned
canRun, handleRun, handleCredentialChange, inputValues, setInputValues, etc.,
keeping render JSX here and no business logic. Ensure function names match:
useSetupRequirementsCard, handleCredentialChange, handleRun, and keep
coerceCredentialFields/coerceExpectedInputs/buildExpectedInputsSchema usage
inside the new hook.
πŸ€– Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@autogpt_platform/frontend/src/app/`(platform)/copilot/tools/EditAgent/EditAgent.tsx:
- Line 162: The UI can render an empty ContentMessage because output.message may
be undefined when isOperating is true; update the render to use the same
fallback as the accordion title by substituting output.message with
getAccordionMeta(output).title when undefined (i.e., render ContentMessage with
output.message ?? getAccordionMeta(output).title) and ensure getAccordionMeta is
available in this scope so the message shows "Agent editing started" (or the
same fallback) instead of an empty body.

---

Outside diff comments:
In
`@autogpt_platform/frontend/src/app/`(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx:
- Around line 77-113: The Proceed button is only shown when needsCredentials is
true, leaving users stuck if expectedInputs exists but credentials are already
satisfied; introduce a boolean (e.g., needsInputs = expectedInputs.length > 0)
and change the Proceed button rendering guard to (needsCredentials ||
needsInputs) or equivalent so the button is rendered when there are expected
inputs even if needsCredentials is false; ensure you keep the existing
disabled={!canProceed} and onClick={handleProceed} behavior on the Button
component.

---

Nitpick comments:
In
`@autogpt_platform/frontend/src/app/`(platform)/copilot/tools/EditAgent/EditAgent.tsx:
- Line 15: The import of MiniGame in EditAgent ties EditAgent to CreateAgent's
internal folder; move the MiniGame component to a shared location (e.g.,
copilot/components/MiniGame/MiniGame) and update imports in both EditAgent and
CreateAgent to import from that shared path. Specifically, create a new
directory for the shared component, relocate the MiniGame file and any related
assets/exports, update the import statements in EditAgent.tsx (where MiniGame is
currently imported from ../CreateAgent/...) and in CreateAgent files to import
from the new copilot/components/MiniGame path, and run a quick build or tests to
ensure no broken imports remain.

In
`@autogpt_platform/frontend/src/app/`(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx:
- Around line 22-85: Extract the business logic (all derived state and handlers)
from SetupRequirementsCard into a new hook named useSetupRequirementsCard: move
the state declarations (inputCredentials, inputValues, hasSent), derived
computations (needsCredentials, isAllCredentialsComplete, needsInputs,
requiredInputNames, isAllInputsComplete, canRun) and handler functions
(handleCredentialChange, handleRun) into useSetupRequirementsCard and have it
return the values and callbacks; update SetupRequirementsCard to only call
useSetupRequirementsCard(...) (passing output and onSend or
useCopilotChatActions inside the hook) and use the returned canRun, handleRun,
handleCredentialChange, inputValues, setInputValues, etc., keeping render JSX
here and no business logic. Ensure function names match:
useSetupRequirementsCard, handleCredentialChange, handleRun, and keep
coerceCredentialFields/coerceExpectedInputs/buildExpectedInputsSchema usage
inside the new hook.

In
`@autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx`:
- Around line 19-26: FormRenderer is currently defined as an exported
arrow-function component; change it to a function declaration to follow project
convention: replace the `export const FormRenderer = ({ jsonSchema,
handleChange, uiSchema, initialValues, formContext, className }:
FormRendererProps) => { ... }` pattern with a named function declaration `export
function FormRenderer(props: FormRendererProps) { ... }` (or `export function
FormRenderer({ jsonSchema, handleChange, uiSchema, initialValues, formContext,
className }: FormRendererProps) { ... }`), preserving the same parameter names
and return value, and ensure any references to FormRendererProps remain
unchanged.
ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between e40c8c7 and b1d2f3b.

πŸ“’ Files selected for processing (9)
  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
πŸ“œ Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: types
  • GitHub Check: Seer Code Review
  • GitHub Check: end-to-end tests
  • GitHub Check: Check PR Status
🧰 Additional context used
πŸ““ Path-based instructions (13)
autogpt_platform/frontend/**/*.{ts,tsx,js,jsx}

πŸ“„ CodeRabbit inference engine (.github/copilot-instructions.md)

autogpt_platform/frontend/**/*.{ts,tsx,js,jsx}: Use Node.js 21+ with pnpm package manager for frontend development
Always run 'pnpm format' for formatting and linting code in frontend development

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/**/*.{tsx,ts}

πŸ“„ CodeRabbit inference engine (.github/copilot-instructions.md)

autogpt_platform/frontend/**/*.{tsx,ts}: Use function declarations for components and handlers (not arrow functions) in React components
Only use arrow functions for small inline lambdas (map, filter, etc.) in React components
Use PascalCase for component names and camelCase with 'use' prefix for hook names in React
Use Tailwind CSS utilities only for styling in frontend components
Use design system components from 'src/components/' (atoms, molecules, organisms) in frontend development
Never use 'src/components/legacy/' in frontend code
Only use Phosphor Icons (@phosphor-icons/react) for icons in frontend components
Use generated API hooks from '@/app/api/generated/endpoints/' instead of deprecated 'BackendAPI' or 'src/lib/autogpt-server-api/
'
Use React Query for server state (via generated hooks) in frontend development
Default to client components ('use client') in Next.js; only use server components for SEO or extreme TTFB needs
Use '' component for rendering errors in frontend UI; use toast notifications for mutation errors; use 'Sentry.captureException()' for manual exceptions
Separate render logic from data/behavior in React components; keep comments minimal (code should be self-documenting)

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/**/*.{ts,tsx}

πŸ“„ CodeRabbit inference engine (.github/copilot-instructions.md)

autogpt_platform/frontend/**/*.{ts,tsx}: No barrel files or 'index.ts' re-exports in frontend code
Regenerate API hooks with 'pnpm generate:api' after backend OpenAPI spec changes in frontend development

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/src/**/*.{ts,tsx}

πŸ“„ CodeRabbit inference engine (autogpt_platform/frontend/CLAUDE.md)

autogpt_platform/frontend/src/**/*.{ts,tsx}: Fully capitalize acronyms in symbols, e.g. graphID, useBackendAPI
Use function declarations (not arrow functions) for components and handlers
Separate render logic (.tsx) from business logic (use*.ts hooks)
Use shadcn/ui (Radix UI primitives) with Tailwind CSS styling for UI components
Use Phosphor Icons only for icons
Use ErrorCard for render errors, toast for mutations, and Sentry for exceptions
Use design system components from src/components/ (atoms, molecules, organisms)
Never use src/components/__legacy__/* components
Use generated API hooks from @/app/api/__generated__/endpoints/ with pattern use{Method}{Version}{OperationName}
Use Tailwind CSS only for styling, with design tokens
Do not use useCallback or useMemo unless asked to optimize a given function
Never type with any unless a variable/attribute can ACTUALLY be of any type

autogpt_platform/frontend/src/**/*.{ts,tsx}: Structure components as ComponentName/ComponentName.tsx + useComponentName.ts + helpers.ts and use design system components from src/components/ (atoms, molecules, organisms)
Use generated API hooks from @/app/api/__generated__/endpoints/ with pattern use{Method}{Version}{OperationName} and regenerate with pnpm generate:api
Use function declarations (not arrow functions) for components and handlers
Separate render logic from business logic with component.tsx + useComponent.ts + helpers.ts structure
Colocate state when possible, avoid creating large components, use sub-components in local /components folder
Avoid large hooks, abstract logic into helpers.ts files when sensible
Use arrow functions only for callbacks, not for component declarations
Avoid comments at all times unless the code is very complex
Do not use useCallback or useMemo unless asked to optimize a given function

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/src/**/*.tsx

πŸ“„ CodeRabbit inference engine (autogpt_platform/frontend/CLAUDE.md)

Component props should be type Props = { ... } (not exported) unless it needs to be used outside the component

Component props should be interface Props { ... } (not exported) unless the interface needs to be used outside the component

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/**/*.{js,jsx,ts,tsx}

πŸ“„ CodeRabbit inference engine (AGENTS.md)

autogpt_platform/frontend/**/*.{js,jsx,ts,tsx}: Format frontend code using pnpm format
Never use components from src/components/__legacy__/*

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/**/*.{js,jsx,ts,tsx,css}

πŸ“„ CodeRabbit inference engine (AGENTS.md)

Use Tailwind CSS only for styling, use design tokens, and use Phosphor Icons only

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/**/*.{ts,tsx}

πŸ“„ CodeRabbit inference engine (AGENTS.md)

Never type with any, if no types available use unknown

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/src/app/(platform)/**/*.tsx

πŸ“„ CodeRabbit inference engine (AGENTS.md)

If adding protected frontend routes, update frontend/lib/supabase/middleware.ts

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/src/components/**/*.{tsx,ts}

πŸ“„ CodeRabbit inference engine (.github/copilot-instructions.md)

Structure React components as: ComponentName/ComponentName.tsx + useComponentName.ts + helpers.ts (exception: small 3-4 line components can be inline; render-only components can be direct files)

Files:

  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
autogpt_platform/frontend/src/components/**/*.{ts,tsx}

πŸ“„ CodeRabbit inference engine (autogpt_platform/frontend/CLAUDE.md)

Structure components as ComponentName/ComponentName.tsx + useComponentName.ts + helpers.ts

Files:

  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
autogpt_platform/frontend/src/app/(platform)/**/page.tsx

πŸ“„ CodeRabbit inference engine (autogpt_platform/frontend/CLAUDE.md)

Create pages in src/app/(platform)/feature-name/page.tsx with component logic extracted into custom hooks grouped by concern, each hook in its own .ts file

Create pages in src/app/(platform)/feature-name/page.tsx with a usePageName.ts hook for logic and sub-components in local components/ folder

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
autogpt_platform/frontend/src/app/(platform)/**/components/**/*.{ts,tsx}

πŸ“„ CodeRabbit inference engine (autogpt_platform/frontend/CLAUDE.md)

Put sub-components in local components/ folder within feature directories

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
🧠 Learnings (19)
πŸ“š Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{tsx,ts} : Separate render logic from data/behavior in React components; keep comments minimal (code should be self-documenting)

Applied to files:

  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
πŸ“š Learning: 2026-02-04T16:50:33.615Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:33.615Z
Learning: Applies to autogpt_platform/frontend/src/**/*.tsx : Component props should be `type Props = { ... }` (not exported) unless it needs to be used outside the component

Applied to files:

  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
πŸ“š Learning: 2026-02-04T16:50:33.615Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:33.615Z
Learning: Applies to autogpt_platform/frontend/src/**/*.{ts,tsx} : Separate render logic (`.tsx`) from business logic (`use*.ts` hooks)

Applied to files:

  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
πŸ“š Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/src/**/*.tsx : Component props should be `interface Props { ... }` (not exported) unless the interface needs to be used outside the component

Applied to files:

  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
πŸ“š Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/src/**/*.{ts,tsx} : Separate render logic from business logic with component.tsx + useComponent.ts + helpers.ts structure

Applied to files:

  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
πŸ“š Learning: 2026-02-04T16:50:20.508Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/backend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:20.508Z
Learning: Applies to autogpt_platform/backend/backend/blocks/*.py : When adding new blocks, analyze block interfaces to ensure inputs and outputs tie well together for productive graph-based editor connections

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx
πŸ“š Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/**/__tests__/*.test.{tsx,ts} : Mock API requests in integration tests via MSW (Mock Service Worker)

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
πŸ“š Learning: 2026-02-04T16:50:33.615Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:33.615Z
Learning: Applies to autogpt_platform/frontend/**/*.stories.tsx : Add Storybook stories for new components and Playwright E2E tests for features

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
πŸ“š Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{stories.tsx,stories.ts} : Add/update Storybook stories for UI components in frontend development

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
πŸ“š Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/**/*.stories.{ts,tsx} : Add Storybook stories for new components and Playwright for E2E testing

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
πŸ“š Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/**/*.stories.tsx : Use Storybook for design system, atoms, molecules, visual states (hover, disabled, loading), and responsive layouts

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
πŸ“š Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for authentication flows (login, signup, logout) that MUST work in a real browser

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
πŸ“š Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{tsx,ts} : Use generated API hooks from '@/app/api/__generated__/endpoints/' instead of deprecated 'BackendAPI' or 'src/lib/autogpt-server-api/*'

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
πŸ“š Learning: 2026-02-04T16:50:33.615Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:33.615Z
Learning: Applies to autogpt_platform/frontend/**/*.{test.ts,test.tsx,.stories.tsx} : Use Playwright for E2E tests and Storybook for component development

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx
πŸ“š Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{tsx,ts} : Use design system components from 'src/components/' (atoms, molecules, organisms) in frontend development

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
πŸ“š Learning: 2026-02-04T16:50:33.615Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:33.615Z
Learning: Applies to autogpt_platform/frontend/src/**/*.{ts,tsx} : Use design system components from `src/components/` (atoms, molecules, organisms)

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
πŸ“š Learning: 2026-02-04T16:50:33.615Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:33.615Z
Learning: Applies to autogpt_platform/frontend/src/**/*.{ts,tsx} : Use shadcn/ui (Radix UI primitives) with Tailwind CSS styling for UI components

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
πŸ“š Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{tsx,ts} : Use PascalCase for component names and camelCase with 'use' prefix for hook names in React

Applied to files:

  • autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx
πŸ“š Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/src/**/*.{ts,tsx} : Colocate state when possible, avoid creating large components, use sub-components in local `/components` folder

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
🧬 Code graph analysis (7)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx (1)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/helpers.tsx (5)
  • isRunAgentSetupRequirementsOutput (40-47)
  • isRunAgentAgentDetailsOutput (57-61)
  • isRunAgentNeedLoginOutput (63-67)
  • isRunAgentExecutionStartedOutput (49-55)
  • isRunAgentErrorOutput (69-73)
autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx (1)
autogpt_platform/frontend/src/lib/utils.ts (1)
  • cn (14-16)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx (2)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/helpers.tsx (1)
  • isRunBlockSetupRequirementsOutput (48-55)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx (1)
  • SetupRequirementsCard (22-142)
autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx (1)
autogpt_platform/frontend/src/providers/agent-credentials/credentials-provider.tsx (3)
  • CredentialsProviderData (32-62)
  • CredentialsProvidersContextType (64-66)
  • CredentialsProvidersContext (68-69)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx (3)
autogpt_platform/frontend/src/app/(platform)/copilot/components/ToolAccordion/AccordionContent.tsx (1)
  • ContentMessage (112-124)
autogpt_platform/frontend/src/components/atoms/Text/Text.tsx (1)
  • Text (16-36)
autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx (1)
  • FormRenderer (19-54)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx (3)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/helpers.tsx (1)
  • AccordionIcon (182-184)
autogpt_platform/frontend/src/app/(platform)/copilot/components/ToolAccordion/AccordionContent.tsx (2)
  • ContentGrid (9-17)
  • ContentMessage (112-124)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/components/MiniGame/MiniGame.tsx (1)
  • MiniGame (9-50)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx (2)
autogpt_platform/frontend/src/components/atoms/Text/Text.tsx (1)
  • Text (16-36)
autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsGroupedView/CredentialsGroupedView.tsx (1)
  • CredentialsGroupedView (31-186)
πŸ”‡ Additional comments (11)
autogpt_platform/frontend/src/components/contextual/CredentialsInput/components/CredentialsFlatView/CredentialsFlatView.tsx (2)

107-117: AI summary over-states the scope of changes β€” "has credentials" button remains "secondary".

The AI summary claims the button inside the hasCredentials branch was also changed to variant="primary", but the code at line 109 is still variant="secondary" (no ~ marker). The PR objective explicitly limits the primary variant to the no-credentials case, so the current code is correct.


119-131: LGTM β€” promoting the Add button to "primary" when no credentials exist is the right UX signal.

This makes the required call-to-action visually prominent precisely when the user has nothing to select, which aligns with the PR's goal of making blocking requirements always visible and actionable.

autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx (3)

88-96: LGTM β€” dynamic title with sensible fallback.

Using output.message for the accordion title during in-progress states is a nice improvement for user feedback. The || "Agent creation started" fallback handles the case where message is empty/undefined.


169-179: LGTM β€” streaming MiniGame block is well-placed and state-exclusive.

The streaming block is cleanly separated from the output-available accordion. Since isStreaming requires input-streaming | input-available and hasExpandableContent requires output-available, the two blocks are mutually exclusive, preventing duplicate accordion rendering.


181-183: LGTM β€” simplified operating-state content is consistent with streaming refactor.

Now that the MiniGame lives in the streaming block (lines 169–179), the in-accordion content for operating states correctly reduces to just a ContentMessage. The parent guard (hasExpandableContent && output) ensures output is non-null here.

autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx (2)

82-84: LGTM β€” dynamic title with sensible fallback.

The output.message || "Agent editing started" fallback correctly guards against empty/undefined message strings, consistent with the streaming accordion's static title.


148-158: Streaming accordion block looks good.

The streaming and expandable-content branches are mutually exclusive (input-* vs. output-available), so there's no risk of both blocks rendering simultaneously. The hardcoded expanded prop is intentional per the PR's "always-visible" objective.

autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/RunBlock.tsx (1)

42-71: LGTM β€” clean extraction of SetupRequirementsCard outside the accordion

The setupRequirementsOutput derivation and the !setupRequirementsOutput guard on hasExpandableContent correctly ensure mutual exclusivity between the accordion and the setup card. Consistent with the RunAgent pattern.

autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx (1)

50-68: LGTM β€” isOutputAvailable abstraction and three derived outputs are clean and consistent

The mutual exclusivity between setupRequirementsOutput, agentDetailsOutput, needLoginOutput, and the accordion's hasExpandableContent is logically sound. Mirrors the RunBlock pattern effectively.

autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx (1)

61-64: canRun logic is correct β€” approve

The three-part guard !hasSent && (!needsCredentials || isAllCredentialsComplete) && (!needsInputs || isAllInputsComplete) correctly handles all combinations: no credentials needed, only credentials needed, only inputs needed, and both needed. The vacuous-truth cases (empty requiredCredentials / requiredInputNames) are also handled correctly.

autogpt_platform/frontend/src/app/(platform)/copilot/styleguide/page.tsx (1)

111-131: No issues found. CredentialsProviderName is intentionally defined as a broad string type to support dynamically registered providers from the SDK, not as a string literal union. The assignment provider: string to CredentialsProviderData.provider is type-safe and correct.

…eRabbit

- Fix misleading "credentials configured" message when only inputs are needed (Sentry)
- Guard against undefined output.message in EditAgent ContentMessage (CodeRabbit)
- Show Proceed button for inputs-only case in RunAgent SetupRequirementsCard (CodeRabbit)
- Move MiniGame to shared copilot/components location (CodeRabbit)
- Convert FormRenderer to function declaration per conventions (CodeRabbit)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx (1)

162-164: Past review feedback addressed β€” output.message is now guarded.

The output.message && check prevents rendering an empty ContentMessage, resolving the concern from the previous review.

πŸ€– Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@autogpt_platform/frontend/src/app/`(platform)/copilot/tools/EditAgent/EditAgent.tsx
around lines 162 - 164, The previous issue (empty ContentMessage rendering) has
been fixed by guarding the render with the condition {isOperating &&
output.message && (<ContentMessage>{output.message}</ContentMessage>)}, so no
further change is required; keep the check around ContentMessage in
EditAgent.tsx (symbols: isOperating, output.message, ContentMessage) to prevent
rendering when message is empty.
🧹 Nitpick comments (1)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx (1)

66-89: Consider not resetting inputValues after send, to preserve visual state.

Line 88 clears inputValues after onSend, which will blank out the form while it's still visible (the hasSent flag only disables the button, not the form). This could be mildly confusing to the user, who might expect to see what they just submitted. A minor UX consideration.

Proposed fix
     onSend(parts.join(" "));
-    setInputValues({});
   }
πŸ€– Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@autogpt_platform/frontend/src/app/`(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
around lines 66 - 89, The handler handleRun currently clears the form state by
calling setInputValues({}) after invoking onSend, which blanks the visible
inputs while hasSent only disables the button; to preserve visual state remove
or conditionally defer the setInputValues({}) call so inputValues remain
displayed after submission (or only clear when the form is actually
closed/reset), and ensure any dependent logic (hasSent/onSend) still behaves
correctly with the retained inputValues.
πŸ€– Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@autogpt_platform/frontend/src/app/`(platform)/copilot/tools/CreateAgent/CreateAgent.tsx:
- Line 183: In CreateAgent component update the JSX that currently renders
{isOperating && <ContentMessage>{output.message}</ContentMessage>} to guard
against a falsy message (mirror the fix from EditAgent) by ensuring you only
render ContentMessage when both isOperating and output.message are truthy;
locate the JSX in CreateAgent.tsx and change the conditional to check
output.message before rendering the ContentMessage element so it doesn't produce
an empty text node.

---

Duplicate comments:
In
`@autogpt_platform/frontend/src/app/`(platform)/copilot/tools/EditAgent/EditAgent.tsx:
- Around line 162-164: The previous issue (empty ContentMessage rendering) has
been fixed by guarding the render with the condition {isOperating &&
output.message && (<ContentMessage>{output.message}</ContentMessage>)}, so no
further change is required; keep the check around ContentMessage in
EditAgent.tsx (symbols: isOperating, output.message, ContentMessage) to prevent
rendering when message is empty.

---

Nitpick comments:
In
`@autogpt_platform/frontend/src/app/`(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx:
- Around line 66-89: The handler handleRun currently clears the form state by
calling setInputValues({}) after invoking onSend, which blanks the visible
inputs while hasSent only disables the button; to preserve visual state remove
or conditionally defer the setInputValues({}) call so inputValues remain
displayed after submission (or only clear when the form is actually
closed/reset), and ensure any dependent logic (hasSent/onSend) still behaves
correctly with the retained inputValues.
ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between b1d2f3b and 5127663.

β›” Files ignored due to path filters (1)
  • autogpt_platform/frontend/src/app/(platform)/copilot/components/MiniGame/assets/sparkles.png is excluded by !**/*.png
πŸ“’ Files selected for processing (8)
  • autogpt_platform/frontend/src/app/(platform)/copilot/components/MiniGame/MiniGame.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/components/MiniGame/useMiniGame.ts
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/components/SetupRequirementsCard/SetupRequirementsCard.tsx
πŸ“œ Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Seer Code Review
  • GitHub Check: types
  • GitHub Check: end-to-end tests
  • GitHub Check: Analyze (python)
  • GitHub Check: Check PR Status
🧰 Additional context used
πŸ““ Path-based instructions (12)
autogpt_platform/frontend/**/*.{ts,tsx,js,jsx}

πŸ“„ CodeRabbit inference engine (.github/copilot-instructions.md)

autogpt_platform/frontend/**/*.{ts,tsx,js,jsx}: Use Node.js 21+ with pnpm package manager for frontend development
Always run 'pnpm format' for formatting and linting code in frontend development

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/**/*.{tsx,ts}

πŸ“„ CodeRabbit inference engine (.github/copilot-instructions.md)

autogpt_platform/frontend/**/*.{tsx,ts}: Use function declarations for components and handlers (not arrow functions) in React components
Only use arrow functions for small inline lambdas (map, filter, etc.) in React components
Use PascalCase for component names and camelCase with 'use' prefix for hook names in React
Use Tailwind CSS utilities only for styling in frontend components
Use design system components from 'src/components/' (atoms, molecules, organisms) in frontend development
Never use 'src/components/legacy/' in frontend code
Only use Phosphor Icons (@phosphor-icons/react) for icons in frontend components
Use generated API hooks from '@/app/api/generated/endpoints/' instead of deprecated 'BackendAPI' or 'src/lib/autogpt-server-api/
'
Use React Query for server state (via generated hooks) in frontend development
Default to client components ('use client') in Next.js; only use server components for SEO or extreme TTFB needs
Use '' component for rendering errors in frontend UI; use toast notifications for mutation errors; use 'Sentry.captureException()' for manual exceptions
Separate render logic from data/behavior in React components; keep comments minimal (code should be self-documenting)

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/**/*.{ts,tsx}

πŸ“„ CodeRabbit inference engine (.github/copilot-instructions.md)

autogpt_platform/frontend/**/*.{ts,tsx}: No barrel files or 'index.ts' re-exports in frontend code
Regenerate API hooks with 'pnpm generate:api' after backend OpenAPI spec changes in frontend development

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/src/**/*.{ts,tsx}

πŸ“„ CodeRabbit inference engine (autogpt_platform/frontend/CLAUDE.md)

autogpt_platform/frontend/src/**/*.{ts,tsx}: Fully capitalize acronyms in symbols, e.g. graphID, useBackendAPI
Use function declarations (not arrow functions) for components and handlers
Separate render logic (.tsx) from business logic (use*.ts hooks)
Use shadcn/ui (Radix UI primitives) with Tailwind CSS styling for UI components
Use Phosphor Icons only for icons
Use ErrorCard for render errors, toast for mutations, and Sentry for exceptions
Use design system components from src/components/ (atoms, molecules, organisms)
Never use src/components/__legacy__/* components
Use generated API hooks from @/app/api/__generated__/endpoints/ with pattern use{Method}{Version}{OperationName}
Use Tailwind CSS only for styling, with design tokens
Do not use useCallback or useMemo unless asked to optimize a given function
Never type with any unless a variable/attribute can ACTUALLY be of any type

autogpt_platform/frontend/src/**/*.{ts,tsx}: Structure components as ComponentName/ComponentName.tsx + useComponentName.ts + helpers.ts and use design system components from src/components/ (atoms, molecules, organisms)
Use generated API hooks from @/app/api/__generated__/endpoints/ with pattern use{Method}{Version}{OperationName} and regenerate with pnpm generate:api
Use function declarations (not arrow functions) for components and handlers
Separate render logic from business logic with component.tsx + useComponent.ts + helpers.ts structure
Colocate state when possible, avoid creating large components, use sub-components in local /components folder
Avoid large hooks, abstract logic into helpers.ts files when sensible
Use arrow functions only for callbacks, not for component declarations
Avoid comments at all times unless the code is very complex
Do not use useCallback or useMemo unless asked to optimize a given function

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/src/**/*.tsx

πŸ“„ CodeRabbit inference engine (autogpt_platform/frontend/CLAUDE.md)

Component props should be type Props = { ... } (not exported) unless it needs to be used outside the component

Component props should be interface Props { ... } (not exported) unless the interface needs to be used outside the component

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/**/*.{js,jsx,ts,tsx}

πŸ“„ CodeRabbit inference engine (AGENTS.md)

autogpt_platform/frontend/**/*.{js,jsx,ts,tsx}: Format frontend code using pnpm format
Never use components from src/components/__legacy__/*

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/**/*.{js,jsx,ts,tsx,css}

πŸ“„ CodeRabbit inference engine (AGENTS.md)

Use Tailwind CSS only for styling, use design tokens, and use Phosphor Icons only

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/**/*.{ts,tsx}

πŸ“„ CodeRabbit inference engine (AGENTS.md)

Never type with any, if no types available use unknown

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/src/app/(platform)/**/*.tsx

πŸ“„ CodeRabbit inference engine (AGENTS.md)

If adding protected frontend routes, update frontend/lib/supabase/middleware.ts

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
autogpt_platform/frontend/src/components/**/*.{tsx,ts}

πŸ“„ CodeRabbit inference engine (.github/copilot-instructions.md)

Structure React components as: ComponentName/ComponentName.tsx + useComponentName.ts + helpers.ts (exception: small 3-4 line components can be inline; render-only components can be direct files)

Files:

  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
autogpt_platform/frontend/src/components/**/*.{ts,tsx}

πŸ“„ CodeRabbit inference engine (autogpt_platform/frontend/CLAUDE.md)

Structure components as ComponentName/ComponentName.tsx + useComponentName.ts + helpers.ts

Files:

  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
autogpt_platform/frontend/src/app/(platform)/**/components/**/*.{ts,tsx}

πŸ“„ CodeRabbit inference engine (autogpt_platform/frontend/CLAUDE.md)

Put sub-components in local components/ folder within feature directories

Files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
🧠 Learnings (8)
πŸ“š Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/src/**/*.{ts,tsx} : Colocate state when possible, avoid creating large components, use sub-components in local `/components` folder

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
πŸ“š Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/src/**/*.{ts,tsx} : Separate render logic from business logic with component.tsx + useComponent.ts + helpers.ts structure

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx
πŸ“š Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{stories.tsx,stories.ts} : Add/update Storybook stories for UI components in frontend development

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx
πŸ“š Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{tsx,ts} : Use design system components from 'src/components/' (atoms, molecules, organisms) in frontend development

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
πŸ“š Learning: 2026-02-04T16:50:33.615Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:33.615Z
Learning: Applies to autogpt_platform/frontend/src/**/*.{ts,tsx} : Use design system components from `src/components/` (atoms, molecules, organisms)

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx
πŸ“š Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{tsx,ts} : Separate render logic from data/behavior in React components; keep comments minimal (code should be self-documenting)

Applied to files:

  • autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx
  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
πŸ“š Learning: 2026-02-04T16:50:33.615Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:33.615Z
Learning: Applies to autogpt_platform/frontend/src/**/*.{ts,tsx} : Use ErrorCard for render errors, toast for mutations, and Sentry for exceptions

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
πŸ“š Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{tsx,ts} : Use '<ErrorCard />' component for rendering errors in frontend UI; use toast notifications for mutation errors; use 'Sentry.captureException()' for manual exceptions

Applied to files:

  • autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx
🧬 Code graph analysis (2)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx (2)
autogpt_platform/frontend/src/app/(platform)/copilot/components/ToolAccordion/AccordionContent.tsx (2)
  • ContentGrid (9-17)
  • ContentMessage (112-124)
autogpt_platform/frontend/src/app/(platform)/copilot/components/MiniGame/MiniGame.tsx (1)
  • MiniGame (9-50)
autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx (1)
autogpt_platform/frontend/src/lib/utils.ts (1)
  • cn (14-16)
πŸ”‡ Additional comments (9)
autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx (1)

169-179: LGTM β€” streaming UI block extracted cleanly.

The streaming ToolAccordion with MiniGame is well-structured. Since isStreaming checks for "input-streaming" | "input-available" and hasExpandableContent requires "output-available", the two blocks are mutually exclusive β€” no risk of duplicate rendering.

autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunAgent/RunAgent.tsx (2)

50-68: Clean extraction of blocking outputs from the accordion.

The derived output variables and the updated hasExpandableContent logic correctly separate setup requirements, agent details, and login prompts from the expandable accordion content. The mutual exclusion ensures no output renders in both locations.


95-111: Standalone cards render correctly outside the accordion.

These always-visible cards directly address the PR objective of preventing credentials/inputs/login prompts from being hidden inside collapsible accordions.

autogpt_platform/frontend/src/app/(platform)/copilot/tools/EditAgent/EditAgent.tsx (1)

148-158: Streaming UI block is consistent with CreateAgent pattern.

The ToolAccordion with MiniGame follows the same structure as other tool components. The expanded prop (boolean shorthand) works correctly here.

autogpt_platform/frontend/src/components/renderers/InputRenderer/FormRenderer.tsx (2)

19-26: Good: converted to function declaration per coding guidelines.

The change from a const arrow function to a named function export aligns with the project's coding guidelines. As per coding guidelines, "Use function declarations for components and handlers (not arrow functions) in React components."


31-48: The mergedUiSchema change is backward-compatible; no breaking impact for existing consumers.

The generateUiSchemaForCustomFields() function spreads the existing uiSchema first (const uiSchema: UiSchema = { ...existingUiSchema }) before adding custom field settings. All existing FormRenderer consumersβ€”the graph builder's node input forms, SetupRequirementsCard, AgentDetailsCard, and RunInputDialogβ€”will have their uiSchema settings preserved and enhanced with auto-generated custom field mappings. No breaking changes for downstream callers.

Likely an incorrect or invalid review comment.

autogpt_platform/frontend/src/app/(platform)/copilot/tools/RunBlock/components/SetupRequirementsCard/SetupRequirementsCard.tsx (3)

45-64: Credential and input gating logic is well-structured.

The canRun expression uses the (!needsX || isAllXComplete) pattern, which correctly handles cases where only credentials, only inputs, or both are required. The hasSent flag prevents double-submission.


95-110: LGTM β€” credentials section renders correctly in a titled bordered box.

The "Block credentials" header and bordered container match the PR objective of making credentials always visible with consistent styling.


133-143: Unified Proceed button correctly gated.

The button only renders when there's something to act on (needsCredentials || needsInputs) and is disabled until all requirements are met. Good UX pattern.

…teAgent

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-project-automation github-project-automation bot moved this from πŸ†• Needs initial review to πŸ‘πŸΌ Mergeable in AutoGPT development kanban Feb 23, 2026
@0ubbe 0ubbe merged commit a18ffd0 into dev Feb 23, 2026
23 checks passed
@0ubbe 0ubbe deleted the fix/better-credentials-asking branch February 23, 2026 09:39
@github-project-automation github-project-automation bot moved this to Done in Frontend Feb 23, 2026
@github-project-automation github-project-automation bot moved this from πŸ‘πŸΌ Mergeable to βœ… Done in AutoGPT development kanban Feb 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

platform/frontend AutoGPT Platform - Front end size/xl

Projects

Status: βœ… Done
Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants