Skip to content

feat: add max tool call steps setting#2900

Merged
wwwillchen merged 1 commit intodyad-sh:mainfrom
wwwillchen-bot:agent--1772671377894-1772670589
Mar 5, 2026
Merged

feat: add max tool call steps setting#2900
wwwillchen merged 1 commit intodyad-sh:mainfrom
wwwillchen-bot:agent--1772671377894-1772670589

Conversation

@wwwillchen-bot
Copy link
Copy Markdown
Collaborator

@wwwillchen-bot wwwillchen-bot commented Mar 5, 2026

Summary

  • Add a new setting to configure the maximum number of tool call steps for local agent interactions
  • Users can choose from Low (25), Default (50), High (100), Very High (250) options
  • The setting is integrated into the settings page with search index support

Test plan

  • Verify the setting appears in Settings > Agent Settings
  • Change the value and confirm it persists after app restart
  • Verify the agent respects the configured limit during tool calls
  • Run the new e2e tests to confirm UI interactions work correctly

πŸ€– Generated with Claude Code


Open with Devin

Add a new setting to configure the maximum number of tool call steps
for local agent interactions. This allows users to limit how many
tool calls the agent can make in a single response, with options
ranging from Low (25) to Unlimited (999).

- Add MaxToolCallStepsSelector component with preset options
- Integrate setting into settings page and schema
- Add e2e tests for the new setting
- Update local agent handler to use the configured limit

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@wwwillchen
Copy link
Copy Markdown
Collaborator

@BugBot run

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a crucial user-configurable setting that allows for fine-grained control over the behavior of local agents by limiting the number of tool calls they can execute. This enhancement provides users with the ability to prevent agents from entering excessive loops, manage resource consumption, and tailor agent complexity to specific tasks, thereby improving the overall stability and predictability of agent interactions.

Highlights

  • New Setting: Max Tool Call Steps: A new setting has been introduced to allow users to configure the maximum number of tool call steps for local agent interactions.
  • Configurable Options: Users can now choose from predefined options: Low (25), Default (50), High (100), Very High (200), or Unlimited (999, though the code shows 200 as max for 'Very High').
  • Settings Page Integration: The new setting is fully integrated into the application's settings page, including support for search indexing to easily find it.
  • E2E Test Coverage: New end-to-end tests have been added to verify the functionality and persistence of the max tool call steps setting.
Changelog
  • e2e-tests/max_tool_call_steps.spec.ts
    • Added a new e2e test to verify the functionality of the max tool call steps setting, including changing values and persistence.
  • e2e-tests/snapshots/max_tool_call_steps.spec.ts_max-tool-call-steps-setting-1.txt
    • Added a snapshot file for the initial state of the max tool call steps setting (25).
  • e2e-tests/snapshots/max_tool_call_steps.spec.ts_max-tool-call-steps-setting-2.txt
    • Added a snapshot file for the updated state of the max tool call steps setting (100).
  • e2e-tests/snapshots/max_tool_call_steps.spec.ts_max-tool-call-steps-setting-3.txt
    • Added a snapshot file for the final state of the max tool call steps setting (default).
  • src/components/MaxToolCallStepsSelector.tsx
    • Added a new React component, MaxToolCallStepsSelector, to provide a UI for selecting the maximum tool call steps.
  • src/constants/settings_constants.ts
    • Added DEFAULT_MAX_TOOL_CALL_STEPS constant with a value of 50.
  • src/i18n/locales/en/settings.json
    • Added new internationalization keys for 'maxToolCallSteps', 'maxToolCallStepsDescription', and 'selectMaxToolCallSteps'.
  • src/lib/schemas.ts
    • Added maxToolCallSteps as an optional number field to the BaseUserSettingsFields schema.
  • src/lib/settingsSearchIndex.ts
    • Added maxToolCallSteps to SETTING_IDS.
    • Included the new setting in SETTINGS_SEARCH_INDEX with relevant keywords for search functionality.
  • src/pages/settings.tsx
    • Imported the MaxToolCallStepsSelector component.
    • Integrated the MaxToolCallStepsSelector component into the AI settings section of the settings page.
  • src/pro/main/ipc/handlers/local_agent/local_agent_handler.ts
    • Removed the hardcoded MAX_TOOL_CALL_STEPS constant.
    • Imported DEFAULT_MAX_TOOL_CALL_STEPS from settings_constants.
    • Modified the handleLocalAgentStream function to retrieve maxToolCallSteps from user settings, defaulting to DEFAULT_MAX_TOOL_CALL_STEPS.
    • Updated the stepCountIs check and the step limit message to use the configurable maxToolCallSteps.
Activity
  • No human activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with πŸ‘ and πŸ‘Ž on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Mar 5, 2026

Greptile Summary

This PR adds a user-configurable "Max Tool Calls (Agent)" setting that replaces the previous hardcoded MAX_TOOL_CALL_STEPS = 50 constant, allowing users to choose from Low (25), Default (50), High (100), or Very High (200) steps for local agent interactions. The change is well-structured and follows existing patterns in the codebase (mirrors MaxChatTurnsSelector), with proper schema validation, i18n support, search index integration, and e2e test coverage.

  • A new MaxToolCallStepsSelector component renders the dropdown using the same pattern as the existing MaxChatTurnsSelector
  • DEFAULT_MAX_TOOL_CALL_STEPS = 50 is extracted to settings_constants.ts, preserving backward-compatible default behavior
  • local_agent_handler.ts reads the setting at runtime and applies it to stepCountIs(...) and the step-limit notice β€” however, the new import was placed in the middle of the file, after existing const declarations, rather than at the top with the other imports
  • The PR description advertises options "Very High (250)" and "Unlimited (999)" that do not exist in the implementation (the top option is Very High 200, with no Unlimited tier)

Confidence Score: 4/5

  • Safe to merge with minor fixes β€” no logic errors or regressions, only a misplaced import and a PR description mismatch.
  • The core logic is sound: the default value is preserved via ?? DEFAULT_MAX_TOOL_CALL_STEPS, the schema change is backward-compatible, and the UI pattern closely follows the established MaxChatTurnsSelector. The only issues are a stylistic misplaced import in local_agent_handler.ts and a discrepancy between the PR description and the actual option values.
  • src/pro/main/ipc/handlers/local_agent/local_agent_handler.ts β€” import placed after const declarations; src/components/MaxToolCallStepsSelector.tsx β€” option values differ from PR description

Important Files Changed

Filename Overview
src/pro/main/ipc/handlers/local_agent/local_agent_handler.ts Replaces the hardcoded MAX_TOOL_CALL_STEPS constant with a user-configurable value read from settings; correctly falls back to DEFAULT_MAX_TOOL_CALL_STEPS (50) when unset. Minor style issue: the new import statement is placed in the middle of the file after const declarations instead of at the top with the other imports.
src/components/MaxToolCallStepsSelector.tsx New component following the same pattern as MaxChatTurnsSelector. Correctly maps "default" sentinel to undefined in settings. Discrepancy between PR description (Very High 250, Unlimited 999) and actual options (Very High 200, no Unlimited).
src/constants/settings_constants.ts Adds DEFAULT_MAX_TOOL_CALL_STEPS = 50, preserving existing default behavior.
src/lib/schemas.ts Adds optional maxToolCallSteps: z.number() field to BaseUserSettingsFields; consistent with schema for other optional numeric settings.
src/lib/settingsSearchIndex.ts Adds maxToolCallSteps to the settings search index with appropriate keywords and section placement.
src/pages/settings.tsx Integrates MaxToolCallStepsSelector into the AI settings section, correctly anchored with SETTING_IDS.maxToolCallSteps.
e2e-tests/max_tool_call_steps.spec.ts Covers three setting changes (Low→High→Default) with snapshot assertions; does not test the Very High (200) option.
src/i18n/locales/en/settings.json Adds maxToolCallSteps, maxToolCallStepsDescription, and selectMaxToolCallSteps i18n keys; maxToolCallStepsDescription is defined but not currently used in the component (consistent with the pre-existing pattern for maxChatTurnsDescription).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User opens Settings > AI] --> B[MaxToolCallStepsSelector rendered]
    B --> C{settings.maxToolCallSteps set?}
    C -- No --> D[Display: Default 50]
    C -- Yes --> E[Display: current numeric value]
    D & E --> F[User selects option]
    F -- Default --> G[updateSettings maxToolCallSteps = undefined]
    F -- Low/High/VeryHigh --> H[updateSettings maxToolCallSteps = number]
    G & H --> I[Settings persisted to disk]

    I --> J[handleLocalAgentStream called]
    J --> K[readSettings]
    K --> L{maxToolCallSteps defined?}
    L -- No --> M[Use DEFAULT_MAX_TOOL_CALL_STEPS = 50]
    L -- Yes --> N[Use settings.maxToolCallSteps]
    M & N --> O[stepCountIs limit passed to AI SDK]
    O --> P{totalStepsExecuted >= limit?}
    P -- Yes --> Q[Append dyad-step-limit notice to response]
    P -- No --> R[Continue streaming]
Loading

Last reviewed commit: d588b8d

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a new setting to configure the maximum number of tool call steps for the local agent. The changes are well-integrated, touching the settings UI, backend logic, and E2E tests. The core logic of reading and applying the new setting in the agent handler is correct. I've provided suggestions to improve the maintainability of the new E2E test by refactoring repetitive code, and to enhance the robustness of the new settings component by making default option selection less brittle. Additionally, there appears to be a minor discrepancy between the implemented options and those described in the pull request summary, which would be good to clarify.

Comment on lines +6 to +43
testSkipIfWindows("max tool call steps setting", async ({ po }) => {
await po.setUpDyadPro({ localAgent: true });
await po.importApp("minimal");

// Go to settings and change the max tool call steps
await po.navigation.goToSettingsTab();
const beforeSettings1 = po.settings.recordSettings();

// Change to Low (25)
await po.page
.getByRole("combobox", { name: "Max Tool Calls (Agent)" })
.click();
await po.page.getByRole("option", { name: "Low (25)" }).click();
po.settings.snapshotSettingsDelta(beforeSettings1);

// Verify the setting persists
await po.page.getByText("Go Back").click();
await po.navigation.goToSettingsTab();
const beforeSettings2 = po.settings.recordSettings();

// Change to High (100)
await po.page
.getByRole("combobox", { name: "Max Tool Calls (Agent)" })
.click();
await po.page.getByRole("option", { name: "High (100)" }).click();
po.settings.snapshotSettingsDelta(beforeSettings2);

// Change back to Default
await po.page.getByText("Go Back").click();
await po.navigation.goToSettingsTab();
const beforeSettings3 = po.settings.recordSettings();

await po.page
.getByRole("combobox", { name: "Max Tool Calls (Agent)" })
.click();
await po.page.getByRole("option", { name: "Default (50)" }).click();
po.settings.snapshotSettingsDelta(beforeSettings3);
});
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

This test contains a lot of repetitive code for navigating to settings, changing a value, and taking a snapshot. This can be refactored into a helper function to make the test more concise, readable, and easier to maintain.

testSkipIfWindows("max tool call steps setting", async ({ po }) => {
  await po.setUpDyadPro({ localAgent: true });
  await po.importApp("minimal");

  const changeAndSnapshot = async (optionName: string) => {
    await po.navigation.goToSettingsTab();
    const beforeSettings = po.settings.recordSettings();

    await po.page
      .getByRole("combobox", { name: "Max Tool Calls (Agent)" })
      .click();
    await po.page.getByRole("option", { name: optionName }).click();
    po.settings.snapshotSettingsDelta(beforeSettings);

    // Navigate away to ensure setting persists on next load
    await po.page.getByText("Go Back").click();
  };

  await changeAndSnapshot("Low (25)");
  await changeAndSnapshot("High (100)");
  await changeAndSnapshot("Default (50)");
});

Comment on lines +21 to +44
const options: OptionInfo[] = [
{
value: "25",
label: "Low (25)",
description:
"Limits tool calls to 25. Good for simple tasks that don't need many steps.",
},
{
value: defaultValue,
label: `Default (${DEFAULT_MAX_TOOL_CALL_STEPS})`,
description: "Balanced limit for most tasks.",
},
{
value: "100",
label: "High (100)",
description: "Extended limit for complex multi-step tasks.",
},
{
value: "200",
label: "Very High (200)",
description:
"Maximum tool calls for very complex tasks (may increase cost and time).",
},
];
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

There's a discrepancy between the options implemented here and those mentioned in the pull request description. The description mentions 'Very High (250)' and an 'Unlimited (999)' option, but the implementation has 'Very High (200)' and lacks an 'Unlimited' option. Please clarify if the PR description is outdated or if these options are still pending implementation.

Comment on lines +63 to +64
const currentOption =
options.find((opt) => opt.value === currentValue) || options[1];
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The fallback to options[1] is brittle. If the order of options in the options array is changed in the future, this could point to the wrong default option, causing a bug. It's safer to explicitly find the default option by its value.

Suggested change
const currentOption =
options.find((opt) => opt.value === currentValue) || options[1];
const currentOption =
options.find((opt) => opt.value === currentValue) ||
options.find((opt) => opt.value === defaultValue)!;

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

View 4 additional findings in Devin Review.

Open in Devin Review

experiments: ExperimentsSchema.optional(),
lastShownReleaseNotesVersion: z.string().optional(),
maxChatTurnsInContext: z.number().optional(),
maxToolCallSteps: z.number().optional(),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟑 Missing default value in DEFAULT_SETTINGS violates adding-settings rule

The mandatory rule in rules/adding-settings.md step 2 states: "Add the default value in DEFAULT_SETTINGS in src/main/settings.ts". The new maxToolCallSteps setting was added to the schema (src/lib/schemas.ts:316), search index, component, and settings page (steps 1, 3, 4, 5), but step 2 was skipped β€” there is no maxToolCallSteps entry in DEFAULT_SETTINGS at src/main/settings.ts:23-47. While the handler code at src/pro/main/ipc/handlers/local_agent/local_agent_handler.ts:271-272 correctly falls back via settings.maxToolCallSteps ?? DEFAULT_MAX_TOOL_CALL_STEPS, the rule requires an explicit entry in DEFAULT_SETTINGS.

Prompt for agents
In src/main/settings.ts, add maxToolCallSteps to the DEFAULT_SETTINGS object (around line 23-47) to comply with the rules/adding-settings.md requirement. Since the setting is optional and undefined means 'use the default of 50', you can either omit it (leaving it as undefined) which is the current implicit behavior, or explicitly set it: maxToolCallSteps: undefined. The important thing is to match the pattern required by the repository rules. You may also consider importing DEFAULT_MAX_TOOL_CALL_STEPS from src/constants/settings_constants.ts and using it directly if you want the default to be explicit.
Open in Devin Review

Was this helpful? React with πŸ‘ or πŸ‘Ž to provide feedback.

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.

2 issues found across 11 files

Confidence score: 3/5

  • There is a concrete user-impacting risk: src/components/MaxToolCallStepsSelector.tsx exposes inconsistent limits (Very High set to 200 and missing Unlimited (999)), so users cannot select the documented max tool-call behavior.
  • src/lib/schemas.ts currently accepts any number for maxToolCallSteps; without enforcing positive integers (and ideally supported values), invalid settings can slip through and create mismatches between UI and runtime behavior.
  • Given two medium-severity, high-confidence issues tied to the same setting, this carries some regression risk but still looks manageable with targeted fixes before/with merge.
  • Pay close attention to src/lib/schemas.ts and src/components/MaxToolCallStepsSelector.tsx - align validation and selector options to the intended tool-call limits.
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="src/lib/schemas.ts">

<violation number="1" location="src/lib/schemas.ts:316">
P2: Constrain `maxToolCallSteps` to valid positive integers (and ideally the supported option set) instead of accepting any number.</violation>
</file>

<file name="src/components/MaxToolCallStepsSelector.tsx">

<violation number="1" location="src/components/MaxToolCallStepsSelector.tsx:39">
P2: The selector options are inconsistent with the intended limits: `Very High` is set to 200 and `Unlimited (999)` is missing, so users cannot configure the documented max tool-call settings.</violation>
</file>

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

experiments: ExperimentsSchema.optional(),
lastShownReleaseNotesVersion: z.string().optional(),
maxChatTurnsInContext: z.number().optional(),
maxToolCallSteps: z.number().optional(),
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 5, 2026

Choose a reason for hiding this comment

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

P2: Constrain maxToolCallSteps to valid positive integers (and ideally the supported option set) instead of accepting any number.

Prompt for AI agents
Check if this issue is valid β€” if so, understand the root cause and fix it. At src/lib/schemas.ts, line 316:

<comment>Constrain `maxToolCallSteps` to valid positive integers (and ideally the supported option set) instead of accepting any number.</comment>

<file context>
@@ -313,6 +313,7 @@ const BaseUserSettingsFields = {
   experiments: ExperimentsSchema.optional(),
   lastShownReleaseNotesVersion: z.string().optional(),
   maxChatTurnsInContext: z.number().optional(),
+  maxToolCallSteps: z.number().optional(),
   thinkingBudget: z.enum(["low", "medium", "high"]).optional(),
   enableProLazyEditsMode: z.boolean().optional(),
</file context>
Fix with Cubic

description: "Extended limit for complex multi-step tasks.",
},
{
value: "200",
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 5, 2026

Choose a reason for hiding this comment

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

P2: The selector options are inconsistent with the intended limits: Very High is set to 200 and Unlimited (999) is missing, so users cannot configure the documented max tool-call settings.

Prompt for AI agents
Check if this issue is valid β€” if so, understand the root cause and fix it. At src/components/MaxToolCallStepsSelector.tsx, line 39:

<comment>The selector options are inconsistent with the intended limits: `Very High` is set to 200 and `Unlimited (999)` is missing, so users cannot configure the documented max tool-call settings.</comment>

<file context>
@@ -0,0 +1,96 @@
+    description: "Extended limit for complex multi-step tasks.",
+  },
+  {
+    value: "200",
+    label: "Very High (200)",
+    description:
</file context>
Fix with Cubic

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

πŸ” Dyadbot Code Review Summary

Verdict: πŸ€” NOT SURE - Potential issues

Reviewed by 3 independent agents: Correctness Expert, Code Health Expert, UX Wizard.

Issues Summary

Severity File Issue
🟑 MEDIUM src/components/MaxToolCallStepsSelector.tsx:22-47 Missing "Unlimited (999)" option mentioned in PR description
🟒 Low Priority Notes (3 items)
  • Unused translation key - src/i18n/locales/en/settings.json - maxToolCallStepsDescription is defined but never used in any component
  • No bounds validation on schema - src/lib/schemas.ts:316 - maxToolCallSteps accepts any number (zero, negative, floats); consistent with existing maxChatTurnsInContext pattern
  • Custom stored values display mismatch - src/components/MaxToolCallStepsSelector.tsx:63 - If settings file is manually edited to a value not in the preset options, the description text will show "Default" while the dropdown shows an unrecognized value
🚫 Dropped False Positives (4 items)
  • Option descriptions not internationalized - Dropped: Matches existing MaxChatTurnsSelector pattern in the codebase β€” this is an established convention, not a regression
  • Magic string 'default' as sentinel value - Dropped: Acceptable pattern for this simple component with only 4 options
  • "Very High" description says "Maximum" - Dropped: It is the highest available option in the list, so "maximum" is contextually accurate
  • No indication setting only applies to local agent mode - Dropped: "(Agent)" in the label provides sufficient context

Generated by Dyadbot multi-agent code review

Copy link
Copy Markdown
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Multi-agent review: 1 issue found

];

export const MaxToolCallStepsSelector: React.FC = () => {
const { settings, updateSettings } = useSettings();
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟑 MEDIUM | consistency

Missing "Unlimited (999)" option mentioned in PR description

The PR description states users can choose from "Low (25), Default (50), High (100), Very High (200), or Unlimited (999)" but the options array only contains four options β€” there is no Unlimited option. This is either a stale PR description or an incomplete implementation.

All 3 review agents independently flagged this discrepancy.

πŸ’‘ Suggestion: Either add the Unlimited option (e.g., { value: "999", label: "Unlimited (999)", description: "No practical limit on tool calls." }) or update the PR description to match the actual implementation.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

🎭 Playwright Test Results

❌ Some tests failed

OS Passed Failed Flaky Skipped
🍎 macOS 243 1 8 6

Summary: 243 passed, 1 failed, 8 flaky, 6 skipped

Failed Tests

🍎 macOS

  • select_component.spec.ts > select component next.js
    • Error: expect(locator).toBeVisible() failed

πŸ“‹ Re-run Failing Tests (macOS)

Copy and paste to re-run all failing spec files locally:

npm run e2e \
  e2e-tests/select_component.spec.ts

⚠️ Flaky Tests

🍎 macOS

  • debugging_logs.spec.ts > clear filters button works (passed after 1 retry)
  • import_in_place.spec.ts > import app without copying to dyad-apps (passed after 1 retry)
  • refresh.spec.ts > refresh preserves current route (passed after 1 retry)
  • setup_flow.spec.ts > Setup Flow > setup banner shows correct state when node.js is installed (passed after 1 retry)
  • setup.spec.ts > setup ai provider (passed after 1 retry)
  • smart_context_balanced.spec.ts > smart context balanced - simple (passed after 1 retry)
  • template-create-nextjs.spec.ts > create next.js app (passed after 1 retry)
  • undo.spec.ts > undo with native git (passed after 1 retry)

πŸ“Š View full report

@github-actions github-actions bot added cc:pending cc:done needs-human:review-issue ai agent flagged an issue that requires human review and removed cc:request cc:pending labels Mar 5, 2026
@wwwillchen wwwillchen merged commit d6ab829 into dyad-sh:main Mar 5, 2026
11 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cc:done needs-human:review-issue ai agent flagged an issue that requires human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants